Agility Throughout the LifeCycle: The Rise of DevOps

Summary:
DevOps is steadily gaining traction and currency, particularly in the world of web apps. We want to give an introduction and some pointers to resources and further reading. Many DevOps principles have been around for a long time. This is similar to agile methods—in some ways a repackaging of existing principles.

Until it is released (in the hands of end-users), new developments are “inventory”, to use the lean software term – you have invested time, effort and resources in making changes, but no value is realised for the organisation until any development is actually released and being used by the end-users.

So What is DevOps?
The term DevOps suggests the combining of development and operations together and applying some of the skills of development to the issues of deployment. It is also about looking to break down many of the barriers that have grown up between these two parts of many organisations.

Is it New?
As mentioned at the start, we believe that the principles have been around in various forms for many years.

For those of us who do internal software tool development as part of their job (either from scratch, or to customize and configure), DevOps has always been a part of the reality that we have lived with day-in and day-out for at least a decade or two. Just as Agile Development calls for generalizing specialists across functions, we have had to do the same across the enterprise:

  • We’ve had to be experts not merely (nor even primarily) with tool administration/usage but also with the organizations' business-processes and most (if not all) of the enteprise application architecture
  • We’ve had to work across not merely the software development lifecycle of these tools, but also the deployment lifecycle for installing, upgrading and supporting the tools
  • We’ve had to do far more than mere administrative support too, including new development to any existing internally developed customizations and their configurations.

We've had to be process experts, application development experts, application deployment exports, tool support and administration experts, etc., for most all the business-activities and their processes surrounding those tools.

Is it Elitist?
One of the dangers is that DevOps is perceived as elitist and as relevant to only a few organisations. See Stephen Nelson-Smith’s article which addresses some of these concerns. Does it mean that all sysadmins must be able to program (or at least script actions)? To some people the answer is yes – a new breed of sysadmin-coders will sweep all before them. I believe that is not strictly necessary – although it can be an advantage. The key principle for me is that the operations team needs to consider how to improve the automation of their tasks, and if they can't automate it easily themselves, to seek help in achieving this automation (and the business should allocate necessary resources to doing this).

It is Just a Fad?
Another danger is that of being perceived as a trendy fad – and thus something that can safely be ignored by the vast majority!

The underlying principles being espoused under the term DevOps have been around for a long time and successful organisations have been implementing them well for some time.

The fact that they are wrapped up in a catchy title is good marketing 

Let’s look at some of the issues and principles involved.

Global vs Local Optimizations
Too many companies still have local optimisations rather than optimizations across the complete lifecycle – their development may utilize Agile methods such as TDD, and seem dramatically improved from previous efforts, and yet releases happen infrequently and are not always successful. It doesn’t matter how good your development is if there is a large stumbling block later in the life cycle.

Improving Communication
There is often a lack of communication between development and operations. Each department is often incentivised very differently – development gets rewarded for making changes, operations gets rewarded for

About the author

Brad Appleton's picture
Brad Appleton

Brad Appleton is a software CM/ALM solution architect and lean/agile development champion at a large telecommunications company. Currently he helps projects and teams adopt and apply lean/agile development and CM/ALM practices and tools. He is coauthor of the bookSoftware Configuration Management Patterns, a columnist in The CM Journal and The Agile Journal at CMCrossroads.com, and a former section editor for The C++ Report. You can read Brad's blog at blog.bradapp.net.

About the author

Steve Berczuk's picture
Steve Berczuk

Steve Berczuk is an engineer and ScrumMaster at Humedica where he's helping to build next-generation SaaS-based clinical informatics applications. The author of Software Configuration Management Patterns: Effective Teamwork, Practical Integration, he is a recognized expert in software configuration management and agile software development. Steve is passionate about helping teams work effectively to produce quality software. He has an M.S. in operations research from Stanford University and an S.B. in Electrical Engineering from MIT, and is a certified, practicing ScrumMaster. Contact Steve at steve@berczuk.com or visit berczuk.com and follow his blog at blog.berczuk.com.

About the author

Robert Cowham's picture
Robert Cowham

Robert Cowham has long been interested in software configuration management while retaining the attitude of a generalist with experience and skills in many aspects of software development. A regular presenter at conferences, he authored the Agile SCM column within the CM Journal together with Brad Appleton and Steve Berczuk. His day job is as Services Director for Square Mile Systems whose main focus is on skills and techniques for infrastructure configuration management and DCIM (Data Center Infrastructure Management) - applying configuration management principles to hardware documentation and implementation as well as mapping ITIL services to the underlying layers.