On 08 Nov 2010, at 7:03 PM, jhumble wrote:

Two reasons: one, the faster you get feedback on the part of the story you have done so far, the faster you know if any further work is going to be
valuable, and what in fact the next most valuable thing to deliver is.

How do you handle branches?

Second, most of the pain of the software delivery process comes *after* the software is dev-complete, during testing and deployment (often called the
"last mile"). One of the important points of cd is that by creating
deployable software with every commit, you avoid the pain at the end of the
delivery process.

We have an alternative approach to this that we've found works just as well if not better - we require our developers to integrate their own code into a package. Until the code has been packaged, the developer is not done. We've chosen RPM as our packaging format, but any format that is deployable atomically will do.

We have further automated the deployments so that the packages are built in dedicated CI instances, in the process making it impossible for anyone to deploy anything that hasn't come out of source control first - no dodgy working copy builds or manual tweaking.

We've banned deployment documentation - if you want it installed, you have to roll it into your package. If you want anything more sophisticated than "deploy this RPM, graceful restart this service", you have to justify it.

We've found that doing this reduced costs on our platform by about an order of magnitude.

Regards,
Graham
--


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to