What does a Software architect do?

How about: Guiding a diverse group of people through the conception, creation and deployment of complex systems.

Learning how to do this is not really something that can be obtained by study alone – learning to be a software architect comes about from making practical choices, often against a changing political and technology scene.

After years of designing systems, using a mixture of methods –

  1. Spec – > Design -> Code and Fix
  2. Rational Unified Process
  3. Agile methods

I’ve come to a few conclusions, which I call Marks Philosophy of Software Architecture:

  1. Listen to what other people have already learned,
  2. Always listen carefully to alternatives to your own proposal,
  3. let the technically superior alternative win, even if it’s not your own,
  4. Manage risks!