[This is a guest post from Andrew Phillips, VP of Product Development, XebiaLabs. Andrew joined XebiaLabs in March of 2009 where he is responsible for the development of its deployment automation product, Deployit. He is a regular industry contributor and often speaks and writes on topics surrounding release management and deployment automation.]

Undoubtedly, one of Agile’s greatest benefits is its ability to deliver working tested software in much shorter iterations.

However, this benefit can also be a detriment in terms of deployments and getting applications to market.

While development teams are able to create many, more frequent deliverables, this often creates a backlog for operations teams as they struggle to deploy the applications as quickly as they’re produced.

Luckily, organizations can overcome this issue by implementing an automated deployment process, which keeps the more frequent deliverables on track. With deployment automation software in place, IT departments can avoid this potential backlog and bridge the gap between development and operations teams that results from the more frequent deliverables. This allows them to still take advantage of all the benefits Agile brings to a company, such as higher productivity levels and shorter time to market, without worrying about their operations teams constantly playing catch up. Without deployment automation, companies cannot unlock the full potential of Agile.

When companies are looking at becoming Agile, many do not consider deployment issues and only pay attention to the benefits Agile will bring to their IT department. After all, when companies are achieving productivity increases of five to 10 times over other methodologies, and delivering software iterations in just two to three weeks instead of two to three months, it’s understandable why organizations are signing up left and right. And, according to Scott Ambler, IBM’s Chief Methodologist for Agile and Lean, the majority of companies are already on board. In his session at the Agile 2010 conference this past August, he noted that 69 percent of organizations were already using Agile in 2008, growing to 76 percent in 2009.

With such a strong uptake, it’s clear that many companies are already realizing the benefits of this software development methodology, and for good reason since it brings such a strong competitive advantage by shortening time to market.

However, Agile is also the main cause of the growing gap between development and operations teams since operations can’t keep up with the many, more frequent, smaller deliverables the need to deploy.

As the difference between the deliverables decreases, the work becomes more tedious for operations teams since consecutive packages are likely to use the same set of resources and don’t need major changes in middleware configuration or infrastructure. This makes the work extremely repetitious, but hard to keep up with at the same time. According to ZeroTurnaround, the average software engineer spends around 250 hours per year (re)deploying Java applications to WebSphere environments; and in an Agile environment this is only further exacerbated. So, as the gap continues to grow, companies end up losing the competitive advantage they gained by implementing Agile in the first place.

This advantage can be regained, however, by implementing a deployment automation solution. Such solutions help companies deliver accurate and efficient automated end to end processes, so they can run in a more predictable and cost-effective way. Unlike custom scripts and generic process engines, which, according to a Hurwitz and Associates report, “The Sources of Web Application Downtime,” companies spend an average of $850,000/year creating and maintaining, automation solutions’ intelligent deployment engine ensures a safe and reliable application deployment in today’s ever-changing environments.

Such solutions allow development and operations teams to overcome the issue of backlogged deliverables and deployments to finally realize Agile’s full potential for increased productivity. Automation not only keeps the more frequent releases on schedule, but also eliminates the human errors associated with manual deployments. One company that has seen proven results from such deployment automation solutions is KLM, a leading European airline company, who was able to reduce their time to market for new applications by 10 percent and save approximately $1 million in man hours.

This approach is equally beneficial for both development and operations teams. For development, automating deployments means they are no longer as dependent on operations to push out new releases. And, for operations teams, it not only means they’ll be able to keep up with the more frequent deliverables, but also that the overall quality and speed of their deployments will increase as they no longer have to deal with human errors. And with 28 percent of all server downtime caused by configuration changes, updates or deployments, according to that same Hurwitz and Associates report, companies can’t afford to ignore the benefits of automating deployments.

Without deployment automation, it’s safe to say companies are not unlocking the full potential of Agile and realizing all the benefits of higher productivity levels, lower costs and faster time to market. Moving from deliverables of every two to three months to every two to three weeks is nearly impossible for operations teams to keep up with manually. But, by implementing deployment automation, companies successfully eliminate the gap between development and operations teams by removing the backlog of software deliverables, thereby creating a more seamless software release process.

Thanks for your comments, glad you enjoyed the piece.
I think education is a key component of implementing any change in an IT department, but you’re right – keeping operations teams involved in each step is a good way to help these two teams work together more cohesively in an Agile environment.
As more and more companies continue to implement deployment automation solutions, it’ll be interesting to see how productivity increases and Agile really takes off.

I find this post a bit puzzling since continuous integration is a cornerstone of agile, and it is as essential to ANY project (“agile” or not) as source code control. For me, automated deployment has been a natural outgrowth of CI, and it surprises me that an organization that’s committed to quality enough to use agile values and principles wouldn’t automate their deployment. But maybe what’s obvious to me isn’t obvious to everyone, so I am glad to see this post.

I highly recommend _Continuous Delivery_ by Jez Humble and David Farley to anyone desiring to deliver business value frequently while maintaining a sustainable pace (to borrow Elisabeth Hendrickson’s phrase).

I truely concur with this approach of automated deployment,my previous projects we had depedency on the operations team, while development is iterative/agile , deployment became painful as most the developers don’t have access to the higher environments(including DIT,SIT,UAT), and operation teams don’t work agile, they have predefined fixed schedules and redeployment is on request mode.

I can understand the automation of deployment for the war/ear or other archives, most of the time the deployment consists of custom configurations that have to manually done,how do we address these with automated deployment tools? i.e connecting to message broker or running some initialization db scripts.

Great question Abdul! There could be different ways of going about it. Check out http://controltier.com/ for deployment needs based on CMDB. You may, however need an architect or master chef to cook you up some custom configuration…