Gorgias is building a multi-channel helpdesk integrated with e-commerce merchants' back-office. It allows merchants to manage all their support from one place. They have been scaling fast for the past years and have grown into a 200 person organization serving 7000+ customers.
One of Gorgias' core values is always to put customers first. As building working software for their customers is a core part of their mission, a key question for the engineering team is - How to improve the flow of delivery so that we can improve our ability to meet customer expectations? This is why they wanted to build transparency into potential antipatterns and blockers to supercharge product development of an already well-performing organization.
Going beyond the aggregate numbers - driving investigation into potential problems
There had already been discussions about stale pull requests and the difficulty of getting reviews in the Gorgias organization. The team had a hypothesis that they could decrease pull request cycle time to improve the flow of delivery. This would ultimately mean getting closer to customer value faster.
Cycle time is a proper measure to describe how well your engine is running. However, the team realized that only bringing visibility into cycle time as an aggregate metric would not cut it. They would need to investigate antipatterns and process bottlenecks behind the aggregate number to start driving real improvements. So the first step would be to explore the data, beginning with an understanding of what all affects cycle time.
Cycle time is influenced by things like:
- What are all the other things we're working on?
- How do we split our work?
- How do we review the code?
- How well do I know the codebase I'm working on?
- How often do we deploy to production/release our software?
- How much time are we spending on tasks beyond writing code?
The team thoroughly investigated different antipatterns and process bottlenecks that could cause disturbance in the flow of delivery, ranging from work in progress to CI/CD pipeline.
Using Swarmia's flow insights to their advantage, they were able to surface insights that would help them to start improving the flow of delivery. It seemed like code reviews were one clear bottleneck hindering a swift pull request process. Furthermore, they found three key insights about code reviews:
- In all teams, there were outlier pull requests that were not touched for multiple days or even weeks while open.
- Limited to certain teams, long review times were mostly due to cross-team reviews taking significantly longer than internal team reviews.
- The teams also noticed that they lacked common guidelines for code review best practices.
With more insights about their flow of delivery and a will to move pull requests forward swiftly, the team was ready to implement some changes and start improving.
Kickstarting continuous improvement
Every team is different. This is why improvements in ways of working should consider team context. The teams needed a way to set their own goals for success and start working towards them through team-specific working agreements.
The first thing was to discuss within each team feasible pull request cycle time and review time targets. Team cycle time targets were set to between 7 and 14 days. Review time targets were set to between 1 and 3 days based on a consensus within each team and considering industry best practices. Having a target for pull request cycle times makes it easier to identify and act on exceptions when they emerge.
To allow surfacing exceptions to working agreements with a tight feedback loop, the teams also enabled daily digests, including a daily summary of how the team is doing compared to their working agreements.
To remove the rest of the friction from the pull request process, developers also enabled some personal pull request related notifications. This ensured they always stay on top of where pull requests are going through Slack. For instance, you would know instantly when a review is requested from you or when your pull request is approved.
Finally, the team discussed best practices related to code reviews, such as what to cover in a code review and how to prepare your code to be reviewed. Having common guidelines on conducting code reviews increases both the quality and consistency of reviews. Gorgias took inspiration from code review best practice material available from here.
Through a thorough investigation and concrete steps to start continuously improving the flow of delivery, Gorgias saw positive results across the organization in less than two months. The work resulted in a 40% drop in teams' cycle times. Improved flow of delivery allows Gorgias to create customer value faster and helps grow their business.