Renaissance man in the Knowledge Age Achieving more with less

Wednesday, 4 July 2007

What is a Software Architect

There seem to be more and more confusion over the role of a Software Architect, it seems the definition can change day to day from person to person. So what I am going attempt to do in this posting and some followup posting is define what I believe the role is from my own experience and research.

To kick things off I have to say that 70% of the 'Architects' I have met should not have the title, they are doing things in which they have no interest or skill, a better title for some of these folks would be 'fellow software engineer', or just 'Red Hot Developer'.

My first assertion, experienced and skilled developer DOES NOT EQUAL Architect.

The Three Architectural Practices

You can not infer from this that an Architect is not a 'skilled' developer, just that good technical skill alone make not the good Architect. To bring some concrete definition to the role I have identified the three key practice areas that person must be skilled in to deliver ready benefits to an organisation as an Architect. Those areas are Technical, Strategic and Organisational Awareness.

Technical Practice

Technically one needs to manage and overcome the frog of war to intimately understand the impacts of organisational decisions on the technology choices which are going to be made down the line. The best way to understand this is compare the task to what a developer would face, as a developer one would require a clear definition of what is needed and then one would go about implementing a solution to meet the requirements.

That clarity is what needs to be created by the Architect with consideration for opposing objectives & priorities, existing technology choices and commercial limitations. The Architect go's about removing the ambiguity by building models, preparing documents and presentation for stakeholders to bring them to consensus. Once achieved the Architect can translate that consensus into cohesive and lucid design that can implemented.

Clearly to achieve the above technical deliverable the architect needs a broad and varied set of skills, which is acquired via years of experience.

Strategic Practice

This is the most difficult area of practice, it is a quadratic equation with concepts and many shades of gray, where in the technical practice one is distilling and refining information, here one is providing feed back and input that will ultimately shape the organisations business decisions and in turn it's technology choices. The feedback component is the provision of digestible information as to the organisations technology capabilities and the interpretation of how those capabilities impact product strategies and objectives.

The input component requires creativity and visions in discovering ways to leverage the existing capabilities and new technology to deliver strategic advantages and improved value to the business. Combining this two elements a technology strategic is conceived that acts as a background influencing factor in development of all designs carried out by the Architect.

Many of the skills required in the strategic practice are innate to the architect, they certainly can not be learnt, yet they can be improved upon and strength with research and hard work.

Organisational Awareness Practice

This is the practice area that brings many unstuck, the reality is that an organisation is made up of it's people, each person having their own view point and their own set of immediate priorities to satisfy. Because technology cuts across an organisation, often support is needed by a number of stakeholders across the business to see successful delivery of a project or architecture.

The art of understanding the business and the key players is key to getting buy in and maintaining that buy in over a period of time.

The nature of the role of Architect is that he has influence but no power, so he needs to work to keep his influence and to bring people along willingly. Like the strategic skills these are innate to the architect and very difficult to teach or learn.

I hope that this posting is has cast some light of what a software architect is, the skill links in each practice area will allow you to drill deeper into that it take to have the right stuff.

No comments:

Blog Archive

"It is not all about me"

View Ray King's profile on LinkedIn Add to Technorati Favorites Creative Commons License
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License.