Software architecture manifesto

Taking some inspiration from the recently published SOA and FAIL manifestos, I thought I'd have a go at writing my own for software architecture.

  1. Some up-front architecture over doing the whole lot or none at all
  2. Designing for non-functional requirements over trying to tack them on at the end of the project
  3. Evaluating technology over just choosing it because it looks good on your CV/resume
  4. Experimentation over hoping your design will work
  5. Code over endless discussions, meetings and diagrams
  6. Collaboration over ivory tower dictation
  7. Involvement over running away and letting the team deal with the "implementation" problems
  8. Coaching team members over stroking your own ego
  9. Pragmatism over perfection
  10. Real problems over intellectual (self) stimulation
  11. Simplicity and common sense over complex and convoluted ideas
  12. Short and useful architecture documentation that reflects reality over encyclopaedias that nobody reads, understands or cares about

Humour aside, this does reflect my view of the role of a software architect. What else would you include?

About the author

Simon is an independent consultant specializing in software architecture, and the author of Software Architecture for Developers (a developer-friendly guide to software architecture, technical leadership and the balance with agility). He’s also the creator of the C4 software architecture model and the founder of Structurizr, which is a collection of open source and commercial tooling to help software teams visualise, document and explore their software architecture.

You can find Simon on Twitter at @simonbrown ... see for information about his speaking schedule, videos from past conferences and software architecture training.

Re: Software architecture manifesto

explanatory answer to layman than typical "It Depends" :) All are Good points!

Re: Software architecture manifesto

"it depends" is a great answer to most questions, but you're so right ... that should be a signal to *explore* rather than clam up!

Re: Software architecture manifesto

This is a good idea! However I think it needs some some work.

If I look at the Agile or SOA manifesto then I see (very) short messages that are easily remembered. The list you present are more like the guiding princibles the SOA manifesto uses. To me, the actual manifesto is still hidden. I will think on this and maybe write a post of my own ;-)

Re: Software architecture manifesto

Nice, but as you say, it is too focused in the architect's role.
Maybe adding...

- Real, working, coded architecture over ideal, documented one.
- Actual problem solving and happy client keeper architectures over just what the clients asked for ones.
- Appropriate technology using architectures over buzzword following ones
I may think on some other ones later :D

Re: Software architecture manifesto

Just wondering whether you have put in any effort to revising this since you first posted it? I think that you could easily separate this into 2 parts: one for agile architecture and one for the agile architect..... So, for example, the agile architect values: Stakeholder understanding over dense architecture documents Pragmatism over design perfection Paying attention to system qualities over shoe-horning them in at the last moment Architectural collaboration over ivory tower edicts Evidence over endless architectural arguments .... And for agile architecture I could easily pull out another dozen things...... I am likely to write a post (referencing this one) on this....

Re: Software architecture manifesto

Hi Rebecca, no, I haven't revised it since I put it together but I still use it as the final slide for my software architecture training course! Be interested to read your follow-up if you put one together ... I like "Paying attention to system qualities over shoe-horning them in at the last moment"! :-)

Add a comment Send a TrackBack