InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

The Qualities of a Software Architect

Posted by Abel Avram on Jan 21, 2009

Sections
Process & Practices,
Enterprise Architecture
Topics
Teamwork ,
Enterprise Architecture ,
Collaboration ,
Leadership ,
Architecture
Tags
Management

The software/enterprise architect job is an important one. The duties of an architect are numerous and require specific leadership, communication and technical skills to be fulfilled.

In a recent post, Gabriel Morgan wrote about the qualities of an enterprise software architect starting from Daniel Goleman's Emotional Intelligence (EI) abilities: Self-Awareness, Self-Management, Social Awareness and Relationship Management.

Self-Awareness

  • Emotional self-awareness
  • Accurate self-assessment

Self-Management

  • Self-control
  • Transparency
  • Adaptability
  • Achievement
  • Initiative
  • Optimism

Social Awareness

  •     Empathy
  •     Organizational awareness
  •     Service

Relationship Management

  •     Inspiration
  •     Influence
  •     Developing others
  •     Change catalyst
  •     Conflict management
  •     Teamwork and collaboration

The Software Engineering Institute has collected a large number of opinions regarding the duties, the skills and the knowledge of a software architect as seen by various software engineers. A few of the opinions regarding an architect’s required skills are:

David Cornish (Technical Architect, JPMorgan, London, UK):

Strong communication with both technical and business teams
Strong design experience and technical knowledge
Analytical and 'joined-up' thinking
Conflict resolution

Theo Gantos (Consultant, TEKA, Flint, MI, USA):

A renaissance person. Consulting, diplomacy, organization, conceptualization, abstract thinking, logical reasoning, data modeling skills in several methodologies, ability to self-evaluate and adapt quickly, presentation and communication skills, programming expertise, writing skills, sales skills, charisma, finance and return on investment calculation skills, dealing with difficult and change-resistant people, sense of humor.

Venkatesh Krishnamurthy (Technical Architect, Valtech India, Bangalore, KA, India):

  • Creative
  • An Artist
  • Politician
  • Strong willed
  • Excellent communication skills
  • Excellent presentation skills
  • People person
  • Matured
  • Articulative
  • Courageous to make decisions and stand by it
  • Risk taker
  • Good observer
  • Negotiator

Victor Alejandro Baez Puente (Chief Technology Officer, Grupo Nacional Provincial, Mexico City, DF, Mexico):

  • Experience designing an enterprise application with financial auditing, contract management, enterprise workflow, business process integration, and perhaps asset management components
  • Experience with Service Oriented Architecture (SOA).
  • Experience as a chief architect on inception-to-delivery of J2EE projects.
  • Experience with deploying J2EE rich and/or web client applications in a high-availability, clustered environment
  • Expertise in the Unified Modeling Language (UML) for constructing, and documenting the artifacts of software systems
  • Exemplary general IT knowledge (applications development, testing, deployment, operations, documentation, standards, best practices, security, hardware, networking, OS, DBMS, middleware, etc.)
  • Expertise and experience in lightweight, rapid development, agile methodologies.
  • Experience in estimating and measuring project velocity
  • Experience with interaction with legacy systems and phased application integration
  • Exquisite attention to detail
  • Written, verbal, and diagrammatic communication skills

The examples are numerous. Some put an emphasis on leadership/communicator skills while others take specific technical skills into account. What is your opinion on the skills required of a software/enterprise architect?

14 comments

Watch Thread Reply

So the usual best of the best of the best type job description by Michael Kimber Posted
Re: So the usual best of the best of the best type job description by Sreedhar Lakkavaram Posted
Re: So the usual best of the best of the best type job description by Mihai Campean Posted
A list of business skills by Alex Panzin Posted
Re: A list of business skills by Jason Kilgrow Posted
Re: A list of business skills by Stefan Tilkov Posted
Re: A list of business skills by Kevlin Henney Posted
Re: A list of business skills by Stefan Tilkov Posted
Re: A list of business skills by Paul Hokanson Posted
Trade-off Analysis by Kelvin Meeks Posted
Re: Trade-off Analysis by Gary Chia Posted
Good summary of soft skills for an Architect by Darrell Johnsrud Posted
What I want to be when I grow up by David Clarke Posted
On the basis of what has been discussed above by Sid Khan Posted
  1. Back to top

    So the usual best of the best of the best type job description

    by Michael Kimber

    So the usual best of the best of the best type job description!!! Why do all IT jobs need a superman, especially when the compensation levels don't match the job description. Being one of these people I'd say you could narrow it down to being able to process a large amount of information efficiently, make your decision at the correct time and the communicate that decision in a financially sensible way so some one will invest in it.

  2. Back to top

    A list of business skills

    by Alex Panzin

    Sorry, just couldn't restrain myself from commenting.

    * Creative
    * An Artist
    * Politician
    * Strong willed
    * Excellent communication skills
    * Excellent presentation skills
    * People person
    * Matured
    * Articulative
    * Courageous to make decisions and stand by it
    * Risk taker
    * Good observer
    * Negotiator

    This one looks like a list of catchphrases that business people use, not something that a Software Architect is. I would hire a person like that to be an executive, not a software architect.

  3. Back to top

    Re: So the usual best of the best of the best type job description

    by Sreedhar Lakkavaram

    Micheal, Your Job Description for the Software Architect is pretty good. Its quite apt.

  4. Back to top

    Re: A list of business skills

    by Jason Kilgrow

    Funny. I was thinking about the same thing.
    Can I point out one thing? I don't know how to reconcile "Strong Willed" with "Negotiator"? Hmmm...I guess I'm just not ready to be a software architect in Bangalore.

  5. Back to top

    Re: A list of business skills

    by Stefan Tilkov

    I find it amazing that there are no technical skills mentioned in some of the lists. Are there people who truly think one can be an architect without very high proficiency in relevant technologies?

  6. Back to top

    Trade-off Analysis

    by Kelvin Meeks

    I would add: The ability to perform trade-off analysis of architectural decisions along multiple dimenions (cultural, financial, skills, technology, performance, security, maintainability).

  7. Back to top

    Re: Trade-off Analysis

    by Gary Chia

    I think this is a good point, trade-off analysis is "mandatory" in an enterprise environment.

    This is my take on the attributes of on Agile Architect which covers many technical and business parameters.

  8. Back to top

    Re: So the usual best of the best of the best type job description

    by Mihai Campean

    I agree with you Michael, indeed most IT job descriptions require a superman and while in most cases compensation might not be according to the description, let us not forget that also the real challenges won't rise to the description either. IMO, someone at this level should be a really adaptable person, with good technical background, a passion for technology and very good communication skills.
    The key here would be for the Architect to be up to date with things that are going on in the technology world so that when the right time comes he/she can deepen the knowledge about a specific technology and be able to apply it to the practical situation at hand.
    Let's get real, no one can know everything, and the more you know, the more you realize you know nothing.

  9. Back to top

    Good summary of soft skills for an Architect

    by Darrell Johnsrud

    Abel,

    Great post, thanks. Interesting to see the lists that a few others came up with.

    I don't understand why some would think this is "the best of the best" - all these soft skills are what's required to be really successful on the business side.

    Depending on your model of an architect, the role can be viewed as half business and half technical. The architect needs to be able to relate to the non-technical stakeholders, listen well, sell them on a solution, inspire confidence and communicate the necessary detail of the system.

    I think that when you get to listing hard skills, such as UML modeling, or a certain level of coding expertise, or experience in certain architectural styles, then you get into a very domain-specific description.

    Is it reasonable to presume that the tech leads might often have more technical expertise than the architect?

  10. Back to top

    Re: A list of business skills

    by Kevlin Henney

    The role of architect is necessarily a bridge, so to describe communication skills without describing what you are communicating makes little sense, likewise making decisions without having a firm footing for such decisions results in an effective way of going wrong with confidence. Architects must have a strong technical background.

    I gave a keynote at last year's Software Architect conference where I explored some of the skills that were relevant, anchoring the notion of architect in the concept of architecture (perhaps an obvious starting point, but one that seems to be overlooked in many lists):

    www.software-architect.co.uk/slides/sa08-Kevlin...

  11. Back to top

    Re: A list of business skills

    by Stefan Tilkov

    Kevlin, that presentation sums up my views perfectly :-)

  12. Back to top

    What I want to be when I grow up

    by David Clarke

    This isn't about being a Software Architect, this is describing the sort of person I aspire to be. Someone with the described attributes isn't just a great Software Architect, they're also a wonderful human being. Hooray for us Software Architects. Actually I subscribe to the pragprog view that Software Architects should also cut code. I guess there is a project size over which that may become impractical but nothing informs a design like being involved in coding it.

  13. Back to top

    On the basis of what has been discussed above

    by Sid Khan

    According to what has been asked from this role, people like Prime Minister Tony Blair, President Barack Obhama, and President Sarkozy, Markel etc. only can fulfill this role as they are the only people I can think of has all these desired qualities (and of course provided by support from many advisors or special advisors as they say). I can tell you friends, if you do have such expertise, you are in the wrong business.

  14. Back to top

    Re: A list of business skills

    by Paul Hokanson

    Not to mention "Articulative" is not an actual word

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.