flow.
"Flow is a condition of deep, nearly meditative involvement." - Tom DeMarco

GTD versus TDD

Friday, May 25, 2007 1:52 PM
I recently had the pleasure of reading (actually listening to) "Getting Things Done" by David Allen.  I'd heard great things about the book for a while now so when I noticed that my company had a copy in the company library I couldn't pass it up.

Although I wouldn't call the book necessarily groundbreaking, I did find certain parts of it useful and did indeed pick up a trick or two along the way.  However, after reading the book I can honestly see why it receives such acclaim in agile development circles.  In fact, I was almost immediately struck by the similarities between Allen's mantra of getting things done and the common rhythm of test driven development.  In other words: GTD versus TDD.

Let's think about it, GTD prescribes this common mantra (which I have liberally paraphrased here for simplicity):
1) Identify a concrete item that you need to do
2) Identify the very next action that you need to do to make progress on that item
3) Repeat

Now, let's look at the prescribed rhythm for test driven development (which once again, I have paraphrased):
1) Identify a feature that must be implemented and write a failing test to represent that feature
2) Do the absolutely smallest thing that you can in order to make that test pass
3) Repeat

Have I paraphrased the highlights of both topics and taken certain aspects out of context?  Possibly.  However, the eerie similarity between the two is hard to miss.  Both focus heavily on identifying concrete items which must be completed and both focus heavily on identifying the smallest set of discrete steps possible in order to complete those items.

Although, I doubt that Allen was inspired by the community of test driven development when developing his method I am beginning to understand why his techniques are so heavily lauded by the agile and TDD communities.

Feedback

No comments posted yet.


Post a comment





 

Please add 7 and 8 and type the answer here: