I'm often asked about the various aspects of Agile and XP. So I thought today would be a great day to write about one of my favourites - Test Driven Development - TDD. This is not to be confused with the other closely related Agile aspect of, Test Driven Bukkake - TDB (see a previous post of mine for more details on this topic).
The principle behind TDD is simple - you write a test for a component BEFORE you write the component itself. Now, people say to me, Crispin isn't this a bit strange? Surely it's just doing things in a completely wrong order just for the fucking sake of it? It's like writing with your left hand even though you are right handed. Sure it can be done, but why bother with all the hassle and try pretending it's any good?
I simply smile at these simpletons and explain that without a test the component does not even exist (thanks Bent Keck). Further the component is useless. Remember, in Agile, what really matters is to know that you have used Agile/XP practices. Delivering the component (or anything else for that matter) is secondary.
Infact, I use the principles of TDD in every aspect of my life. In the morning I go to the bathroom, pull down my pants and wipe my ass with toilet paper (well its actually hard tracing paper since I'm heavily into Mocking objects). Then I take a shit. Finally I pull up my pants and go away. Sure, this does leave me with my underwear stuck solid to my crack due to the shit on my pre-wiped ass sticking. The way I see it is that if I don't wipe my ass first then the shit does not actually exist. But I feel this is a small price to pay for achieving Agile excellence.
Thursday, February 8, 2007
Wednesday, February 7, 2007
A Dummies Guide to an Agile Day
I'm often asked in my capacity as an Agile guru what is the holy grail of true Agile enlightenment. Well for me it has to be when one can truly separate and detach oneself from what is required by the end user and instead concentrate on the more important matters. That of course is Agile and everything to do with Agile. Regardless of what the end requirements of a system may be, the important thing in life is that Agile is thought of first and foremost. Everything else is irrelevant. Only when you can come to terms with this, will you find the true meaning of Agile. Remember it does not matter one bit that a project may be delivered late or that you may be creating unnecessary overheads by using Agile tools. So long as you have practiced safe Agile, then you can sleep soundly knowing that you have achieved inner peace.
On a typical Agile engagement day I will do the following:
1. Every morning I shall assemble the minions (err... sorry I mean developers). I will then ask each to explain what he has been up to since yesterday and what they are planning to do next. I will then ignore any moaning from the minions (err... sorry developers again) as to whats holding them up. Further if at any point I feel aggression towards Agile and what it stands for, I will call on the old Pig and Chicken story. That usually gets the fuckers (err... sorry I mean client management) to stop asking awkward questions as to whats holding up the progress of work.
2. I then encourage a general chat - concerning what's been happening on television etc. After an hour and half the daily stand up will be called to an end.
3. At this point I like to take a junior developer aside and pair up with him - usually somewhere quiet, like the men's toilets. Here we can explore one another's strengths and weaknesses. I will often insist on TDB - Test Driven Bukkake. As I say to these junior developers, if you don't know where you are cumming from then as far as I'm concerned the Bukkake does not even exist. Above all we are in this as a team. Therefore we must all cum together if we are to achieve our final climax (err... I mean goals).
4. At some point during the day I like to produce a chart showing velocity. This is basically a random series of points joint together in any order so as to make the idiots (errr. sorry I mean client management) believe that the project is on course. I find this helps greatly in allowing me to concentrate on Agile instead.
5. Towards the end of the day I then assemble the minions (note to myself: must stop calling code monkeys, minions) for a final session in the bathroom. At the end of which we come up with a series of excuses for the next days standup.
In a future post I will explore in more details planning games, retros and goals. But in the meantime I hope the above has vetted your appetite (I know I've wet myself just writing it).
On a typical Agile engagement day I will do the following:
1. Every morning I shall assemble the minions (err... sorry I mean developers). I will then ask each to explain what he has been up to since yesterday and what they are planning to do next. I will then ignore any moaning from the minions (err... sorry developers again) as to whats holding them up. Further if at any point I feel aggression towards Agile and what it stands for, I will call on the old Pig and Chicken story. That usually gets the fuckers (err... sorry I mean client management) to stop asking awkward questions as to whats holding up the progress of work.
2. I then encourage a general chat - concerning what's been happening on television etc. After an hour and half the daily stand up will be called to an end.
3. At this point I like to take a junior developer aside and pair up with him - usually somewhere quiet, like the men's toilets. Here we can explore one another's strengths and weaknesses. I will often insist on TDB - Test Driven Bukkake. As I say to these junior developers, if you don't know where you are cumming from then as far as I'm concerned the Bukkake does not even exist. Above all we are in this as a team. Therefore we must all cum together if we are to achieve our final climax (err... I mean goals).
4. At some point during the day I like to produce a chart showing velocity. This is basically a random series of points joint together in any order so as to make the idiots (errr. sorry I mean client management) believe that the project is on course. I find this helps greatly in allowing me to concentrate on Agile instead.
5. Towards the end of the day I then assemble the minions (note to myself: must stop calling code monkeys, minions) for a final session in the bathroom. At the end of which we come up with a series of excuses for the next days standup.
In a future post I will explore in more details planning games, retros and goals. But in the meantime I hope the above has vetted your appetite (I know I've wet myself just writing it).
Look who's back!
It's been a long time since I last blogged. If you remember the old blog was shut down on my own personal decision as I felt things were getting out of Agile control.
You are no doubt asking what's been happening to me since my last post. Well I have travelled the world in my search of Agile and Extreme excellence. I have travelled to many historical and cultural places like PatPong , Cheongnyangni , Boy's Town and many, many more in my relentless search for the true meaning of Agile. I even went to exorcise the demons that have taken over a former Agile colleague. The shame of the man. He along with the Agile Goat have let the Agile community down in a big way I feel.
Finally I ended up in Tibet where I studied ancient writings and literature under the guidance of an Agile Grandmaster. Eventually after great study I too became Grandmaster Agile Jedi.
So here I am to talk all things Agile
You are no doubt asking what's been happening to me since my last post. Well I have travelled the world in my search of Agile and Extreme excellence. I have travelled to many historical and cultural places like PatPong , Cheongnyangni , Boy's Town and many, many more in my relentless search for the true meaning of Agile. I even went to exorcise the demons that have taken over a former Agile colleague. The shame of the man. He along with the Agile Goat have let the Agile community down in a big way I feel.
Finally I ended up in Tibet where I studied ancient writings and literature under the guidance of an Agile Grandmaster. Eventually after great study I too became Grandmaster Agile Jedi.
So here I am to talk all things Agile
Subscribe to:
Posts (Atom)