How to Implement Scrum at Scale with Azure DevOps

As of 2016, the DevOps market size was valued at $2.885 billion. Thanks to a compound annual growth rate of 18.7% from 2017, projections indicate it will be worth $9.407 billion by 2023. Some of the primary factors propelling this sector’s growth are the collaborative and synchronization features offered by DevOps platforms.

Though the sector is relatively young, some players have begun carving out a significant market share. One such solution is Microsoft’s Azure, which is arguably the world’s fastest-growing cloud infrastructure platform. Though it may seem like much of its success is reliant on the parent company’s name, that’s not the case. Some of the reasons many developers prefer using Azure DevOps include:

      • Enhances collaboration
      • Offers continuous integration and delivery
      • It’s an open platform
      • No need to worry about upgrades
      • Flexible and reliable

Undoubtedly, Azure DevOps offers a wide range of benefits. This is why many companies choose it over Scrum. However, this is one of the biggest misconceptions among developers. DevOps and Scrum perform different functions and can work well together. Therefore, it’s not a matter of choosing one over the other.

In this article, you’ll learn more about Scrum, how it differs from DevOps, and how to implement it at scale with Azure DevOps.

What Is Scrum?

Scrum is a simple framework used by DevOps teams to handle complex product development. It relies on values and principles and helps manage developers manage work. As such, it does not provide any recommendation or prescribe how the process should look. However, with inspiration from rugby scrum, which it’s named after, it improves collaboration and coordination within teams.

This is why it is regarded as a framework for agile project management. It is important to note that Scrum is an additive framework, not the baseline for development. It lets you know the minimum requirements of what you need to have. It provides a description of a set of tools, meetings, and roles that work in tandem to help teams manage and structure their work.

Scrum is designed to deliver value to teams throughout project development. To help achieve this, it is flexible, fast, and adaptable. By using Scrum, teams benefit from greater transparency and continuous progress as it improves communication and instills a sense of collective responsibility. Through its iterative and incremental approach, it helps optimize predictability and reduce risk. When implemented effectively, teams are able to try new methods of doing things (experimentation) and assess their viability after a short iteration.

Agility is an important asset in software development as anything, and everything can change in a blink of an eye. Therefore it is crucial to perform continuous inspections and adapt practices based on circumstances. One of the best ways of achieving this is by combining the benefits of Scrum with tools in Azure DevOps.

Understanding DevOps

Instead of only focusing on the development phase, DevOps begins with systems thinking and allows teams to view the system’s entire value stream. It analyzes how the work will go upstream (development) and how it’s delivered to customers.

In complex systems, no element functions in isolation. If there’s a change in one element, another one will be impacted. Systems viewing is all about understanding all the elements in the system are interconnected and the effect they have on each other.

Each time a customer request is processed into a tangible outcome, it flows into different system elements. This flow is referred to as a value stream and is created whenever there is a request. Another critical feature in DevOps is lean thinking, which focuses on minimizing waste in the value stream.

Scrum is based on lean thinking and also functions well with systems thinking. Integrating all these functions allows teams to map the entire value stream. Azure DevOps Scrum allows all value stream activities to take place within the Sprint. These include customer requests, production environments, and releasing products. If you use Scrum with Kanban, you can turn the Sprint into more of a single-piece flow-based model.

How to Use Scrum as a DevOps Team

Adopting DevOps as a Scrum team comes with operational and structural changes. Your team’s composition and mode of working will be different from that of Scrum teams that do not use DevOps.

According to Scrum, potentially releasable increments are delivered at the end of the Sprint by professionals within development teams. Scrum is usually viewed as a framework for the development phase. This is because development teams are primarily made of developers. In Azure DevOps Scrum, anyone who possesses the Product Backlog Item (PBI) from end-to-end in the entire value stream is considered a professional in Scrum Teams.

The team composition of a Scrum Team adopting DevOps includes but is not limited to analysts, UI/UX designers, marketing personnel, developers, sysadmins, operations personnel, site-reliability engineers, and data scientists. Their collaborative efforts are aimed at delivering value to the customers.

DevOps Three Ways

DevOps is made up of a set of underlying principles referred to as DevOps Three Ways, which is based on systems thinking and lean thinking. Three ways does not focus on specific practices or tools, and it does not contradict the values of Scrum or its framework in any way. As such, DevOps Three Ways and Scrum work well together. As a Scrum team, your way of working will change after adopting DevOps Three Ways.

Getting the Most Out of Azure DevOps Scrum

DevOps Three Ways is a crucial element for any Scrum Team adopting DevOps. Here are some practices you should adopt to streamline the process and deliver greater value to customers.

      1. Optimize Flow

In DevOps Three Ways, flow optimization is the First Way. How each Product Backlog Item flows from when the customer makes a request to when they receive it as a working feature in the production environment is crucial in DevOps. This process should be smooth, and any bottlenecks that may interfere with it should be removed. In Agile communities, the notion that flow contradicts Scrum’s Sprint is quite popular. This is based on the premise that:

      • During Sprint Planning, the plan for the entire PBI should be completed, and that Sprint is a commitment
      • Delivery to production can only be done only once after the Sprint Review

Though there is nothing wrong with the Sprint mini-waterfall model, great Scrum teams are moving towards flow-based models as they help improve working processes.

The responsibility of removing bottlenecks affecting flow in Scrum falls on the shoulders of the Scrum Master. Should you decide to adopt a flow-based model, the Scrum Master will be required to learn about flow-based models and train the entire team on how Scrum and flow-based models work together.

Sprint Planning

Once you adopt a flow-based model, Sprint Planning will not be the same. Emphasis will shift from the Sprint Backlog as the focus will be on the Sprint Goal. The purpose of Sprint Planning is to consolidate upcoming Scrum Sprints into a single common goal. Work for the next few days of a sprint is forecasted. As long as the Sprint Goal is not compromised, more work may be added along the way. Should this happen, Kanban systems can help you manage the additional work during the Sprint.

Continuous Delivery to Production Environment

Though it’s a common practice to deliver to the production environment after the Sprint Review, this is not a requirement in Scrum. The Sprint Review allows teams to get feedback on what they have developed and should not be viewed as a barrier to the continued flow of processes. With Sprint Retrospective, you’ll have the opportunity to identify areas you can improve on in product development.

Sprint Review and Sprint Retrospective should not block flow. The most important thing is to know if you are flowing in the right direction. Instead of viewing Sprint as a release cadence, take it as planning and review cadence. At the end of each Sprint, the bare minimum you need is a potentially releasable product increment.

Therefore, if you have a high-performing team that can deliver to the production team more than once during the Sprint, there’s nothing wrong. This only means that you are exceeding minimum Scrum requirements. This is a cause for celebration as not all teams are able to release to the production environment more than once during a Sprint.

Daily Scrum in Flow-Based Models

In Azure DevOps Scrum, the Daily Scrum is an important tool for optimizing flow. You will have to use it during inspection of PBI towards the Sprint Goal. The purpose of the Daily Scrum is to synchronize plans rather than reporting. Some teams may even have more than one in a day to ensure the project progresses as desired.

During the Daily Scrum, you may add a new Sprint Backlog depending on the progress made. Also, ensure that you use the Kanban system to optimize flow. Anything that is highlighted as an impediment to flow during the Daily Scrum will be removed by the Scrum Master.

Defining Done in Azure DevOps Scrum

The definition of Done for scrum teams adopting DevOps should be more ambitious and robust. One of the primary reasons for adopting DevOps is gaining the ability to deliver to the production environment multiple times. If your definition of Done is not ambitious, it will affect your ability to achieve your goals. Some of the practices you should incorporate in your definition of Done that can help optimize flow are:

      • Infrastructure-as-Code- This ensures that your team has a production-like environment at every stage in the value stream.
      • Automated Testing-With support practices such as Behavior Driven Development, Test Driven Development, and Acceptance Driven Development, automated testing will improve the flow from Unit Testing to Integration Testing and to Acceptance testing.
      • Continuous and automated deployment
      • Continuous Integration
      • Low-risk release architecture such as using microservices

Such practices will help optimize flow, and Scrum Teams that implement eXtreme Programming (XP) have already rely on some.

      1. Amplify Feedback

Amplifying feedback is the second of the DevOps Three Way. With Sprint and the Daily Scrum, feedback is an integral part of Scrum. After adopting DevOps, there will be variations in how you will implement the feedback loops.

      • Sprint Review- Since the products reach the production environment before the Sprint Review, you will need to run the Sprint Review differently.
      • Hypothesis-Driven development and A/B testing- In this environment, Done is not when a feature is complete but when it gains traction in the market.
      • You ship it. You manage it- This is a key mantra in Azure DevOps Scrum to reduce wasteful activities. Developers are required to maintain the applications they develop in a production environment.
      • Pair programming and code review-This will play an essential role in amplifying feedback as developers give each other live feedback about how the code will perform in production.
      • Daily Scrum-Focuses on feedback rather than reports.
      1. Maximize Learning and Experimentation

The third of the DevOps Three Ways is maximizing learning and experimentation. Based on empiricism, Scrum is designed to promote continuous learning. To ensure that such a culture is instilled for, the Scrum Master should ensure:

      • The environment is psychologically safe and blameless- This is geared towards fostering collaboration and creativity to improve outcomes.
      • On-demand retrospectives- To make the process enjoyable, effective and keep the team looking forward to the next Sprint, the Scrum Master should encourage the team to improve within the Scrum process framework.
      • Slack Time for Improvements- At each Retrospective meeting, identify at least one priority process improvement that should be implemented before the next meeting. This ensures that there is continuous improvement.

Organizational Culture is the Key to Successful Azure DevOps Scrum

The primary objective of DevOps is to deliver more value to the customers. It achieves this by improving collaboration, instilling collective responsibility within teams, encouraging learning and experimentation, improving flow.

Crimea is a company dedicated to helping teams such as yours turn their ideas into actions much faster through consultations, managed services, and custom solutions.  to us today to get a solution that suits your team.

 

Azure Devops for Agile at Scale

Learn More
Loren Crouse
Loren Crouse