LeSS and DevOps
Three-fourths of the companies surveyed in the 2017 State of Agile Report are either engaged in, or planning, a DevOps initiative. And why not? Who wouldn’t want their teams’ work released as quickly and easily as possible.
As we look to expand our Agile development across multiple teams, it makes sense that we’d want to keep our DevOps intact during that effort. Now, most frameworks or even home-grown designs for team collaboration account for DevOps. Large Scale Scrum (LeSS), however, is different. It not only accounts for DevOps, but also builds it into the approach. And the more teams embrace DevOps, the better it is.
What sets LeSS apart in this? Where other approaches focus on aligning and directing team efforts, LeSS focuses instead on team collaboration. Teams in LeSS don’t just work in the same direction, they collaborate on the same product effort. We know from working with team members that fast feedback loops, frequent check-ins, and automated tests help developers collaborate and LeSS leverages those same benefits across teams. Let’s look at a few examples:
Continuous Integration & Deployment (CI/CD): We have learned that finding integration conflicts quickly leads to smaller problems and faster solutions. Most developers have moved from checking in code every week or so to committing multiple times per day. In LeSS, all teams must be fully integrated into a single code-base by the end of the sprint, which is distinctly different than all teams integrating at the end of a sprint. Much like within a team, the more frequently these teams integrate and build their application, the smaller their inter-team integration conflicts and faster their resolution to create overall robust scaled delivery environment.
Automated Testing: This serves two major purposes when collaborating between teams. First, describing the desired functionality in a test using unit tests, integration tests, or functional tests, removes ambiguity about how the application should function. This allows teams to work on the same effort more effectively without taking the application in different directions. Secondly, running automated tests at every build alerts a developer (or team) if the code changes they made accidentally interfere with someone else’s work. Done right, these alerts can happen even before integration on a CI server occurs.
Cross-Functional Teams: DevOps extends the idea of cross-functional teams to include the skillsets needed to deliver software to the end user. LeSS relies on this to release software. In the LeSS approach, there is no separate process for code to enter that carries it to release. Each team must be capable of releasing their features into production at any point. There is no release team or stabilizing period to hand off code to.
While other approaches are compatible with DevOps, LeSS is principally and structurally sets up an organization to be successful with DevOps. DevOps principles and practices find full expression in a LeSS environment and in turn enable smoother and faster development in teams working with LeSS.