Driving to the ocean
Each summer we head to the ocean. There is nothing like seeing your children playing in the high tide of the Atlantic.
But getting there is a serious challenge. We have five kids, one van and at least 17 hours on the road. So there is a great deal of planning that is done up-front. We plot out where to get gas, what rest stops to hit, what snacks to bring and where to find the first Chick-Fil-A once we cross into Tennessee. The goal is to have no surprises; to know exactly what we are doing.
And that is how we used to build software as well.
Not too long ago, we would sit down at the start of a project and write down everything we were going to do. We would plot out the bugs we were going to fix, the features we were going to add and how much time each step would take. We would spend weeks or months creating documents and charts filled with details. The final schedule would be meticulous in detail and brimming with confidence.
And then the van would crash into a ditch just outside of Indianapolis.
I’ll get into the hows and whys of that particular phenomenon in another blog, but first, I wanted to touch on how we do scheduling at RadBlue.
At the start of each development cycle, we have a short list of issues that we want to tackle. All of these issues relate to our goal of making our products better for our customers.
Then, we get in the car and start driving.
Going into a development cycle, we know that the journey is never going to be a straight shot. In fact, we know we aren’t going to get to the original destination. Our customers are great at voicing their opinions – on both the current products and on sneak previews of the work in-progress. And all of that input helps steer the car.
Our development process is a fluid one. We are constantly revising the schedule and feature set based on the latest information. Sometimes the input changes our direction by a few degrees. And sometimes the input completely changes our direction. Sometimes we head toward Disneyland, but end up at Disney World.
For a small, agile company like us, this is the best possible way to respond to the needs of our customers. It allows us to focus on what is needed and deliver it in a timely manner.
It’s probably the worst possible way to pilot a family to the ocean. But it’s a great way to build software.