Monthly Archives: August 2014

How GTD is Like TDD

Comparison of what?

I realized one day that two systems which I use had some interesting similarities despite being used in completely different spaces. The first system is known as GTD, which refers to Getting Things Done by David Allen. A great book and life management system that I personally use.

The second is called TDD which is the abbreviation for Test Driven Development. It’s used by some software developers to create their code a bit differently by writing tests before the normal code that they write. This can have many benefits

Why?

Well I found it interesting, but also I hope that someone who uses one of the systems may decide to take a look at the other system. And now on to the comparison.

 

 

They seem like extra work at first.

For GTD, people have complained about the time spent recording and organizing thoughts, and doing weekly reviews. Similarly for TDD, people have complained about the extra time it takes to write the tests. In both cases some would say they would be more productive by not having the extra work from these systems.

 

Both are best when done fully.

The more fully that you implement the GTD system, the more effective it is. Likewise with TDD.

For GTD, if all you did was capture your thoughts and tasks, you would certainly benefit but you may become overwhelmed by a giant list of to-dos.

In TDD it’s a bit harder to not implement it fully, but I suppose you could skip making the test fail first. There you run the risk that your test did not in fact test anything at all!

The benefit is not immediate.

The major benefit from this “extra work” comes from future savings rather than immediate gain. After you get used to these systems they no longer feels like extra work. In both cases you realize how much time they save you down the road from avoiding missed actions or bugs in your code.

A sense of control.

With GTD I feel in control of my priorities and tasks. I know what I could be doing and can make better choices for my actions. With TDD I feel more confident that my code work as intended and that if I make a change I know what other areas are impacted.