Agile, Component Development & DevOps – A Natural Match


September 23, 2013 By Derek Weeks

Can you think of a technology concept that is more hyped than DevOps? We’ve moved past cloud & virtualization, and while not as hyped as Big Data or mobile, everyone on the development and operations side is talking about DevOps, not to mention DevOpsSec. 

Using several blog posts, I’m going to layout the vision for how component management – including a Repository Manager and complete lifecycle management – plays an instrumental role in the success of DevOps.

Let’s set the stage with some background material on DevOps.

Why DevOps?

Even though there is not a single, standard definition for DevOps, most would agree that the primary purpose of DevOps is to rapidly deliver reliable IT services (in the form of software). The goal of DevOps is to reduce the time between the initial concept and the fruition of the concept in production software. DevOps extends agile beyond the development process into production delivery and support.  DevOps supports the agile manifesto: “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software”. DevOps is not just about the rapid and reliable delivery of the initial software or new applications. DevOps is also concerned with the rapid and reliable delivery of enhancements and bug fixes to existing systems.

DevOps can be characterized as a journey from reactive mode to strategically managed operations:

  • From error-prone manual work to reliable automation.
  • From low-visibility to enterprise wide analysis, trending & reports
  • From late discovery of issues to automatic identification
  • From a silo-based mentality to a collaborative team-based approach

Since DevOps is a journey and work must be prioritized, most DevOps initiatives start by focusing on application / service delivery by improving the success of moving new functionality or enhancements into production in shorter and more successful cycles. This is done primarily by improving the collaboration and processes between Development (including QA) and IT Ops. After DevOps has improved the application / service delivery process, DevOps may choose to focus on additional improvements, including integrating other constituents into the process (e.g., security), production monitoring & control (including advanced analytics and monitoring to detect, triage, and then fix/redeploy production applications), etc.

Ultimately, organizations look to IT as a vehicle for competitive advantage, DevOps can:

  • Enable faster delivery of applications including new functionality, fixes, etc.
  • Lead to greater development efficiency with reduced cost.
  • Improve stability, quality, security, etc., of delivered applications.
  • Reduce chance of a costly exploit based on improved application security.
  • Improve customer (end user) experience and better meet SLA obligations.
  • Effective release management allows better leverage of distributed and/or outsourced development effort.

My upcoming posts will address how component development supports key DevOps objectives, including:

How is your organization responding to the DevOps movement?