The most useful lesson I’ve learned in the past 15 months: take baby steps. Break down projects, implementations, et cetera into the smallest digestible tasks. From the creative business sponsor to a heads-down developer; it simply makes life easier to manage, which allows you to complete projects faster and you can even argue it reduces your cost per feature.
I gained an incredible amount of experience using various development methodologies and techniques over my 10+ years working for bestbuy.com. Starting off the 21st century I was using “the dreaded waterfall” methodology. More recently I was involved in many “agile” projects. Now I’m promoting more lean techniques. Since joining Tealium, I have been involved with installing Tealium on well over 100 websites managing over 2,000 installed tags combined. This has given me plenty of opportunities to keep improving through trying new techniques. My favorite technique is, as Bob likes to say, “baby steps” or more precisely, smaller batch sizes.
Smaller batch sizes increase momentum by building confidence through quick accomplishments. When progress is felt, even the smaller bits, confidence grows and momentum follows. This means projects are completed faster. Although you really have to stop thinking of them as projects and more as ever changing works of art; as the world turns, customer’s needs change.
Take a standard software project process made popular by waterfall: gather requirements, refine requirements, design solution, develop solution, test solution, release solution. Reduce the number of requirements, reduce the time you spend up front gathering and refining business requirements. Shift focus to designing and developing the solution based on fewer high level requirements.
The goal is to make a tangible “product” as fast as possible. Get it in front of the users as fast as possible. This lets you start collecting more relevant feedback earlier in the process. It’s very hard to specify what you want up front. It’s much easier to take a product or feature and tell someone what should be changed based on the direct feedback.
The direct feedback is immediately used during the design solution and develop solution phases. When you take baby steps, it’s easier to design and develop because you have fewer requirements to take into consideration. With fewer requirements to manage, fewer bugs are generated at an exponential rate; in short, a lot less. The bugs are commonly easier to find with less code to sift through, making them faster to fix. This has an affect that both speeds up your production and reduces your cost per feature.
Working in smaller batch sizes has many benefits, but it doesn’t work in all cases. Be mindful of physical travel time when it comes to batch sizes. You’ll need to find the sweet spot of batch size to travel time ratio that allows you to be as effective as possible.
The perfect example is grocery shopping; buying less often will lower your costs overall. Less often lowers your fuel costs because you make fewer trips back and forth. Less often reduces your time spent with less time driving back and forth. The smallest batch size possible for grocery shopping will be determined mainly by travel costs and time spent.
In the world of software, travel costs are irrelevant, so the smallest batch size is determined mainly by the minimum number of requirements that creates a marketable feature. Maybe this is the phrase we can use to describe this epiphany, “Marketable Feature Cost” or “MF Cost” for short? 🙂 Regardless of what we call it, taking baby steps is a sure fire way to complete projects faster and reduce your costs at the same time.
Tag, you’re it again Ali!