NASCAR. Adjustability gets you the winners flag every time
Introduction
Always on the lookout for good analogies to help get my point across, I
happened to tune into the Nascar roundup a few weeks ago. Jimmie
Johnson was being interviewed about the upcoming event.
As I am sure you can now guess I am a Nascar fan. Most of my friends and colleagues can’t understand this because from the outside looking in, it’s just a bunch of cars going round and round on the same track – what could be more boring than that. Quite the contrary however, Nascar racing is anything but ordinary. It’s a sport that requires incredible concentration, teamwork and most of all careful strategy and agility to outsmart the competition.
Adjustability
In particular, the interview struck a cord for me. The
race was the 600 miler, a grueling race requiring mental
fitness of the highest degree. Asked what he and the team were focused,
on, Jimmie promptly answered “We’re working on making the car
infinitely adjustable.”
I thought about this for more than a moment.
In Nascar, minor adjustments to the car’s setup can make the world of difference and in fact, the entire race is all about tuning the car for the current conditions. Race conditions change from moment to moment. Even the track temperature can make the difference of an additional couple miles/hour.
Assess the environment
So the manager’s job is to assess the car’s setup for the track
conditions, how the competition is doing etc. I personally can’t think
of anything more Agile than this. 40 plus cars flying around the track
at close to 200 miles/hour all trying to assess the environment and
make adjustments to the cars in order to squeeze out that little bit
extra which can mean the difference between winning and losing. This
all happens under enormous pressure and in an incredible short space of
time.
Build the safety net for change
But it’s not the speed that is the deciding factor; it’s the
adjustments that are made during the race to deal with the race
conditions at that moment that ultimately lead to the fastest times.
I think the same is true for Software Development. Teams need to ensure
that the codebase is “infinitely adjustable”, i.e. changes can be made
quickly and without fear that something is going to break, based on
customers changing requirements, the market conditions, the competition
etc.
I know of only one way that teams can achieve code agility and that is through extensive unit tests, Test (TDD) and Behavior Driven Development (BDD). Writing tests gives developers comfort in knowing that changes to the code aren’t going to break the code. Developers that have this safety net are better positioned to put their company in a winning position. Companies never know where the next competitor is going to come from and what their strategy is going to be. The only certainty in life is that nothing stays the same. As a result you need to position yourself to be able to deal with change. The teams that manage this best are inevitably most likely to success.
I hope you find this analogy useful. I know it helped put things in perspective for me.
Written by Jack Milunksy - COO at Brightspark, certified ScrumMaster and Co-founder of Agilebuddy (Agile project management software that lets you easily Create, Estimate, Plan and Track your software development projects). For great Agile tips follow Jack at: www.twitter.com/agilebuddy. To get more info on Agilebuddy please visit: www.agilebuddy.com





I have received many requests to assist with Agile training and deployment. I am humbled by your interest and, being a huge proponent of Agile, want to help any way I can by providing consulting where I am able to.





June 18, 2009
This is a great example of Agile thinking but my experience is that it's difficult to get the concept of agile code across (agile working practices seem to be easy for people to understand). Thanks for giving us something to think about.
On a similar note - I saw an interview with Michael Schumacher the other day and he said that what counts in Formula 1 racing is the team and how it works together. That can make a difference, the driving is important but a good driver can't win with a bad team.
Posted by: Fay Simcock | 09/02/2009 at 12:12 AM
Thanks for sharing the Schumacher story. 100% agreed. THe team is everything. THat's what Scrum is all about.
Posted by: Jack Milunsky | 09/02/2009 at 08:14 AM