Peruse Muse Infuse

Home | Site Map | Site Index
Subscribe To This Blog
Atom Feed
RSS 2.0 Feed
Tags
Agile (9)  Architecture (24)  ASP.NET MVC (1)  Aspiring Architects (12)  Bio-Diversity (1)  Business (4)  Business Architecture (1)  Cheat Sheets (7)  CodePlex (3)  Dalek (1)  Data Architecture (1)  Enterprise Architecture (3)  Formula One (1)  Garfield (1)  Ghostbuster (1)  Hello Cruel World (1)  History (2)  iGovt (1)  Inter-Personal (1)  Modeling (4)  Morphfolia (1)  Off Topic (3)  open source (6)  podcast (3)  Political Architecture (1)  Politics (1)  Security (7)  Solution Architecture (1)  SqlAzure (1)  Strategy (4)  Tech-Ed 2009 (3)  The Cloud (4)  Thinking (6)  Web Development (6)  Wellington (12)  WSAF (12) 
Recent Posts
Hitchhikers Guide to NFRs - the System Quality Attributes Map
Backlog Depression
At the Coal-Face - Solution Architecture in the Public Sector
Security Guidance - Practical Non-Functional Requirements
Career Direction - What and How
10 Years in IT - 6 Lessons Learnt
I Blame the Superficialites
Free Un-Evil Options Analysis Template
Browser Wars - Agile Strikes Back
WSAF Session 7 - Practical Hacking
Available Blogs
Morphfolia Code Log
Peruse Muse Infuse
Aspiring Architects - Episode 2 - Careers Advice – Software Architect vs Accountant vs Lion Tamer
Posted at 29/10/2009 8:46:27 a.m. by AdrianK (276 days, 1 hours and 20 minutes ago)
Tagged under: Architecture, Aspiring Architects

Careers Advice – Software Architect vs Accountant vs Lion Tamer

Here’s a bit of careers advice for all of you who are unsure whether to be accounts or lion tamers – perhaps you should be an architect?

Whilst there’s plenty of information online about architectural roles it’s not always that clear-cut (Wikipedia’s Software Architect article refers to “the lack of an accepted overall definition”).  I haven’t seen any really good articles that clearly outline the different roles in relation to each other; and certainly not in a single page.  I’ll see if I can do better, and hopefully give you some useful bearings that assist you in your quest for world domination (or, failing that – architectural supremacy).

In my experience, the easiest way to define the various architectural roles against each other is along these two axes:

• The level of detail at which they operate.
• The degree of specialization they have.

As shown here:

An enterprise architect works at a high level – never on individual projects, where as a solution architect will only work on individual projects.  In a practice the lines might not be so binary; during the year I’ve been a solution architect I have been involved (assisted) in some enterprise architecture work – but not specifically (employed) as an enterprise architect.

Other roles (such as a data architect or technical architect) work at all levels of detail: on projects, high level strategy and everything in between, however, they focus on one specific area in detail.

This highlights the other dimension to a solution (and enterprise) architect’s role: knowing a little about everything.  I’m certainly not a data architect but I’ve learnt a truck-load about data architecture in the last twelve months and I’ve found in exceedingly enriching.

Strictly speaking, my diagram would be more technically accurate if the vertical bars extended to the top and bottom edges of the horizontal ones – but the overlap would make it a bit too messy.  Having said that, the enterprise and solution architects probably (arguably?) have the overriding say in their specific areas: for example, the solution architect is responsible for the architecture of the solution – and this should ideally both support and be supported by the views of a ‘domain specific’ architect (such as the technical architect).

Getting There: Career Path

Whilst there are different ways to the same place - “being an architect”, there are specific well tread paths to specific roles in the architectural sphere.

My development background naturally lends itself to becoming a solution architect, and there are a lot of good reasons for this.  One might assume that being a business analyst would lead into business architecture – I guess that’s a reasonably safe assumption; being a database administrator would lead into data architecture – maybe, although there is a very strong business analysis aspect to that role too; being an IT Operations / network admin would lead into infrastructure architect.

Going back a bit, if we assume that my definition of the architectural roles is correct, then people who are coming from a more varied background will be well suited to architectural roles where varied experience is useful; and likewise, people coming from specific backgrounds will be more suited to an architectural role that aligns with that experience.

A Final Piece of Advice (If You’re a Developer)

By my reckoning, if you’re a developer, you’ve got three main career options:

  1. Stay in development (and become increasingly specialised).
  2. Become a manager.
  3. Become an architect.

If you’re great technically – but not so confident people-wise, then the first option is probably where you’re headed.

If you’re strong in inter-personal skills, team leadership and so on – but perhaps struggle a wee bit technically, then perhaps management is not a bad option for you (in my book, there’s nothing wrong with managers who have had real-world development experience).

“Leading people is a skill unto itself; and while a manager should be familiar with the work they are managing; they need not necessarily be an expert at it.”

- taken from “Managers Don’t Code

On the other hand, if you have a mix of technical skill and people-skills, then I’d say architecture is a career path you should consider.  My justification for saying this is on the basis that just as you can pigeon-hole architectural roles by level of detail and specialisation; going one step further, I think you can also do the same thing in terms of looking at your career.

I think I was/am a good developer: I know enough about software design, development and construction methodologies to go about building something decent, and I have enough platform specific knowledge to use those particular platforms appropriately. 

I’ve always been relatively good with people: I’m not the world’s most popular guy, and I’ve certainly had my fair share of socially awkward moments - but I have a certain level of confidence and I’m quite capable of arguing my point of view.

So if you think your background is similar, I suggest we have a group hug and declare that on that basis (having a degree of competency in both of these areas) we’re good candidates for solution architects; in that we are technically savvy and an ability to communicate and interact with people.

For further reading

Final Thought:

Here’s an idea: let’s say that you are an architect if you can successfully describe what you do to your mother (postman, cat or random stranger).

I’d also suggest that you’re an aspiring architect if you can explain this to yourself – even if you can’t explain it to your mother (postman, cat or random stranger).

 Some rights reserved.
Last Modified 15/04/2010 11:34:08 a.m. by AdrianK (adriank [at] morphological [dot] geek [dot] nz)