Posted by andy@assembla.com
Sun, 10 Dec 2006 16:53:00 GMT
A major consumer goods company told me last Tuesday that they wanted to put in a gift purchasing system. This involved a couple of roles (giver and receiver), a credit card gateway, Web services for fulfillment, email reminders, etc – a serious application. I would normally want about 6 weeks to build and test such a system. They told me that wanted it for the following Monday – 6 days away – and they were willing to pay a premium for that. I took the job, and I told everyone that it wouldn’t make sense to do it in six days. Instead, we needed to do it in three days.
When I plan a software development job that has a deadline, I use a 50% scheduling rule. We need to have a relatively complete, working version of the software available for testing when we are halfway to a full release. If I want to do a product release 3 months from now, I plan to have a testable version of the product in 1.5 months. The halfway release can be rough and even ugly, but it needs to do most of the things the complete release will do. This rule ensures that the incremental release process can work its magic. You have half of the total time available for finding and fixing problems and making improvements.
What if someone gives you a seemingly impossible schedule? What if you don’t have enough time to get even the first version out? In this case, I still use the 50% rule. You force yourself to deliver something in half the time.
This just recognizes reality. In reality, no product is done in its first testable release. If you think you can do a release without spending half your time on incremental improvement, you are probably wrong. If instead you make a simpler product and give yourself a few cycles to make it work properly, you will look pretty good. As an added bonus, you motivate the business guys that you are working with to deliver all the stuff you need.
We posted our midpoint release early on Friday. It didn’t look great, but it had all of the transactions and it worked. I got my gift. Thursday was an all-nighter, but now it’s Sunday, and I have time to write this blog post.