For many IT organizations, the digital transformation trend has spurred continuous changes in how to approach developing software systems that meet evolving business needs. One of the more common efforts is the switch to Agile methods, which often segues into DevOps.
This path makes perfect sense since collaboration between development and operations teams often results in faster iterations and improvement of product features in comparison to conventional software development models.
However, DevOps isn’t some magic wand that instantly enables an organization to deliver applications at greater speeds in a one-time sweep. For starters, there are many innovations to get acquainted with depending on your goals, such as application release automation, cloud infrastructure orchestration, value stream management, etc.
These can complicate an organization’s DevOps journey, which is why it’s important to take stock at every stage and refine the software delivery methods to ensure continuity.
Why Use a DevOps Maturity Assessment?
Think of a DevOps maturity assessment as a process of discovering the views that various cross-department affected personnel have regarding any DevOps methods being used in system development. These revelations are compared to the organization’s goals to ascertain whether a team is on the right path.
Prior to adoption of DevOps methods, leaders may wonder if they’ve selected the right strategies and whether their infrastructure has the capacity to accommodate the rapid changes in a team’s software development cycle. But a successful DevOps Maturity assessment can help prepare an organization for these changes in many ways such as:
- Determining the strength of a technical team and the areas that need polishing.
- Informing recruiters on how to adjust their approach in order to attract the talent required for DevOps activities.
- Helping managers identify areas that need additional investment, along with the actual resources or intervention needed.
- Highlighting the most vital operations as a cycle progresses so as to keep operational teams well-prepared and focused on the right operation at the right time.
Generally speaking, a DevOps assessment allows an organization to pinpoint the tangible and intangible needs of a software development team, and subsequently plan on how to provide these needs while focusing on the intersection of day-to-day actions for developers, testing personnel, managers, etc.
How to Infuse DevOps Maturity Assessments into Product Development
To successfully conduct a DevOps Maturity assessment, leaders need to appeal to team members, elaborating the relationship between a team member’s role in the development process and the final goals. Team members are more likely to give valuable feedback if they’ve been guided on the purpose of the assessment and their expected contribution.
As a project manager, you should divide the assessment to cover the major distinct aspects of development, i.e. people, technology and processes, to gather information.
Understanding the data points you’re pursuing and whether you can get accurate information from an isolated question, or if you have to involve an extra set of tools and a more detailed exercise, is key to a successful assessment. Once you have a good idea of the different stages in the development cycle, their respective participant and the corresponding work product, you’ll have a better idea of what assessment actions to undertake at any one point in development, the data to pursue, and how to process and act on it.
How to Perform a DevOps Maturity Assessment
A good DevOps Maturity assessment covers a number of areas, which is why you should pay attention to the four major pillars that can give you an idea of your organization’s DevOps maturity, and the upside to be realized. These include:
A DevOps approach largely relates to people and processes within an organization, so it goes without saying that team members’ behavior should be in line with the mentality that makes DevOps successful. Managers need to find out things like the level of unity amongst teams and the extent to which they can instinctively complement each other’s roles where necessary, without waiting on their leaders’ guidance.
There are a number of other boxes to check when assessing DevOps culture such as the orientation towards technical excellence, a reliance on transparency, prioritizing customer feedback, and frequent improvement efforts among others. Assessing DevOps culture may also unearth hidden flaws in an organization’s DevOps training programs.
DevOps is usually part of a bigger picture where an organization is trying to deliver products at a much faster pace, so automation will unsurprisingly make its way into this picture. Not only does automation help team members save time usually spent on the more repetitive tasks, it also facilitates continuous integration and deployment.
Additionally, DevOps automation can come in handy when an organization is trying to scale various operations, helping to respond to any incidents and ensure reliability. You should strip down your DevOps projects and look for all the areas that can benefit from automation.
Whether it’s entering data into a specific system’s interface, taking snapshots of different variables being tracked during a test, initiating and halting particular sub-processes in software execution, you can have team members lay out the impact of automation in previous instances and how it can be expanded. They can also let you know any other needs and workflow changes to be made if automation is to be further welcomed.
In agile transformations over the last couple of decades since the release of the Agile Manifesto many companies have become accustomed to agile Ways of Working. This is still valid knowledge when assessing your DevOps maturity and should always be part of measuring efficiency.
We always recommend reading Lean Software Development: An Agile Toolkit written by Mary and Tom Poppendieck as a starting point. Eliminating waste allows you to increase overall flow and pace of customer value delivery, but also remove toil and burnout in your organization. Mostly achieved by removing nonsense work and build up of waste in internal processes, ruining business and morale in the company.
While many of the inquiries within an assessment may pursue qualitative data, it’s hard to accurately evaluate the success of DevOps within your organization without some quantifiable pieces of information. DevOps is a journey that often requires the ability to discover correlations and causations between various resources, methods and subsequent work product.
You should list down all the major metrics concerning product and business, plus the ultra-specific ones related to code quality, technical solutions, etc. It is also important to devise the best means of collecting, storing, retrieving and analyzing this data in a way that promotes the overall DevOps project goals.
You must also zero in on the sharing practices in your organization, identifying the common tools that are used across different teams and departments. An assessment should also discover any shared goals, processes in which coworkers collaborate or are present in disparate organizational areas, and responsibilities that can be split amongst numerous team members.
Where to Apply Your Assessment Results
Once you’ve determined the DevOps maturity of your organization, you can apply your findings by drafting a roadmap with milestones that are particular to the different areas assessed and reflect a leap to the next level.
Some efforts that can be driven by assessment results include:
- Reimagining leadership contributions to provide the necessary intervention when adopting any new DevOps methods and managing team performance.
- Providing communication tools and adjusting work schedules to improve cross-functional collaboration.
- Restructuring application development to promote practices that are parallel to your DevOps objectives.
- Eliminating the bottlenecks within software integration workflows in order to improve on the builds produced and the packaging processes involved.
- Refining the teams’ testing policies to make the more frequent, well-positioned within the development cycle and more wholesome and accurate.
- Analyzing the demand for infrastructure to support DevOps workloads, application hosting, etc. and instituting a plan for deploying resources efficiently.
- Providing a more cohesive visualization of relevant metrics for all stakeholders by creating favorable conditions for continuous end-to-end monitoring.
- Tightening security and limiting errors in the different operations of the development cycle that are prone breaches or malfunctioning.
- Tweaking deployment practices in order to realize faster and more secure releases.
Depending on the pillars being assessed, the level of interdependence within an organization, and your ultimate business goals among other factors, there are plenty of small and sizable variations that can be exercised when assessing DevOps maturity.
This also means that there’s a wide range of valuable discoveries that can be made through an assessment, outside of the more straightforward data points being pursued. Managers should foster flexibility in DevOps Maturity assessment, accommodating both the smaller instant self-assessment practices within teams and more comprehensive assessment exercises that inform overall organizational change.
Co-founder of Buildingbettersoftware and Agile Leadership Coach
Søren Pedersen is a strategic leadership consultant and international speaker. With more than fifteen years of software development experience at LEGO, Bang & Olufsen, and Systematic, Pedersen knows how to help clients meet their digital transformation goals by obtaining organizational efficiency, alignment, and quality assurance across organizational hierarchies and value chains. Using Agile methodologies, he specializes in value stream conversion, leadership coaching, and transformation project analysis and execution. He’s spoken at DevOps London, is a contributor for The DevOps Institute, and is a Certified Scrum Master and Product Owner.
You can find more of his writing at https://agilerasmus.com/wordpress/
Value Stream Optimization?
We specialize in analysing and optimizing value streams.