Hope and optimism are default settings for my LinearB co-founder, Ori Keren. For Ori, one silver lining in this tumultuous year is that 2020 ushered in the age of the hybrid remote work model.
“Hybrid remote is how software development teams were always meant to work. It just took 20 years and a global pandemic for us to figure that out.”
Ori believes that, to be highly successful, developers need uninterrupted time to get into a deep state of focus on their task at hand. Getting in “the zone” is hard and when you get interrupted you can’t easily get your deep focus back.
Remote work has eliminated most dev interruptions, right? Not so fast.
Company culture is a powerful force. Like gravity, we don’t see or or think about most days but it effects everything we do.
According to Ori, culture is even more powerful than a global pandemic or a new trend like hybrid remote.
“Working remote was great for our dev team at first. Once we got over the initial disruption of getting equipment and finding a quiet place to work at home, team productivity soared. But then we started noticing our efficiency going down.”
What happened? Our in-the-office culture grabbed hold and brought us right back to where we were in March.
“All of the interruptions crept back in… scheduled meetings, impromptu Zoom status meetings…”
In other words, we were a hybrid remote company with an in-the-office mindset and process.
You can see the effects here in our Cycle Time trend chart.
“Being a remote employee used to be a semi-unique experience that came with a certain level of trust, preparation and experience. Then the entire global dev community went remote at the same time, without preparation or understanding of what needs to change.”
Hybrid remote can be a business advantage for companies embracing it. But only if we adapt our culture and process to make it work.
This is how Asynchronous Development was born.
What is Asynchronous Development?
Async Dev is an approach to development grounded in asynchronous communication. It works for hybrid remote, full remote and any dev teams that wants to unlock the full creative power of their developers.
Async Dev builds on the foundation Agile put in place. Since the Agile Manifesto was published 20 years ago, software development has gone through some drastic changes. Many of those changes like asynchronous communication tools (e.g. Slack & Teams) becoming the default form of communication and hiring remote developers were forced into the spotlight in 2020.
Ori started wrote the Async Dev manifesto to help engineering and product leaders see how they can change the way they work to turn this new situation into an opportunity.
Below Ori explains how Async Dev builds on the Agile and DevOps movements and talk through each of the five core tenets of Async Dev. Listen to the accompanying 60~ second audio clip from Ori in each section or just read the blog.
The Async Dev Movement
Hybrid remote development is not new, but 2020 accelerated the adoption of many of the practices already in place. As these hybrid remote methods are normalized globally, we also have to accept the way we work, the processes, and the ceremonies have changed as well.
Asynchronous Development acknowledges the importance of movements like Agile and DevOps and offers a new way of looking at development that is a better fit for 2020.
The 5 Tenets of Asynchronous Development
There are 5 core tenets of Async Dev that we have adopted to transform the hybrid remote reality into an opportunity to strengthen the alignment between development and the business.
- Asynchronous is the default form of communication
- Git is the central element of your development process
- Project Management tools are for planning, not status updates
- Continuous improvement is a daily practice
- Dev teams are the core of the business
Tenet 1 – Asynchronous is the default form of communication
Asynchronous communication means using collaboration tools and mentions by default. It helps reduce context switching, avoid unnecessary interruptions, and increases productivity.
After LinearB went full remote back in April of 2020, we analyzed our development team’s metrics to understand exactly how this change effected the productivity and efficiency of the team.
In true Asynchronous fashion, 92% of developers at LinearB were writing more code, while PR sizes and Cycle Times increased. This clearly tells us that fewer interruptions means greater individual productivity. It also clearly shows what we needed to adapt the way worked to the new circumstances if we were going to continue delivering at the same level as pre-wfh.
At LinearB we have started taking a closer look at the function of the daily stand-up and how to use that time to best suit our team. Now that we are a hybrid remote development team with up to the minute updates on issue statuses using LinearB, we use our stand-up time to connect on a personal level, and then just talk about blockers. It’s not perfect, but it’s been a nice adaptation to our new reality.
Tenet 2 – Git is the central element of your development process
Whether you use GitHub, GitLab, Bitbucket, Azure DevOps or other git flavor, most of the stages of the development cycle either start or involve your git system. How you choose to configure, deploy and utilize it has a great impact on your dev process.
In addition the most up to date status of work progress resides in the git system. Fortunately git was built with open source in mind so most of the phases (coding, review, merge) do not require mandatory synchronous communication and can be executed in different places and different times.
Tenet 3 – Project Management tools are for planning, not status updates
Whether your team uses Jira, Trello or something else, project management tools are great for planning an iteration or the next week, but trying to use them to enrich dozens of micro decisions that dev teams are taking every day will slow down productivity.
Every update to the work status while in ‘building mode’ should be with dev first in mind, meaning it should automatically reflect the status based on actual git activity and it should mainly serve the people that build and ship the software.
Tenet 4 – Continuous improvement is a daily practice
Data should always be accessible to everyone – no gate keepers, not just data engineers, and not just reviewed in meetings by management.
Your KPIs and how you decide to utilized them will define your culture.
Key Principles for Data Usage:
- Team-based data over developer stack ranking
- Measure process over output
- Measure empiric over subjective
- Focus on leading indicators vs. lagging indicators
- Establish baseline data points and trends
- Make sure it’s actionable
Data should be used in an ethical way and cannot replace good managers with good soft skills and human interaction.
Tenet 5 – Dev teams are the core of the business
The best companies in the world evolved from developers that were highly aligned with business and market needs. Dev-led companies empower developers to make decisions on behalf of customers and the business by giving them context instead of instructions.
We believe that ‘developers’ and ‘business’ are not disjoint sets and sometimes the most important business decisions are hiding in code lines. That is why the best businesses should focus on pushing context to dev teams, and dev teams should provide transparency into their decision making so both can enjoy a refinement cycle.
This is probably the hardest part of making Async Dev a reality because, as dev leaders, it is the element we have least control over. We need buy-in from throughout the business.
Here are 5 practical steps you can take today to start practicing Async Dev:
1) Cut status updates from your daily stand-up
Instead focus on what matters – who needs help and whether you’re going to ship on time. Async Dev means never spending valuable meeting time on status updates when everyone could take 5 minutes on their own before the meeting to see what happened yesterday and what’s happening today. Click here to get 16 tips for how to run a better daily stand-up.
2) Decouple learning and improvement from your retro.
We’re not saying to cancel your retro. Getting together every few weeks to discuss learnings is great. But if you un-gate your team metrics so everyone can see bottlenecks and suggestions for how to improve each day, then improvement can be led everyone on your team (not just managers) and become part of the fabric of your team culture. Click here to see how to use data in your day-to-day practices without damaging culture.
3) Combine quantitative signals & qualitative assessments for team health
Use multiple data points to identify signs of overload and burnout. Face to face conversation is not the only way to see if a teammate is struggling. Looking at your WIP balance across the team and consecutive days worked, in combination with 1:1 conversation, can tell you a lot about a person’s work health. Click here to see which data points can help you measure team health.
4) Reassess the need of each synchronous meetings.
Can the goals of one or more meetings be met through asynchronous communication? Sometimes your team is in too many meetings. Other times, you just need to tweak your meeting to give developers more blocked off time to work. Sometimes you need to reexamine the need for daily or weekly meetings instead of just attending out of habit. Click here to read our suggestions for optimizing meetings your meetings for Async Dev.
5) Sign up for your free LinearB account.
We analyze code, Git logs, project issues and team interactions in real-time to give everyone the visibility they need without interrupting developers. Devs get more focus time, dev leads know which people and projects needs their attention and product managers plan and communicate more accurately. Click here to try LinearB with a free account.