Author: Scott L. Bain
Publisher: Addison Wesley, 2008
Aimed at: Those interested in agile programming and design patterns
Pros: Good overview of methodology
Cons: Name dropping and tendency for self promotion
Reviewed by: Mike James
This is a book that will disappoint if you are lead by the main and sub-titles to expect something groundbreaking and revolutionary. The idea of software evolving as part of the design process is clearly attractive and the title "Emergent Design" is suitably trendy as are all things "emergent". But if you like the idea of a design "emerging" from the initial mess of a project and want to find out how you can build a methodology that makes use of and encourages this then you may feel led down. If on the other hand you simply want a reasonably well written book on a common sense approach to mostly agile development plus object oriented patterns ideas then this will do. The only sense it which it is about "evolutionary design" is that it constantly advocates the idea that software should get better with time. To this end it outlines a lot of traditional software engineering ideas, mostly a rehash of the gang of four patterns which are listed at the end as an appendix, and lots of common sense homely design principles. Although the ideas are presented in a way that encourages you to "embrace change" the book doesn't go the whole way and stops short of advocating a hard line agile programming or extreme programming approach. It is more reasoned and good natured than that. It explains, persuades and cajoles you into seeing why the more sophisticated object oriented approach is a good one. It covers topics such as cohesion, encapsulation, the open-close principle, test driven design and much more - but none of it is new and all of it can be found in other methodology books. In the main the style is good and the result is a readable book. Occasionally you might find the references to Net Objectives and the courses it provides irritating and the constant name dropping of "famous" people the author has met and talked with are eventually undermining of his authority on the subject - academic style references might be better. However these are minor shortcomings on what is overall a good introduction to a collection of standard ideas in agile object oriented software engineering/methodology.
<Reviewed in VSJ>