Book Recommendation: 97 Things Every Software Architect Should Know
I'll interrupt this "slow blog month" with a quick book recommendation. I recently picked up a copy of "97 Things Every Software Architect Should Know", edited by Richard Monson-Hafael, and published by O'Reilly, and I think that you should too!
While the title suggests that the target audience might be limited to software architects, I really think that everyone involved with the software development process could benefit from reading the book - from the junior developer just getting started on his or her career, to the visionary technology executive at the top.
"97 Things..." is structured as a collection of ninety-seven pieces, none more than a couple of pages long, by about thirty or so different authors. It's not an especially technical book - there are no UML diagrams or code examples, say. It's more like the collected wisdom of a bunch of people who have been designing and building software for many, many years.
There are a couple of themes that emerge from the essays, both of which rang true with me.
Firstly there's this notion that "Before Anything, an Architect is a Developer" and "If You Design It, You Should Be Able to Code It" (both the title of pieces by Mike Brown). This is particularly gratifying as it's something I've been thinking - and saying - for some time. The idea of an architect or team of architects sitting in a room drawing boxes on paper, and then handing the results down to the development team accompanied by a kind of "make it so" dictum doesn't really make any sense to me.
If an architect isn't actually required to deliver on their designs, or doesn't have the programming skills to do so, there's a kind of divorce between design and implementation. The architect can easily shirk any reponsibility for the resulting code, and the outcome is typically ridiculous, over-engineered solutions to simple problems.
Another theme which emerged was that of keeping it simple, delivering working software sooner rather than later, and evolving design in response to real world use and feedback. So for example we have "Make Sure the Simple Stuff Is Simple" by Chad LaVigne, "Scope Is the Enemy of Success" by Dave Quick, and "It Will never Look Like That" by Peter Gillard-Moss. This is stuff that the Agile folks have been saying for years, and they keep saying it because it's true.
Anyway it's a great book, and very easy to just pick up and dive into. It may be fairly hard to find the book on the shelves, but you can order a copy - as I did - through Waterstones.com with 30% off the cover price, or through Foyles with 15% off.