How High-Performance Orgs improve their Software Delivery Pipeline
Engineering Managers are under constant pressure to improve their team’s output quality. Regardless of the contributions of each individual team member, there is always room for improvement in Software Delivery Performance. As engineering leaders, we are responsible for creating an environment where:
- We continuously deliver new features to customers in a steady pace,
- We encourage each other to collaborate more frequently and accurately,
- We write stronger code and are more confident in pushing updates.
"It doesn't really matter where an organization currently is … as long as they realize they are on a journey to continuously improve the way they work." — Kris Buytaert
The Software Delivery Pipeline is a metaphor for how you can confidently deliver value to your customers on a daily basis, while being able to resolve outages ASAP. Much like how a plumber connects the water boiler to the piping to the shower, we should consider the different stages of software deployment. At Athenian, we split it into four core sequential parts, which individually and collectively help you increase the quantity and quality of your software output. The best engineering teams at some of the world’s largest companies are now starting to follow this path, called High-Performance Technology Operations.
This article will guide you through the 4 stages of the Software Delivery Pipeline, highlighting the best practices and key features that Athenian will help you achieve:
- Work in progress
Work in progress
A significant new feature can occupy your team for weeks, but that doesn’t mean it needs to be delivered all at once. High-Performance Technology Organisations structure big chunks into meaningful small tasks that can be delivered in hours.
“Teams should avoid keeping branches alive more than a day. If it’s taking you more than a day to merge and integrate branches, that’s a warning sign, and you should take a look at your practices and your architecture.” - Mastering Salesforce DevOps
Breaking it down into smaller parts is crucial for high performance. In the Principles of Product Development book by Reinertsen, he argues that splitting work into smaller parts:
- Reduces complexity, as the the entire batch is not limited by its worst element,
- Reduces lead time and cycle time,
- Reduces review time by making it more effective,
- Makes it easier to test and find bugs early on,
- Allows you to deploy software more confidently.
Any batch of code that takes longer than a week to complete and check is too big. This way, you can validate your hypothesis as quickly as possible. - Google
Having less than three active branches in total, is important aspect of continuous delivery, and contribute to higher performance - ITNEXT
Athenian lets you quickly spot tasks that are taking longer than expected, so you can make a decision of splitting a task into smaller instances or resolving any large blockers that appeared during the development.
In High-Performance Technology Organisations, people are encouraged to give regular feedback to their colleagues. To promote such a culture, companies usually adopt the process of Pull Requests.
“Code reviews are awesome. Everyone should use them. Heck, my dog should use them. You should too.” - Matt Welsh, My love affair with code reviews
Pull Requests are sometimes wrongly interpreted as requests for merge. By pulling into team members into the process of collaboration, we are assured that at least two team members are always on top of what’s going on. Pull Requests are also invitations to share knowledge and give feedback.
Pull Requests should have 200 - 300 lines to be effectively reviewed - Shopify
One business day is the maximum time it should take to respond - Google
Athenian gives you the ability to (1) understand how your team collaborates, (2) see who is involved in feedback loops, and (3) how large tasks affect your Review process. This allows you to spot where Pull Requests get stuck, and consider how each of the team’s members are involved with the code and each other.
The Merge stage is all about increasing team accountability for delivered code. Low-Performance Teams dedicate certain team members to merge new features into the main branch. On the other hand, High-Performance Organisations encourage everyone to participate in the process. The responsibility is put into the hands of those who know the feature the best: the developers who wrote the code.
There are two core enablers for a team being effective in the merge stage.
- Automated Testing brings you the confidence that deployed changes aren't broken or break any other part of your application.
- Continuous Integration gives your team the ability to merge and prepare several different application versions using a seamless automated build system.
A team that develops a system is also responsible for operating and supporting that system - Netflix
The whole process of merging accepted Pull Request takes around 10 minutes end-to-end - Intercom
Using Athenian you can easily track in which repositories it takes your team the longest to merge newly created features and how many merges happen daily.
The final stage of the Software delivery pipeline is deployment to production. When the application is small, with only a few deployed services, there’s not much pain. But as the system complexity inevitably grows, the manual process of Releasing will impose downtime.
In High-Performance Technology Operations, delivery to production is a click of a button or sometimes even seamlessly integrated into the automated delivery procedure. This reduces the number of points of failure and is designed in a way that the customers are not affected.
Deploy code more than 80 times per day, safely, easily, and painlessly - Etsy
Have the ability to deploy code 200 times more often and have 24 times faster recovery from failure - Research
Calculating the Lead time, Athenian enables you to have an overview of how fast features are delivered and also helps you estimate when particular features will be released.
Where can I learn more?
The popular book Accelerate has become a staple amongst engineering leaders that want to increase their team’s output. It’s all about measuring a development team’s performance. The research that the authors conducted show that High-Performance Organisations are twice (!) as likely to exceed expectations in terms of business metrics like profitability, market share, and productivity compared to teams that don’t adopt the types of practices outlined in this article.