Tuesday, June 5, 2007

Agile Software Development

It is amusing that Robert C. Martins book, Agile Software Development is nearly the exact reverse of Larmans. In name , Martins book is about adaptive methods and agile development projects and processes. And in the first part of the book Martin does provide a good overview of agile methods and Extremem programming - and how to use test driven design (but here Martin departs emphatically from many Extremists who have no time for using anything other than code to test a design). In contrast, Martin looks at patterns, design templates even simple simulations to inform the developing design and project. And voila - there you have it - 500 pages later informed by some amazing java and C++ coding examples you discover that you have been exposed to patterns, UML, and design principles under the guise of a exposing a project methodology. The reverse of Larman who develops and elaborates a project methodology while supposedly laying out the goods on desgn methods.

But of course the two are interelated - design and project process are intimately intertwined. As Martin points out - the design is contingent on the characteristics of the project which in turn determine the nature of the process which both in turn constrain and shape the design options. What Martin does is spell out in simple to complex case after case how requirements, principles, and tested design patterns interact to voila produce a fairly narrow set of designs to choose from. And time and again you say to yourself - isn't that right.

No comments: