Skip to main content

You are NOT Agile if there's no Test Driven Development

Yes YOU. Company, team, manager or programmer.

You tried to tell me your job requires "Proven track record in delivering features in agile environment". You listed in your linked in profile that you have "Extensive experience with Agile projects". You describe your company as "Practising the latest Agile development techniques".


If you're not doing Test Driven Development you're not agile. You're not Scrum. You're not XP. You're not Kanban. You'd be lucky to be classified as LEAN.

Okay so TDD didn't make it into the Manifesto and maybe it should have. But all the ideas that built towards that manifesto included TDD as a key part of how programming should be done. You can argue about being 80% agile or that an agile technique for one company shouldn't be identical to the next. Fine! But you damn well better have TDD front and centre of that plan!

Why is it so important? Because agile development isn't about changing management practises. It's about changing ALL your practises and that programmers are the most important part in developing software. Let me say that again because I think a lot of companies like to ignore it. Programmers are the most important part in developing software. If your programmers are doing the same thing before agile as they are after except for a few meetings they go to then nothing of substance has really changed.

So quit the bullshit. I don't care if you're not doing any agile techniques. Or if you like to call your regular meeting a "scrum" or a "standup". Just don't tell me you ARE practising agile and wonder why my jaw drops when you say "oh we sometimes write a few tests but we never to test driven development".


Popular posts from this blog

Setting up Fitnesse on Ubuntu in 7 steps

Some pretty basic steps but just to make sure it's here for everyone to see. Setting up fitnesse and running the jar is easy enough. Just go to and get started and do it on your desktop just to see it in action. But for me that wasn't good enough I wanted it to run as service on ubuntu.

I stole a few tricks from how ubuntu runs jenkins and setup fitnesse a similar way.

1. Create a user and group for fitnesse (optional)
I didn't do this because I wanted tomcat, jenkins and fitnesse all running as the same user. Call it laziness to avoid any permissions classing but it doesn't change the process that you need to create or choose what user you're going to make it run as. Don't make it run as your user or root!

2. Download the jar file and place it in /usr/share/fitnesse
Make the folder too of course. It can belong to root as long as the fitnesse user has read access

3. Create the folder to run in at /var/lib/fitnesse
Fitnesse user needs write…


So most of the tests I'm writing now in Fitnesse are using RestFixture. Being able to do all this black box style testing has helped me get a lot of tests up and running without having to change the existing code base. Now I've taken a step future with my own little fork so I can use scenarios and build nice BDD style scripts. But first I want to give me own quick guide to using RestFixture

Step 1: Installing
You can dive straight in by grabbing the latest jar files for RestFixture here
If you know what you're doing can get the nodep version to work nicely along side other libraries you may be including in Fitnesse. But I grabbed the 'full' version and unzipped it into a RestFixture folder alongside my FitNesseRoot folder.
Step 2: Write your first test
I took advantage of the built in Fitnesse api as a basic test and wrote a page called RestFixture with the following contents
!define TEST_SYSTEM {slim} !path RestFix…