Agility Throughout the LifeCycle: The Rise of DevOps

[article]

How to Implement DevOps


If you want to implement this, how do you go about it? Can you hire a DevOp and expect all your problems to go away? The key starting point has to be around communication, ensuring that your development and operations departments are working together closely on a daily basis.

Look at what is causing deployment problems and releases to fail. Ensure that deployment considerations are factored in very early in the development cycle. Look at automation possibilities. Make sure you have a well-managed common set of tools including your source repository.

Consider the throughput rate you are achieving: the rate at which changes are actually being deployed.  Also, how long on average that is. Measure inventory, work-in-progress that has not been deployed, and seek to reduce it.

If your software architecture makes frequent deployment difficult, then seek to change it as a high priority (treat this as a major code smell) or item of technical debt. This can be a major issue with legacy code and tools, and may take significant time to fix

Vendors and Tools


There are a number of companies and also open source communities that provide tools and methods:

  • Puppet labs puppet
  • Opscode’s chef, open source recipes
  • Commercial vendors include XebiaLabs and Nolio (also included as part of Serena’s offering)

One of the advantages of the open source offerings is the way it encourages thinking and sharing within the wider community. People can get actively involved and engaged which is a major benefit for all.  This is not to say that the commercial tools are bad, however.

It is also important to realize that a tool will not solve the problems, or necessarily make a huge difference by itself. It is the mindset and practices around the use of that tool that make the most difference.

Summary


This has been, perhaps, a whistle stop tour of some of the issues involved.  Many points have just briefly been touched upon above.

DevOps takes the agile notion of cross-functional self-organizing teams of generalizing specialists across disciplines and lifecycles and applies that directly to the IT and process architecture of the enterprise itself, forcing those of us who are CM/ALM professionals be experts in not only the processes and tools/technology, but also in enterprise application development, deployment and in organizational and process change,

We need to learn and become adept not only at applying CM/ALM to agile projects, but also at applying lean/agile principles and techniques to CM & ALM. That includes figuring out what it means to apply TDD, refactoring and continuous integration, or identification of smells and technical debt for processes and documentation (and even organizations) as well as to the development and deployment of the tools and processes we develop, deploy and support.

The rise of DevOps has many things to commend it.  Many organizations would do well to take the ideas on board. It isn’t just a fad and it is here to stay. Like most things it is not a magic bullet, but if you embrace the key ideas in a pragmatic and sensible manner, you will get real value from them.

Don’t oversell it within your organization, but instead use it as part of your arsenal for improving your process and making your own job more satisfying and effective.

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 a Principal Engineer and Scrum Master at Fitbit. 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.

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, TechWell.com is the place to go for what is happening in software development and delivery.  Join the conversation now!