by K. John Russell
I once attended a seminar given by a Vice President for a software development firm. He discussed the business principle time to market. Time to market means, simply, that the sooner a new product is ready for sale the sooner we can make money on it, and the more money we can make overall. We lose money when a new product takes longer to develop.
He used "starting a pizza shop" as an analogy, and he broke down time to market into what he called think time, production time, and distribution time.
Think time is when you plan out all the things you have to do just to get ready to make and sell the pizza: store front, ovens, employees…you get the idea. (This part of the software development process seems invariably overlooked or ignored.)
Production time is when you do everything you need to do to actually make and sell the pizzas: you hire and train your employees, you make a few test pizzas.
Distribution time is when you actually take orders and make and deliver pizzas.
The analogy and the concepts all sounded grand, but I felt there was something amiss: making a computer software program is nothing like making a pizza.To legitimize the analogy we'd have to say that we're making every pizza… from scratch. We grow our own wheat and tomatoes to make dough and tasty sauce. And we have a cow, too, for cheese.
Under these circumstances our think time is a nightmare. That's why we often skip it. The thought of having to sit down and plan out a garden that anticipates every option a customer might order is nothing any programmer I know wants anything to do with. Read More …