Subscribe to the InfoTech eNewsletter

infoTECH Feature

January 09, 2014

Continuous Delivery - Just a New Buzz Phrase, or the Answer to Making Agile Truly Work?

By TMCnet Special Guest
Mark Warren, Marketing Director, Europe, Perforce Software

Agile (News - Alert) development has been around now for over a decade, but recent research by Forrester estimates that only a fifth of businesses have adopted Agile as part of their software development processes and less than 50 percent have any formal processes.

This is a shame, because with technology at the heart of many businesses (mobile operators, financial services providers or engineering companies may not sell software, but they certainly depend on it), companies need all the help they can get.  In theory, Agile and its intensive bursts or ‘sprints’ of development help get a viable product out to market as quickly as possible.  Agile methods have traditionally been seen as a software development practice, but businesses are increasingly extending the reach of an Agile approach across the company. This results in the outputs from those sprints reaching customers’ hands quickly and frequently while also shortening the feedback path from customers to developers. This approach is known as “Continuous Delivery.” In such a rapidly changing environment, how can the quality of software releases be maintained with adherence to compliance processes?

Continuous Delivery (CD) relies on a few key capabilities:

  •         Automation of the deployments of software components into staging and, ultimately, production servers (it’s a step on from Continuous Integration (CI))
  •         Short feedback loops from the build system, automated testing and feedback from the customer so any errors are detected and resolved early in the development process (and changes in requirements are incorporated in future iterations)
  •         A common version management system for all contributors and to manage the automation

The potential benefits are huge - software can be built faster with less effort and stress, but without compromising the quality. Problems are dealt with more quickly, and the development process becomes broader and more scalable. It effectively removes the brakes from many projects.

Three core capabilities of an effective CD environment

First up is automation. While manual intervention may be required somewhere along the line, automation helps prevent errors and enables optimisation. For instance, is it possible to avoid re-compiling the same components every time? Can testing be automated? If something goes wrong, how easy is it to revert to a previous working environment? How do you measure performance of each stage of a manual process? Automation is also critical for compliance because it provides an ‘audit trail’ of what happened when, where and by whom.

Now let's look at feedback, which means any information about the performance of the system. Is it passing its tests? Is it delivering the performance, functionality or value that the customer requires? Is the development team delivering the required functionality at a pace that will meet schedules? Automation of testing is an important component here. While it may not be necessary to test everything on every check-in, all important sub-sets of data should be tested to verify that the core product works and that regressions have not been introduced.  That testing needs to happen frequently, not in one big testing task at the end of the project. The best CD systems use CI frequently or even on every change submitted to the version management system.

Automation can create a heavy workload, especially on whatever version management system is used to keep track of the software project’s ‘moving parts,’ so it needs to be able to scale and deal with peaks in volume.  So, the third key element is the version management system. Besides high performance, it also needs to be able version ALL of the elements of the project and provide a single, consistent view to all contributors regardless of their skillsets or geographic location.

The version management system is the definitive ‘single point of truth’ of all assets, which could include code, documentation, planning, images, test data, diagrams, web content and video.  Ideally, automation of build, test and release systems should also be maintained within the version management system. 

Version management – together with automation and feedback – are not the only elements that will ensure successful Continuous Delivery, but between them, they will go a long way to achieving a good head start.

Mark Warren is Marketing Director, Europe, for Perforce Software.  Mark has over 25 years of experience as a consumer and vendor of enterprise development and configuration management products. Perforce’s products are used by more than 10,500 organisations worldwide, many of which are in Europe.

Edited by Cassandra Tucker

Subscribe to InfoTECH Spotlight eNews

InfoTECH Spotlight eNews delivers the latest news impacting technology in the IT industry each week. Sign up to receive FREE breaking news today!
FREE eNewsletter

infoTECH Whitepapers