The Agile + DevOps Effect: 6 Keys to Software Delivery Evolution

Jan 30, 2019

Agile and DevOps are both iterative methodologies that focus on moving quickly. With Agile, you’re trying to test your assumptions as soon as possible so that you can fail early and fail fast. With DevOps, you’re creating a culture of continuous improvement, automating everything, and trying to bring value to the customer as soon as possible.

devops vs agile

In Merging Fail-Fast Agile with Well-Planned DevOps, Vladimir Fedak compares Agile and DevOps to two side of the same coin. He notes,

“Merging these two paradigms is no easy deal, yet if applied correctly, your Agile development teams can benefit greatly by becoming much more competent and competitive in the fast-paced business world we live in.”

From this perspective, DevOps can be thought of as an evolutionaryoutgrowth of Agile. It’s exposing new audiences (IT Operations) to theAgile way of thinking and doing things.

TheNew Paradigm of Agile + DevOps: 6 Principles

There are many factors that

contribute to a successful Agile + DevOps implementation, but today we will

focus on 6 key concepts: Lean thinking, product-oriented teams, microservices

architecture, automated governance, measurement, and value streammanagement.


Lean provides a solid and well-tested foundation for Agile + DevOps, while microservices and automated governance empower product-oriented teams to go fast and deliver value to the customer. However, executing on the vision is only half the battle. It’s crucial to set KPIs and capture metrics to determine if the new methods are truly benefitting the business.

For some context on what can be achieved with Agile + DevOps, a survey of 1,770 senior business and IT executives showed that organizations that add DevOps practices to an Agile environment improve new business growth by 38% more than using Agile alone. Agile + DevOps also increases operational efficiency by 23%, compared to using Agile alone.

Sounds great, right? Well, as usual, the devil’s in the details…

1.Lean

At its core, Agile + DevOps is the logical progression of

the Lean principles set forth by the Toyota Motor Corporation in the 1970s.

These principles include:


  • Creating value for the business

  • Eliminating waste (muda)

  • Continuous improvement (kaizen)

  • Respect for people

  • Excellence

Lean principles are centered around deliveringvalue to the customer. It’s critical to practice minimum viable products,

build, measure and learn, minimize work in progress, and maximize flow. These

principles provide a proven framework that will help guide you towards a better

methodology for developing software and using Agile and DevOps together.


2.Organization: Project vs. Product

Project-oriented teams are temporary teams that work on a

given project for anywhere from a few months to a year. Project team members

belong to different groups or functions and are assigned to certain activities

within the project. Once the project is complete, the team is disbanded and the

members move on to new projects. The end result is that the application is

created and cared for up until delivery, at which point it is handed to a

Product Manager. For this reason, project thinking tends to be more effective

for small companies with few distinct products.


Product-oriented teams have a broader perspective, where

they focus on the customer and the continued success of the product. They run

product development and support on a long-term basis for the duration of the

product’s life. They own implementing, executing, and maintaining the product. Having a long duration of ownership wherethere's persistence is absolutely critical to success.


When ThoughtWorkswent from project aligned to product aligned, they saw benefits like:

  • Increased ownership and responsibility

  • Code and design consistency across the product

  • Easier to maintain smaller products as opposed to a monolithiccodebase

  • Long-term product vision – teams started thinking aboutmodularity, reusability, scalability, etc.

The structure of an organization with product-oriented teams looks like this, with product teams surrounded by shared services and shared capabilities.

devops vs agile

This diagram brings up a common question regarding the

need for specialists. For an example, does every product team have to have a

security expert? Well, yes and no. There's a security function in the

organization that has security experts. But everybody on the product team needs

to understand the best practices to develop secure software from the beginning

to the end.


Every time you start a new project or kick off a new

product development, the shared services team should be part of the kickoff.

The shared services team helps shepherd the product along the way. Everybody shares in the success of theproduct team.


The Puppet Labs State of DevOpsReport

talks about product-oriented teams being critical to success. This is a very

important aspect to moving forward, breaking down silos, and making your team

more effective in an Agile + DevOps context.


3.Architecture

Microservices architecture empowers product-oriented

teams, enables Agile release strategies, and simplifies test and maintenance (because

componentized architecture is smaller and more contained, it tends to be easier

to manage).  


However, don’t do microservices for the sake of microservices.Perform an intelligent analysis of

your application and break up various pieces of it as necessary. In the case of

a relatively stable Legacy application, it’s possible that it doesn't need to

be changed. If you're starting from a green field, it might make sense to start

off with a monolith, do a MVP (Minimum Viable Product) that way, then break the

monolith up into microservices.


The bottom line is this: only do microservices if they’ll deliver value to your customer.

4.Automated Governance

Automated governance at key control points is another

component of Agile + DevOps. Try to automate all the scanning of code. Build

artifacts in an artifact repository, or automate the release out the door if

you're using Plutora. Try to automate these things as

much as possible so that your end-to-end goal posts are the only places where someone

has to manually check and catch issues.


5.Measurement

Every step in the CI/CD pipeline is rife with opportunities for a KPI to be captured. It’s important to capture as many of these KPIs as possible so that you can apply them to your process. KPIs to track might include: lead time to production, defect resolution time, number of code branches, production downtime, mean time between failures, rework rate, unplanned work rate, etc.

This step is essential for optimizing the software

development lifecycle, delivering value to customers, and measuring the success

of Agile + DevOps initiatives.  


6.Value Stream Management

Value streammanagement enables you to capture every step of your development process and

its accompanying metrics, so that you can then apply a KPI to it. Eventually,

this process allows you to see all of the progress being made, from the amount

of lead time to the amount of process time. You can pinpoint the problem areas

that need to be sped up or optimized across multiple

product lines, not just a single stream of work. It provides a top-level view

of what’s happening in the organization.


With a value stream management product, you can see the

entire pattern of work flowing through your tool chain. The right value stream

management tool should provide you with analytics, optics, and various

viewpoints -- whether you're a release manager, developer, or product manager.


The whole idea is to refine, reduce, measure, and repeatusing value stream mapping to understand your process. Thenlook for a value stream managementtool

that can create a live representation of what's going on rather than just a

static representation. Think about implementing change, delivering results, and

measuring impact. Once you measure that impact with KPIs and see how your

customers are responding, then it’s time to think about the next step to

improve.


All Roads Lead to the Customer

Ultimately, Agile + DevOps is a way of thinking that requires a cultural shift in the organizations it serves. People within the organization need to understand what their roles are for delivering value to the customer. A software engineer’s job is to create a product that’s going to be used by customers. By the same token, operational folks that are hosting, managing, and enabling the production of software need to realize that they are also serving the customer. In order to keep pace with market demands and pull ahead of competitors, the whole organization must get on the same page about delivering value to the customer.

Interested in learning more? Check out our on-demand webinar featuring Forrester Senior Analyst Chris Condo, Eliminate Black Box Development with Agile, DevOps, and Value Stream Management.

Streamline your software delivery with Plutora!

Streamline your software delivery with Plutora!

Imagine a single dashboard managing all enterprise software delivery, boosting visibility, efficiency, and cutting costs. Experience Plutora's solutions today!

Imagine a single dashboard managing all enterprise software delivery, boosting visibility, efficiency, and cutting costs. Experience Plutora's solutions today!

Download our free eBook

Mastering Software Delivery with Value Stream Management

Discover the key to optimizing your software delivery process with our comprehensive eBook on Value Stream Management (VSM). Learn how leading organizations are streamlining their software pipelines, enhancing quality, and accelerating delivery.

Deliver Better Software Faster with Plutora

Deliver Better Software Faster with Plutora

Deliver Better Software Faster with Plutora