Shipping Is A Feature

Calendar CoderNever lose sight of the fact that until you ship your product, it is not providing value to anybody.  Joel Spolsky put it well when he wrote:

A 50%-good solution that people actually have solves more problems and survives longer than a 99% solution that nobody has because it’s in your lab where you’re endlessly polishing the damn thing. Shipping is a feature. A really important feature. Your product must have it.

There are many factors that can prevent you from shipping your product.  One of the most common anti-patterns is feature creep, where more and more "must have" features are added to the release's scope, pushing the release date ever further into the future.  One effective way to ensure this does not occur is to establish a product delivery cadence.  Establish internally and with your customers that you're going to ship twice a year, or every four months, or every second Thursday, and then stick to it.  Your customers and your internal stakeholders will quickly come to terms with the fact that not getting a feature into this release is no big deal if it can be in the next one that's not too far off in the future.  Further, by releasing on schedule, regularly, you build trust and confidence in your team and your organization's ability to deliver working software consistently (which, sadly, is an exceptional quality).

The next time someone tries to cram one more feature into your product's release that would delay it, ask them to remember that Shipping is a Feature, and it's usually more important than any other single feature you might include.