The agile way of getting a bike
A while ago I was working on a new software project. I had a product owner that was an expert in the business domain. But he never worked with an agile software development team. Thus, I had to explain how the agile process works. Also, I had to explain that he will get the application in increments that might not look like the end product. At least not at first. And that it’s a good thing.
While looking for a metaphor to illustrate this, I found one that is quite well-known in an article by Henrik Kniberg. But, I wasn’t very happy with it. My product owner would not agree that you get a car by building a scooter, a bike, and a motorcycle first. Then I found this article by Mike Hickerson, which I believe represents a bit better how agile development works. Still, I thought the history of the bike is quite long and it might not seem very agile or relatable to someone not that interested in bikes. But, I did enjoy the idea of the bicycle analogy. Then, I remembered how my nephew had once asked for a bike.
The Bike Story
I was babysitting him one summer and we were watching the Tour de France together on TV. Well, I was watching it, and he was playing on the floor next to the TV. Suddenly, he said, “I want a racing bike so I can go fast too”. Mind you, he was 4 years old. But, sure enough, the next thing he asked my brother to buy him a racing bike. As my brother didn’t have the money to buy him a racing bike, he had 3 choices:
1) Wait to save enough money and then buy the racing bike (he’s against bank loans and monthly installments)
- Doing so means the child would be upset for a long time. And, by the time my brother saved enough money for the bike, the boy would have found other interests.
2) Buy the bike piece by piece as he got the money until he had all the pieces needed to build it.
- Doing this would only frustrate the child. He would see that his dad was buying bike parts, but he still couldn’t ride his bike
3) Buy a tricycle and get the child on something that looked like a bike and get him out of the house.
As you can guess, he bought the tricycle. My nephew was not very excited to get something that didn’t look like a racing bike. But, he quickly got accustomed to turning the pedals and steering and found it quite fun. And that kept him busy and happy for that summer.
credits for the tricycle
The next summer my nephew said he wanted to go faster so my brother bought him a bicycle with training wheels. This meant that the boy would go faster and get accustomed to balancing on the bike and braking. And he would still be safe. That’s because the training wheels would keep him upright. By the end of the summer he got accustomed to riding and the training wheels were no longer necessary.
credits for the bicycle with training wheels
Years later, when the boy outgrew the bike he asked for a city bike to go farther through the neighborhood. At first, my nephew had a tough time with the new bike as it was a bit too large. But with time he grew into it and enjoyed riding the bike with his friends. Since the bike was quite large, my sister-in-law started using the bike as well. She used it to go to the shops on sunny days.
credits for the city bike
As my brother watched my nephew ride the bike in the park, he saw the boy would go off the paved alleys. He would go onto the trails and over small bumps. But the bike was not very nimble and the tires were not appropriate for going off-track. So, when my brother bought him the next bike, he bought a mountain bike. You should have seen the grin on my nephew’s face when he could finally ride wherever he wanted.
credits for the mountain bike
When I asked him if he still wanted to have a racing bike, he said “absolutely not”. It was much more fun to ride everywhere and jump over obstacles. Plus, it’s dangerous on the road due to the cars. It was so interesting to see how he had evolved from wanting a racing bike to wanting nothing to do with the road.
The Agile Story
Looking back, I realized that my nephew’s request for a racing bike is like my customer’s request for the new application. And, saving money to buy a racing bike is a Waterfall approach to software. It was also obvious to me that buying bike parts is like delivering small chunks of code without providing value – like delivering the back end first, then some APIs, or a UI without interaction. And, that you should deliver first the functionality that allows customers to use the app. This will allow them to give you feedback, while the application grows in the right direction. Then, if they have the app, they might find new uses for it – same as my sister-in-law with the city bike.
Another crucial point is that customers grow along with the application, and their needs change. Listening to their feedback constantly and observing how they use your application will show you all you need to know to ensure the growth of the product. At the same time, you’ll be sure the delivered product best fits your customer’s needs. So, go out there and get that tricycle in the hands of your customers! 😊
As for me, I translated my story into the picture below. I presented it to my product owner and he completely understood the point. He also gave us his feedback on the functionalities that we added. And, he was happy to get the application in small increments.
Article written by Sergiu Pocan