Thursday 19 November 2009

Sad to watch non TDD project

First a bit of my background. I am a Contractor in the UK. I generally work for large corporate companies, for 3 to 9 months. Over the past 4 years I have been fortunate enough to work in mainly Agile environments and at the very least been able to use TDD and spread the word about TDD.

Due to the recent Credit Crunch (2009) I have had to take a short contract in a non-agile, non TDD environment. There are about 60 Developers, 10 Business Analysts and some Testers. There appears to be about 3 major projects at various stages. I am closely linked to one of the projects.

The ‘progress’ of the project is so sad to watch.

How can you work on an application that does not have a set of run-able tests? (Either a side product of using TDD or some ‘test after’ technique).

How, is it possible to have any confidence in an application that is not fully built and integrated until some deadline approaches?

How, and why would anyone not exercise code until it is released into a test environment? Is it a surprise that bugs are found?

People often say there is an overhead in doing TDD, DUH, that’s right TDDers are doing design work and ensuring that only virtually bug free code is released.

Actually there are some huge overheads in a non TDD project. One in particular is where a new Developer is introduced to the Team to try and hit some imaginary deadline. The newbie has no chance of understanding the code in such a short time, yet is pressurized to get the work done.

With TDD, a Team Leader can just point the newbie at a group of tests, and in a few hours they will have a firm understanding of the area of code that they will be working in. Not only that, the existing tests will quickly let the newbie know if they are doing the right thing.

Watching a non TDD project is really, really sad. The deadline approaches, more Developers are enrolled into the team. This slows things down. Project Managers are fired, tempers flare, pressure is high, and you still need to produce some working code.

At the very least, using TDD would prevent the bug bounce that I see on this project. 90 bugs two weeks ago, 20 fixed, 25 new bugs reported!

It’s a real shame that people still try and build applications in a way that seems doomed.
Sad, sad, sad.

Help I am a TDDer get me out of here!
Oh before you ask, yes I will try and surreptitiously introduce TDD to a couple of people I work with.

No comments:

Post a Comment