6 Steps to Increase DevOps Velocity
Many organizations are looking to implement DevOps due to the promise of increased release velocity, better developmental agility, and the ability to free up time for developers to focus on innovation. However, adopting DevOps isn’t a panacea— instead, the idea of communication, collaboration, and blameless retrospectives that a DevOps model encourages can help foster a leaner system where bottlenecks are solved in a manner that not only fixes the problem, but also improves the process.
One of the biggest challenges for organizations that implement DevOps is identifying and removing existing problems within their workflow to make way for the newer, more agile methodology. Gartner outlined the six steps an organization can take to remove constraints—which can mean any inconvenience, setback, or other limiting factor that prevents a system from moving closer to achieving a goal— and truly increase DevOps velocity, which we’ve summarized below.
Step 1: Define the Process
When reworking their processes, DevOps teams need to define their process by laying out their workflow, from initial inception to eventual customer value. By documenting every step within existing processes, teams can more easily suss out and refine constraint areas that may not be positively contributing to the process as a whole. Additionally, teams can get a clearer picture of the greater value stream, including cycle times, approximate time intervals, hand-offs, and wait states. After this is all laid out, teams can then easily identify the biggest process constraints, begin taking steps to improve the process as a whole, and increase the effectiveness of process documentation.
Step 2: Identify the Greatest Constraint
In a typical DevOps workflow, there is always one stage that slows down the ideation-to-value process. In order to drive systemic improvement, teams need to identify the specific phase that is impeding progress and remove the source of the constraint.
To identify the greatest constraint, ask the question: “What is everyone always waiting on?” Asking this allows teams to identify what needs extra attention in order to increase efficiency. If this is done in a blameless, constructive environment, team members will be more likely to speak out. After identifying the greatest constraint, monitor the progress of the project to confirm that the correct blockage had been identified.
Step 3: Remove Waste at the Constraint
When a constraint is identified, the most common course of action is to throw more resources at it—people, money, new systems, etc. However, focusing on removing sources of wasted potential instead of adding more (potentially unhelpful) resources is more effective.
According to Gartner, the three top sources of waste as identified by clients are:
- Incidents: Valuable time is spent on incident management, at the expense of value-added activities like developing new products or features. A best practice for this is to cross-train team members to be proficient in incident management. One way to prevent incidents in the future is to conduct blameless postmortems to figure out the root cause of the incident and prevent it in the future.
- Waiting: Waiting on people, outside organizations, other resources, etc. is a constant challenge. This can be mitigated by training and hiring employees with diverse skill sets and knowledge so they can work in parallel. This will allow them to accomplish project goals and other assigned work while waiting on someone else to respond to another project.
- Human potential: Many IT professionals spend a lot of time doing manual work, whether it’s updating a database or escalating an incident. Organizations will realize more value by automating as much as they can so that people can focus more on high-value tasks.
Step 4: Don’t Ignore the Constraint
Ignoring constraints to focus on new, incoming issues means the original problems were never addressed, leading to slower work and more problems in the future. For example, think of a chain: If the weakest link in the chain isn’t strengthened, the other links are bound to fail at some point.
By neglecting constraints, teams can experience various challenges, including:
- An increase in mistakes and defects.
- Negative impacts on team efficiency and productivity
- Costly rework in situations with a high rate of change
Step 5: Add Capacity
The above steps can help improve throughput by at least 30% and also allow stakeholders the ability and time to evaluate problems so they can carefully consider the best solution vs. choosing a quick fix. Teams should also take this time to figure out what other ways they can increase capacity, whether it’s contracting professional services or hiring additional staff.
Step 6: Find the Next Greatest Constraint
Increasing release velocity is no easy task—and it requires continuous improvements to the process. For instance, even if a team manages to remove a constraint, another one can take its place in a different part of the workflow. Over time, teams will need to adapt their processes and practices to achieve a high development cadence. Finally, to ensure they meet the needs of their customers, they must perform due diligence on their development cadence and make improvements as necessary.
Interested in reading more? Check out Gartner’s full report, “6 Steps to Increase DevOps Release Velocity by Removing Constraints.”