src=”https://buffer.com/resources/content/images/2022/08/sol-tZw3fcjUIpM-unsplash.jpg” alt=”How We’ve Changed Our Engineering Mindset to Become Builders Again”>
Buffer has been my employer since 2014. I have always been impressed by their product and engineering culture. I remember being able to see engineers reply to Twitter comments and how fast they delivered improvements. ).
It was inspiring to see the “can-do” attitude spread, and it is amazing how things work out. We were 24 people back when I joined; everyone wore multiple hats and didn’t have managers.
We embraced the idea of creating team structures and processes as we grew. This helped us to manage our growth. However, scaling collaboration while maintaining speed can be an art. As a result, friction points began to emerge: projects would encounter bottlenecks more frequently, and teams would become blocked. We would spend more time creating the specifications for what we were trying to build to make it easier to release the features. However, larger projects will take longer to deliver the features.
It was like being stuck in a loop. If something took months to build, it was difficult to follow and iterate quickly on it. We also had other priorities. This only served to increase the pressure to “get it right” and reinforced our need to do more.
We realized last year that we needed to change some habits and dynamics at Buffer in order to go back to the early days of shipping. The more frequently we ship, the easier it is to manage these changes (because they are less frequent). Even if the thing we are shipping fails, it feels safer – which creates greater psychological safety for our employees. We knew that we wanted to be builders again, and to embrace our entrepreneurial spirit.
These are the metrics that help us to define builder mode
What will it take to know if we are in builder mode? We are moving faster, shipping more often and improving our customer feedback. To help us navigate this journey, we can use the cycle speed, pull requests throughput and defect rates. Let’s look at what these metrics are and how they can be measured.
Time
We want to reduce our time-to market. Therefore, we need to determine how frequently and fast we can deliver value to our users. For us, cycle time is the time from when we begin working on a feature (or improvement) and when we merge a pull request with those changes.
Pull request throughput
Pull requests are artifacts that developers generate to start the process of merging code changes and the code currently in production.
Each pull request can be viewed as an individual unit of work that adds value (e.g. Each pull request can be viewed as a unit of work that provides value (e.g., a new feature, bug fix, or other codebase improvements). A total count of pull request merges (and deployed to production) is a proxy for the value delivered.
Defect rate
Moving faster does not improve anything if we ship more bugs and defects to our customers.
We use the defect rate as a control metric to measure how many code changes we make are correcting bugs introduced by previous changes.
We have used Dynamics to help drive this engineering mindset shift
Habits are essential for shaping our identities as individuals. They are also crucial for shaping our mindsets and cultures as a company.
We knew what we wanted and how to measure it so we began to think about new dynamics that would help us build our identity of builders as builders. We also looked out for any existing habits that could be hindering us from reaching the next level.
Customer engineering days
Building contractors must be in touch with customers. This is a key component to gain insight into their questions, needs, and pain points in our systems.
Each engineering team allocates one engineer per cycle to a customer advocate, and they spend a day answering questions in the inbox and finding quick wins. Engineers can ask customer advocates questions about their customers, products, and features. Advocates can also share their experience and offer great customer insight.
Remove as many blocking pull requests as possible
We are embracing a culture that moves faster. One of the first things I noticed was the review process for integrating changes into production. Some teams would have an enforced rule that required another person to review their code before they could push a change live. Research and industry benchmarks have revealed surprising results: code change approval processes are not related to software delivery performance.
We want to eliminate gatekeeping, promote ownership, and empower people to stay in a flow state. Therefore, teams have begun to shift away from defaulting to open Pull Requests, wait for approval, or use a hybrid method called “Ship/Show/Ask”.
- Ship is exactly that! There is no need to request a review. Just make the changes and put them into production.
- Show can be used to receive asynchronous feedback or to share new patterns and lessons with the team. However, it does not need to wait for approval before shipping to production.
- Ask This is the traditional way to ask for code reviews before merging and shipping to production.
Teams can be clear about the fact that there are different approaches and alternatives for different situations. This allows them to find the right balance and determine if they’re too in “ask mode”.
If we just focused on the past practices, it would make the team feel like they’re asking them to do more work and faster. These practices and goals are meant to help us improve our work habits and work efficiency, not how much.
Working smaller is a key component in ensuring that and contributing to a more productive team. This is done by breaking down our work into features that enable rapid development, rather than larger, more complicated projects that are released less often.
The engineering teams embrace feature flips, also known as feature toggles, to enable new features to be deployed to production while not affecting the user experience. This allows us to release new features to users only after we have already used them in production.
Because of the reduced risk of breaking changes that could impact everyone, engineers who work in smaller batches are more psychologically secure.
Building managers will also be shifting their roles to become engineers.
The role of the engineer manager has been primarily focused on people management, engineer career growth and coordination ways of working. However, their main responsibility is to ensure our teams deliver value through building our product, teams and products in a way that aligns both with our product goals and our technical goals.
Our engineering managers must also be builders in order to lead with a builders mindset. We have redesigned the role of engineering managers and now expect them to spend at minimum 25% of their time working with the team. This “hands-on”, however, can come in many forms.
- Data analysis to launch a new feature
- Non-critical tasks can be done.
- New features can be QA’ed.
- Engaging customers.
This provides them with a better understanding of the technical decisions and tradeoffs made by their teams and gives them a sense of ownership that allows everyone to contribute in their own way to releasing more often.
The results: Are we adopting the builder mindset?
This journey of mindset transformation began 9 months ago. It’s been an amazing path of alignment between teams. The number of features and improvements that we have shipped over the past few months is a result of all these changes. We are constantly asking ourselves, “How can we ship next thing faster and with better quality?” We sense that there has been a shift in our motivation and energy.
We can now see the following metrics if we look back at what I have shared in this post:
- The average cycle time has dropped dramatically from 94.8 hours in 2021 to 55 in 2022.
- PR throughput has increased to 4155 Pull requests in 2021, compared with 3687 in 2022 (which is 1816 more Pull requests than H2 2021). ).
- The defect rate is decreasing: 18% spent on fixing defects in 2021, compared to 16% in 2022.
This indicates that engineering teams are releasing more frequently and faster than ever before and that quality is not in conflict with speed.
We’re just beginning to get started on some amazing technical projects that will accelerate the engineering team’s progress in the second half. Is there anything your team has done that has helped increase their shipping speed and brought them closer to customers? As we move forward on our journey to become builders, I am excited to share our progress and learnings.
To share your stories, feel free to contact me via Twitter @msanromanv
Did you miss our previous article…
https://onlinemarketingagencies.net/?p=5476
Leave a Reply