• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

In praise of continuous deployment

erich37

Well-known member
#1
Launching products is one of the hardest things companies do. Most companies pour months of work into making sure everything goes right at a launch – the features are right, the marketing is ready, the press is primed, the product is solid, etc. But a new breed of companies are doing things very differently. Instead of optimizing product launches to go as perfectly as possible, they optimize to have them go as quickly as possible.

Let’s compare and contrast:
#1 Optimize for perfection: Features are carefully analyzed and planned, progress is reviewed at multiple stages with various stakeholders, multiple development and testing cycles, launch dates are carefully planned out and coördinated. Result: Product is released every few months.
#2 Optimize for speed: Features are broken into smallest possible pieces, code is incrementally developed, tested and launched, launch dates are fluid, products can be updated in seconds. Result: Product is released continuously. The emerging term for this is continuous deployment.

Here are 5 reasons why the continuous deployment model works and you should try it for your company:
  1. You will be more agile: Pushing code quickly means you can launch features quickly, but maybe even more importantly you can also fix things quickly. By lowering the cost of fixing a mistake from days to seconds, you lower the fear of making mistakes which in turn increases your product development velocity.
  2. Product people will love you: What do you think is more appealing to a great product person: A 6 month process of building, tweaking, and justifying a product, or a way to get a new idea in front of customers every day? If you can combine the thrill of instant results with the satisfaction of reaching a large number of customers, you’ve created a very appealing product development environment.
  3. Customers like momentum: One of the surprising results of continuous product deployment is that the the old idea of users wanting a perfect product and not being tolerant of flaws is wrong (at least on the web). It turns out that users are forgiving of flaws if they know that they will be fixed quickly. And they tend to like new features better if they show up at a regular pace every few days instead of one giant new product release that changes lots of things around every 6 months.
  4. No more gatekeepers: The quest for product perfection leads companies to create lots of gates a product has to pass through before it can be released – user studies, UI signoffs, legal reviews, executive approvals, QA tests, support training, and so on. By making product releases radically smaller and faster, these gates either go away or they can be re-organized to be more agile. For example, writing a support document for a single new feature that gets launched today is a lot easier than planning support for the rollout of dozens or hundreds of changes in a big release.
  5. Marketing people will, um, hate you: OK, that’s not really a positive. Or maybe it is. Marketing and PR people (and possibly lawyers) tend to not like the notion of continuous deployment. They are trained to bundle up lots of new features into a big release that is revealed to the world through a carefully orchestrated press and partner roll out that’s designed to break through the noise of everyday distractions. The good news is that marketing can adapt. Continuous deployment can lead to continuous chatter by thousands of customers and bloggers which ends up being very valuable, probably more so than that one article in a Big Newspaper every 6 months when you do a major release.
Month long product release cycles made sense when it took a while to package up and distribute software and get everyone to upgrade. On the web, packaging and shipping software can be done in seconds and upgrading is automatic next time someone reloads your site. This makes it possible to radically change the software deployment model from carefully planned and tested, occasional releases, to pushing new software to a web site all day long.


Further read:
http://www.startuplessonslearned.com/search/label/continuous deployment
http://radar.oreilly.com/2009/03/continuous-deployment-5-eas.html
 

Nick

Well-known member
#8
Sorry, IB has set a good example of how this method doesn't work well. I prefer option #1: Optimize for perfection.
 
#12
They're also impeded by the idiocy that is IB upper management.

I've never seen a company that is so poorly run, at least for customer relations.

Technology is dominated by two types of people:
  • those who understand what they do not manage; and
  • those who manage what they do not understand