I’m a firm believer of release early and often. If there’s more than 10 new commits in our code repository awaiting release, I start to get uncomfortable. Whether it’s extra “inventory sitting on our shelves” instead of in your browser, or the uncertainty of “going live” with a bunch of new stuff and then running into a problem. Which change caused the problem?
Michael Dell changed the computer industry a long time ago by insisting on zero inventory. Inventory is waste. It sits on shelves collecting dust, needing to be constantly managed. “Just in time” manufacturing means you start building when the customer orders.
Agile software development takes the same view with new features. Once your customer asks for something, code it and release. Don’t let it sit in your code repository neglected and unloved. Being able to do this without bringing your site down takes some good continuous integration. But I’m sure you’d rather be managing this than 6-month release cycles, right?
Just like the phrase sounds, at the beginning there was nothing. A singularity of product development which suddenly flashed into existence creating an entire website. And that website sucked.
Great websites evolve over years of use and feedback. It takes hundreds (if not thousands) of releases before a site finds its groove and really takes off. So it makes sense that the quicker you can do these iterations, the quicker you’ll make users love your site.
Limit Batch Size
If I still haven’t convinced you to release early and often, here’s my last ditch effort. Toyota championed lean manufacturing inspiring the Toyota Way. On an assembly line, they noticed that large batch sizes often caused bottlenecks on the shop floor. This increased their production time which cut into their profits. By investing a bit more time in streamlining their processes and achieving “single piece flow”, production times were drastically reduced giving them a much quicker to-market time.
Releasing big batches of code at once causes operational headaches. It’s hard to do meaningful integration tests with more than 3 or 4 new features/bugfixes at a time. And poor integration tests lead to bugs on the live system.
We typically do 4-5 releases a week at NetDoktor. This helps me sleep well at night because I know we’re improving your experience on a daily basis. Keeping our feature inventory close to zero and releasing often also means less headaches & unintended side-effects for operations. Agile + Lean = WIN for all of us!