3.10.2009

97 Things for Software Architects

97 Things Every Software Architect Should Know has finally been published, and it's been worth the wait. I have watched it germinate all the way from a friend's whimsical idea on a mailing list ("Hey, this would make a good book!") to its birth as hardcopy.

I contributed two of the 97 'Things', Context Is King and Heterogeneity Wins. In Context is King, I postulate that there are no global axioms in the domain of software architecture, but rather that (any) ideal does not live out of context. In Heterogeneity Wins, I encourage software architects to think outside of the stack, this because I cannot count the number of times that I have consulted on a project where the problem domain was poorly understood, but the technological solution - or, the correct BigCo Framework Extension piece - had already been chosen.

As far as I am aware, 97 Things is the world's first open-source book, in that all contributions were pre-published and peer-reviewed, and all are Creative Commons-licensed. Furthermore, all of the book's content is available online so you can try before you buy. But of course, you can't curl up in bed with the web (the Kindle notwithstanding), so you'll probably still want a dead-tree version :-).

An interesting aspect of the book is how some of the axioms contradict one another. For example, It's all about performance contradicts my own Context Is King, because I propose that it is only within scope and business objectives (i.e. context) that an architect has the necessary framework to make the right decisions, while the other promotes the idea that - requirements notwithstanding - nobody wants a system that runs like a snail. (And, while I acknowledge the basic truth of that premise, I would point out that it is context that always denotes how fast a system should run, and furthermore that sometimes snail-fast is perfectly acceptable, e.g. if some other over-arching business goal is met).

It is worth noting that 97 Things will have very good shelf-life relative to many other software engineering tomes. The advice it contains is fairly generic and technology-agnostic. I favor books that exhibit these qualities, that I know will still be relevant 10 years from now, or (more realistically) after the 6 month lapse has passed between the time I bought it and when I actually found time to study it :-)

Software architecture is a nascent, black art, and we are still finding our way; I hope within the book you find stimulus and inspiration.

4 comments:

Immo Hüneke said...

Thanks for the review Edward. It's nice to know you've made it into print! I understand that the author of the book is already hard at work on the next 97, so there's a chance for the rest of us yet :-)

Edward Garson said...

Cheers Immo :-)

RedHat said...

I just read your 'Context is King' article in the book and loved it. I think it is sad that big consulting companies are still trying to sell their packaged one-size-fits-all processes. These processes can cut costs and work to some extent but is never the optimum solution. Offshoring and fixed-bid migration projects are two examples that come to mind.

Unknown said...

I Like these line of your article An interesting aspect of the book is how some of the axioms contradict one another.
software product development