« December 2005 »
S M T W T F S
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31


Thursday, 8 December 2005
Misunderstanding Agile development even while you're inadvertently (sort of) doing it
Topic: Mindset and culture
When I read Joel Spolsky's write-up of Project Aardvaark, I had the same reaction as many others (whose comments have been neatly compiled by Joey deVilla) about Joel's confidence in Big Design Up Front. In particular, he seems to believe BDUF saved the project when the team ran into an unexpected twist having to do with tunnelling RMI over port 80; apparently the team had originally assumed port 443 would be open to the public on most sites. His contention that the change would have taken weeks of development time had it not been for BDUF struck me as odd. Regardless of the development approach, if such a minor change really required weeks of work, it raises a red flag about the quality of their code.

But that's not the most interesting thing about the write-up. Throughout, Joel appears to be making the argument that BDUF is generally preferable to design discovery. Yet, his example — the Aardvaark Project spec document as well as the anecdote about the team's response to the port 443 issue — actually demonstrates the opposite. The spec document is a fine illustration of just the right level of up-front design, sketching out the solution approach without going into implementation details. The team's ability to work through the port 443 issue illustrates the power of adaptive, collaborative development. Joel's "big" design isn't so big, after all.

It's also good to keep in mind that the Aardvaark project was carried out by a very small team — looks like about four people, based on the project blog — who sat in the same room together. They worked toward well-understood, stable functional requirements for a turnkey, commercial product; they did not have to contend with a business user who frequently changed the requirements and/or priorities as the solution evolved. On the whole, the project isn't a particularly good example of Big Design Up Front. If anything, the article and the numerous responses to it show how easy it is for people to misunderstand Agile development principles — including very smart and experienced professionals.

Posted by Dave Nicolette at 12:01 AM EST
Post Comment | Permalink

View Latest Entries