What is software architecture? What is the role of a software architect? How do you define software architecture? How do you share software architecture? How do you deliver software architecture?

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?



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

Add a comment Send a TrackBack
Software architecture for developers