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 –
- Spec – > Design -> Code and Fix
- Rational Unified Process
- Agile methods
I’ve come to a few conclusions, which I call Marks Philosophy of Software Architecture:
- Listen to what other people have already learned,
- Always listen carefully to alternatives to your own proposal,
- let the technically superior alternative win, even if it’s not your own,
- Manage risks!