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.
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.
Some key attributes of continuous delivery include: