At the moment, I think I want to do enterprise architecture when I grow up.
Now, it would be nice if someone could give me a good definition of enterprise architecture (EA). There seems to a bit of grey area over this topic. I tend to think it means using technology to help a business (or some entity) do its job. Trying to get any more detailed that seems to get tricky. It may depend on the entity using EA.
Paul Preiss has started a group called the International Association of Software Architects(IASA). Paul has many goals for the group, but a couple are figuring out what an enterprise architect is supposed to do and setting up a curriculum for enterprise architects in colleges.
Since the job of an architect is not clearly defined, different companies don’t exactly know if they need an enterprise architect. Maybe what they really need is super-duper senior software developer or software architect, but it gets lumped into enterprise architecture. Since no one is using a set taxonomy, there is a lot of confusion. Of course there is a debate involved. Some folks think the companies should define what an enterprise architect does within their company and there is no need to have a generally accepted job description. The rebuttal for this usually the building architect versus construction worker analogy. A construction work builds a structure defined by specifications (similar to what a software engineer does), and a build architect designs, plans, and oversees the construction (similar to what an enterprise architect should do).
If we follow this analogy, shouldn’t the enterprise architect have a different curriculum than a software engineer? The skill set for an enterprise architect is different from the software engineer. Right now, most enterprise architects are learning on the job. Why not start teaching them the necessary skills in school? Some say that the software industry hasn’t reached the maturity for such division yet. If we went back in history, the first construction workers probably designed their buildings. As building construction matured, a natural division of labor started to occur. Since we are in the early stages of software development, there is no need to separate out the jobs; the software developer will gain the skills, through experience and maybe apprenticeship, to become an enterprise architect.
Frankly, both arguments seem to be valid, but career-wise it would be beneficial if all businesses understood the value of enterprise architecture.
So, its boils down to this for right now: what general skills or knowledge should an enterprise architect have in his arsenal?