views:

1200

answers:

14

What characteristics do you find more valuable in a software architect? How to evaluate one?

For example:

  • Is in-depth knowledge of a stack more important than a good overall knowledge of different stacks?
  • How important are coding skills in comparison to other skills?
  • How important are documentation skills considering agile methodologies?
+2  A: 

1) Has to be a good coder
2) Better to have a wider knowledge of tools and techniques rather than a narrow one
3) Has to be able to communicate well both in writing and in speech

IMHO.

Will
+1  A: 

For an architect, I would say the most important two things are:

  • They are smart.
  • They get stuff done.

[ref: Joel's Guerrilla Guide to Interviewing]

Apart from those, you want someone who has programmed relatively recently, and who can learn new languages, methodologies, skills, etc, easily.

This will ensure that they are flexible enough to adapt and change as the software they're architecting invariably will.

RickyTheGeek
+2  A: 

The most important thing to me is that the candidate not only is a good coder, but has at least coded until recently.

Hopefully your company will let architects code as well and hopefully your architect will want to lead by example, coding as appropriate.

Asking the candidate what would the ideal work duties be should get coding as part of the answer.

Vinko Vrsalovic
+1  A: 

I'd look to knowledge about tools, such as the benefit of unit testing and version control. It's really hard to judge how good someone is with the "big picture", but good answers on these topics should be a symptom of an approach that is beneficial to being a software architect.

MattW.
A: 

There is great deal of info in MSDN Architecture Center. Exactly these kind of questions are being asked there.

Another interesting post The Title "Architect" is illegal in Texas and may be as well in other states.

Gulzar
+17  A: 

A good software architect is able to

  • modularize / reduce dependencies
  • distinguish concepts from technology
  • think on different levels of abstraction
  • understand and formalize user requirements
  • implement (design & code) a proposed architecture

Regards, tamberg

tamberg
Great summary. +1
Jas Panesar
Thank you. Regards
tamberg
This doesn't actually answer the question though, does it (at least in the case of an interview candidate)? How do you actually evaluate whether the candidate fulfils these criteria?
oxbow_lakes
+1  A: 

One of the most important skills is that they understand and can relate to people in the business. Architecture decisions, even more than coding decisions, are influenced by the priorities and requirements of the organisation.

Then, since the architect has to communicate their designs to other people, communication and people skills within their team are crucial.

Also useful are rapid prototyping skills because prototyping is one of the best ways to communicate any programming concept - both to developers and business users.

Leigh Caldwell
A: 

A few things to look for:

  • Quick ability to learn. This person will have to learn your coding style, department processes, and so much more. Plus, as programs grow and change there are always new and better ways to do things. Often times this has to do with changes in the languages. All of this needs to be learned.
  • Test Driven Developer. Bugs are a problem. If someone has a test driven development mentality they will, hopefully, produce less bugs in the final product because the bugs will be caught in testing.
  • Concerned with producing excellent code. This is different that producing quality code. This is the mentality to always try to produce a better product. This includes trying to produce higher quality code than previously, trying to find ways to increase performance, concern with meeting the customers needs, and so much more.
Matt Farina
These are things you should expect from any developer, the question was about an architect.
Sklivvz
+3  A: 
nathaniel
+1  A: 

Some of more essential characteristics of ideal software architect are:

  • He should be a good programmer.
  • Have experience with many languages from different paradigms.
  • Not stuck to specific technology or methodology or trend (you will be dissatisfied with very determined people).
  • Good team player (probably the most essential). Should have mastered written and oral communication skills and be social.
  • If you see something like IQ in his CV or see that guy show-off that he is smart, you will be dissatisfied, because you hiring very self-oriented guy, that does not see nothing outside himself.
andreasmk2
+1  A: 

Look for a blogger! A good blogger should be an excellent communicator (especially with the written word). Most bloggers also keep pretty up to date with the industry they're blogging about, meaning they'll be aware of what technologies and tools are available to solve a specific problem. A great blogger will also have a large body of work on their blog for you to evaluate if their skills and/or personality will fit within your organization.

Eric DeLabar
+6  A: 

Make sure they are not an "Architecture Astronaut"

I've been involved in many a project where the architect has got to where he is by talking in acronyms and over complicating the solution so as to obfuscate their shortcomings from everyone else.

A good architect will above all stick to Einstein's principle:

"Make everything as simple as possible, but not simpler."

Campbell
A: 

A person who will pick the right tool for the job.

metadave
+1  A: 
  • Knows the problem domain (and the problems working in that domain poses)
  • Knows technologies that can be used within that problem domain to offer a solution
  • Can effectively reason about and come up with an explanation why the set of concepts and technologies will lead to a soultion to the problem

my 2 cents

nojevive