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.
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.
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.
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.
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.
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.
This post was updated and refreshed on 2013-11-28. No major changes to the content were made.