DevOps Zone is brought to you in partnership with:

Jim Highsmith is an executive consultant at ThoughtWorks, Inc. He has 30-plus years experience as an IT manager, product manager, project manager, consultant, and software developer. Jim is the author of Agile Project Management: Creating Innovative Products, Addis Wesley 2004; Adaptive Software Development: A Collaborative Approach to Managing Complex Systems, Dorset House 2000 and winner of the prestigious Jolt Award, and Agile Software Development Ecosystems, Addison Wesley 2002. Jim is also the recipient of the 2005 international Stevens Award. Jim is a DZone MVB and is not an employee of DZone and has posted 30 posts at DZone. You can read more from them at their website. View Full User Profile

Continuous Delivery and Agility

09.21.2011
| 3951 views |
  • submit to reddit

Continuous delivery is one of the exciting new trends in software development (Continuous Delivery by Jez Humble and David Farley). The purpose of the practices and principles of continuous delivery is to encourage “greater collaboration between everyone involved in software delivery in order to release valuable software faster and more reliably (Humble & Farley).” Continuous delivery is an extension of the agile practices that deliver value to customers early and often. As shown in the figure, it combines continuous development (iterative development of features), continuous integration (characterized by comprehensive automated testing), and continuous deployment (the ability to deploy new releases to production frequently)1.

At a more detailed level, Jez (via email) reiterates that there are three strands to continuous delivery—one concerned with automation of build, test, deployment, database migrations, and infrastructure; one concerned with practices, such as continuous integration, good configuration management, and testing; and a third concerned with people; having everyone involved in delivery work together throughout the of the software delivery lifecycle.

Strategic_Continuous_DeliveryThere are two integrated issues in gaining business value from continuous delivery—strategic impact and agility (or adaptability). First, as a company progresses further to the right on the horizontal axis, additional investment and organizational collaboration are required. Therefore, from a business value perspective, companies need to assess the strategic impact of the progression. While continuous delivery can reduce cost and risk also (through more automation), the most significant benefits arise from frequent release of new software functionality. The key question then becomes, “How can we benefit from releasing new functionality monthly, weekly, or even daily?” Furthermore, “How will our organization and business processes need to change?”

In large organizations, IT applications support a variety of business areas. For some applications the benefits of continuous delivery may be revenue enhancing, while in others it may be cost and risk reduction. In thinking about implementing continuous delivery across an application portfolio, companies should begin with those that have the biggest strategic impact, those with revenue enhancing prospects.

The second issue in gaining the benefits of continuous delivery is the organization’s agile or adaptive maturity. Many organizations seem to be stuck at Agile 101, the rule-based approach to agile (do this, don’t do that) that is a necessary first step towards becoming agile, but it’s only a first step. To take advantage of the fast-paced responsiveness of a continuous delivery environment, the entire organization–both delivery teams and management– needs to be mature—from embracing the process changes required to respond rapidly, to engaging in the collaboration required between development and operations, to embracing an adaptive, exploratory mindset.

Continuous delivery may be the next big step in delivering strategic business value to clients quickly, with lower risk and possibly lower cost. However, it won’t happen unless leadership understands its potential strategic impact and the organizational adaptability necessary to implement it.

1 Note: Continuous delivery covers the entire lifecycle and may not include continuous deployment, which is left to the discretion of the customer. This is shown in the figure by the continuous delivery arrow not extending completely across continuous deployment.

References
Published at DZone with permission of Jim Highsmith, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Emma Watson replied on Fri, 2012/03/30 - 3:01am

 

Jim you made my day! Your articles helped me to read the things i was looking for. Many thanks dude. Keep writing!

In software development, Continuous delivery is a a great trend whose basic purpose is to invoke the collaborations of the practices of the software delivery to make reliable releases of softwares efficiently.

Thanks :)

java program

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.