January 29, 2014

DevOps and Continuous Delivery – The Future of Software Development

Software development has undergone a quantum leap in the last decade as the software development community has largely shifted from the traditional waterfall models of the past to the lean and agile methodologies of today.  While the sequential design approach of the waterfall model still has some supporters, today’s rapidly evolving business climate all but demands that companies adopt an agile approach to launching software products.

A Forrester study conducted in 2012, for example, found that 17% of business leaders want strategic IT services or software products delivered in less than 3 months from concept to production, and 34% expect the same in between 3 and 6 months. An agile software development approach is the only way to build software products in such a short amount of time.

Agile gives organizations the much-needed ability to quickly respond in an unpredictable market where, among many other factors, consumer preferences are constantly changing and competitiveness is at its peak. At 3Pillar, we believe that we are entering a point in time where a company’s ability to successfully launch and maintain software products will be critical to their very survival. In this environment, those companies that can master two increasingly critical components of the development process – DevOps and Continuous Delivery – will be set up for success.

Let’s take a look at these 2 concepts and delve deeper into what they actually mean.

Development Operations, or “DevOps” as it is commonly known, is the practice of ensuring that an organization’s development environments, physical environments, and processes are set up to deliver new builds into production as rapidly as possible. DevOps requires tight integration of what have typically been siloed functions, like QA and IT.

DevOps engineers wear many hats in supporting Software and QA engineers with their development needs. They may provide help on a particular project that requires a test server to be set up and configured. They may be resposible for build servers that support continuous integration, an automated build practice that merges code automatically multiple times a day. They may write custom scripts that perform a particular development function. To hear “the Father of DevOps,” Patrick Debois, talk about where he thinks the DevOps movement is headed and why DevOps is like a meme, see the video below.

Successfully implementing DevOps in your organization puts you one step closer to Continuous Delivery. Continuous Delivery is the notion that as soon as a feature or feature set has been completed, it can be automatically rolled into production. According to an Amazon presentation from the Velocity conference in 2011, Amazon rolled a new feature out to production every 11 seconds in May of that year. Not every 11 days. Not every 11 hours. Every. 11. Seconds. That is Continuous Delivery at its finest.

Some key attributes of continuous delivery include:

  • Improvement in product quality – Rapid releases of working software help in gathering user feedback early. Such early gains help improve the quality of the end product to a great degree.
  • Risk mitigation – ‘Big-bang’ large deployments are much more susceptible to risk than short, incremental builds where each feature can be thoroughly tested during each release.
  • Quick releases and tests of features – Any new feature can be released quickly to gain feedback by testing the responsiveness of the end user.
  • Speedier resolution to problems – Each iteration focuses on eliminating problems identified during the evolution of the working software.
  • Ideal for this competitive day and age – The time that it takes from taking a new idea from concept to market is of utmost importance in today’s competitive environment.

Agile development practitioners will continue to drive business innovation through the core principles of agile development. The evolution of DevOps and the increasing move toward Continuous Delivery are just two examples of how agile methodologies are shaping the business landscape of the future.