My Journey towards Becoming an Agile Driver

What’s an Agile Driver? I have always been driving kind of ad hoc. Getting from A to B with no particular plan. If I were a programmer you would call it “cowboy coding” but I’m not, so we can call it “cowboy driving”. People, everyone it seemed — my boss, my wife, my children, the odd passengers — were all complaining that I needed to use sound engineering principles and state of the art equipment to improve my driving skills. “It will help you get from level 1 to level 2 or even 3 as a driver”, they said.

Waterfall Driver

[bibshow file=http://www.citeulike.org/bibtex/user/greger/]

SDLC is planning - analysis - design - implementation.

I used the SDLC as a basis for my waterfall-based planning. Image used under CC BY-SA unported 3.0


I had heard that the waterfall paradigm would be the easiest one for me to implement into my driving style [bibcite key=”citeulike:12804069″]. I googled the topic a bit and came to the conclusion that all I needed to do was the following four or five simple steps:

  • Decide where I wanted to go. Well, I have always known where I want to go. No one ever complained about that. But I got a new tool. I used to say or think “I would like to go to work.” Now, I felt the power of being able to say: “As a car, I must be parked at work.” Suddenly I was addressing the whole *system* and not old egoistical me.
  • Analyze the requirement. This was pretty straightforward. I ended up with a few analysis objects like car, driver, passenger, road and so forth. By using Object-Oriented Design I was able to realize that a driver is a sub-class of a passenger and thus by simple inheritance (!) I was able to instantiate myself as both. Wow!
  • Design the solution. I gave up on the GPS and instead sat down with government issued maps on scale 1:50 000 for the country side and 1:10 000 for urban areas. Thanks to careful analysis I was able to design an optimal route. I wrote it down on small notes just like a co-driver in a rally car would have. As a final step, I did a proof of concept. Using toy cars “borrowed” from the children I was able to validate the directions by “driving” on the map.
  • Implement the solution. I have never felt so prepared before implementing a solution. Preparations that I used to gloss over in an matter of minutes with no visible output now had resulted in a careful design. And I only needed 40hs of work.
  • Acceptance. Finally, simply accept that I had arrived at my destination. What a wonderful attitude. Simply accepting the facts of life and my safe arrival at my intended and long anticipated destination. Mindfullnes at its best.

Risks and Benefits

Maybe I wasn’t an agile driver yet so let’s stay with the plan driven approach for a while. You all know the benefits of a waterfall approach to driving cars. You know I wouldn’t waste your time with this report unless I had a lessons learned to give to you. Well, here it is. There are other cars on the road. They weren’t on the map! But lucky me, my car has adaptive cruise control and collission avoidance. I could have coped with those pesky cars. But then it happened, road construction, the road turned but I followed my design and went straight ahead.

I thought I was an Agile Driver, but then the road turned.

The road turned, but I didn’t. By B4bees on Flickr used under CC BY 2.0

Risk Management

What did I learn from that? I did a second google on the topic, from my hospital bed, and realized that I should have complemented each stage of the process with a risk analysis and mitigation plan. In this particular case, I should have called the proper authorities in the design phase and asked them about any recent construction work.

Agile Driver

While I was recuperating in hospital I noticed that they were running a lean program [bibcite key=”citeulike:6742812″] and I realized I could have a nice white board as well if only I became an agile driver. With all my lessons learned from my waterfall experience I realized that I basically had to go through the steps 1-5 but with a twist. I had to split my journey into smaller stages. By driving from gas station to gas station I had the added benefit of being able to ask about any road works ahead.

An Agile Driver should be able to avoid accidents by adapting to obstacles on the road.

Seconds before my most unfortunate incident. When will I ever become a more Agile Driver? This image is a work of the National Biological Information Infrastructure project of the United States Geological Survey’s Biological Informatics Office. Used under US Government Public Domain.

I got two the second gas station and was well on my way to the third when disaster struck again. I was able to avoid other cars, I was able to avoid road constructions. But then a Moose and my car had a most unfortunate incident.

Conclusion

What is the proper response here? How can I bceome a proper Agile Driver? Would it be better with a co-driver [bibcite key=”citeulike:12804409″] (pair programming) or should I put more focus on acceptance test [bibcite key=”citeulike:276667″] driven driving (ATDD)? Need some advice as I am not sure if I can keep my insurance after a third incident.

References

[/bibshow]

This post was updated and refreshed on 2013-11-28. No major changes to the content were made.

Image sources

About Greger Wikstrand

Greger Wikstrand, Ph.D. M.Sc. is a TOGAF 9 certified enterprise architect with an interest in e-heatlh, m-health and all things agile as well as processes, methods and tools. Greger Wikstrand works as a consultant at Capgemini where he alternates between enterprise agile coaching, problem solving and designing large scale e-health services ...

One Comment

  1. Still enjoying this post. 🙂

Leave a Reply