Strategy rather than code
Is enterprise architecture the next step for your software career?
There are many different types of architecture and many names to describe the same thing. This essay summarises application, system and enterprise architecture before looking at whether enterprise architecture is the next logical step for people on the software architecture career path.
Application architecture
Application architecture is what we're probably most familiar with as software developers. It puts the application in focus and is about ensuring that it's built in the right way and is sufficiently fit for purpose. This normally includes things such as decomposing the application into its constituent classes and components, making sure design patterns are used in the right way, building or using frameworks, etc. In essence, application architecture is inherently about software design and usually covers only a single technology stack (e.g. Java, Microsoft .NET, etc). Application architecture provides the software foundations needed to deliver business value.
System architecture
I like to think of system architecture as one step up in scale from application architecture. If you look at most software systems, they're actually composed of multiple software applications across a number of different tiers and technologies. As an example, you might have a software system comprised of a .NET Silverlight client accessing web services on a Java EE middle-tier, which itself consumes data from an Oracle database. Each of these will have their own application architecture and requires somebody with expertise in these different areas to oversee the big picture of each. However, somebody also needs to look after the *bigger* big picture to ensure that the system as a whole will work when all of the applications are brought together. This is system architecture and is about decomposing the overall system into bigger components (applications) that have the appropriate level of coupling and cohesion. In other words, it's about making sure that the system is structured in the right way and that the components (applications) interoperate and integrate with each other. This is particularly important when some of those components are from third parties or are legacy systems.
Another point to note about system architecture is that it starts to move outside of the pure software domain and introduce hardware and infrastructure into the equation. After all, those applications need to be deployed onto sufficient infrastructure (e.g. server size, network characteristics, etc) for the system to function as expected. System architecture provides the software and hardware foundations to deliver business value.
Enterprise architecture
Enterprise architecture generally refers to the sort of work that happens at the CTO and CIO level. It looks at how to organise and utilise people, process and technology to make an organisation work effectively and efficiently. This is in very stark contrast to application and system architecture because it doesn't necessarily look at technology in any detail. Instead, enterprise architecture might look at how best to use technology across the organisation without actually getting into detail about how that technology works. Enterprise architecture provides the organisational foundations to deliver business services to (normally) customers.
Is enterprise architecture the next step?
While some developers and software architects do see enterprise architecture as the next logical step up the career ladder, most probably don't. The skillset required to undertake enterprise architecture is very different to application and system architecture, taking a very different view of technology and its application across an organisation.
Enterprise architecture is certainly about a higher level of abstraction, but it's more aligned with business consulting than technology consulting. Enterprise architecture is about breadth rather than depth and strategy rather than code.

