Hybrid remote dev teams perform best asynchronously

by Joseph K. Clark

After 20 years and a global pandemic, we learned that ‘hybrid remote’ is precisely how software development teams were always meant to work. That is, sections working collaboratively across different locations, time zones, etc., and completing individual tasks asynchronously dependent upon one another. Since the Agile Manifesto was published in 2001, software development has drastically changed. Most recent examples include adopting asynchronous communication tools (e.g., Slack & Teams), which created a new default communication style for businesses. The pandemic also forced work-from-home policies to change abruptly, and the need to hire remote developers and connect small teams increased dramatically. Many developers and dev team leaders invited the idea of working remotely because it meant fewer interruptions and more time to focus on tasks at hand, right? Not so fast

Just because individual productivity can go up doesn’t mean dev team efficiency follows in step. When the entire global dev community went remote simultaneously, did businesses go through the exercise of redefining the ways of working remotely? If not, there’s a good chance the “in the office” mindset crept back, and interruptions remained. Zoom meetings, impromptu daily status updates, and plenty of other distractions keep dev teams shackled away from their deep state of focus.

Hybrid remote

The past year spotlighted the need to transform the hybrid remote reality into an opportunity and strengthen the team’s alignment and the business. Hybrid remote development is not new, but 2020 accelerated the adoption of many existing practices. As the small mixed methods are normalized globally, we also accept how we work, the processes, and the ceremonies have changed. This is how Asynchronous Development (Async Dev) was born.

What is Async Dev?

Async Dev builds on the foundation that Agile and DevOps put into place. It is an approach to software development grounded in asynchronous communication. It works for hybrid remote, fully remote, and any dev teams aiming to unlock the full creative power of their developers. To unleash this power, Async Dev presents five guiding tenets:

1. Asynchronous is the default form of communication: Asynchronous communication means using collaboration tools and mentions by default. It helps reduce context switching, avoids unnecessary interruptions, and increases productivity. 

With asynchronous communication, it is vital to analyze your dev team’s metrics to understand exactly how this change affects the productivity and efficiency of the unit itself. For example, if more code is being written as devs work from home but pull requests and cycle times are increasing, you need to find out why.

Tip: Examine the function of the daily stand-up and figure out how to best use that time to suit your team. As a hybrid remote dev team, create a way to get a shared view of up-to-the-minute updates on issue statuses but use the stand-up time to connect personally and talk about blockers. 

2. Git is the central element of your development process: Whether you use GitHub, GitLab, Bitbucket, Azure DevOps, or another flavor of Git, most stages of the dev cycle either start or involve your Git system. The choices made to configure, deploy and utilize it significantly impact your dev process.

Since Git was built on open-source principles, most phases (coding, review, merge) do not require mandatory synchronous communication. They can be executed in different places and at other times.

 In addition, the most up-to-date status of work progress resides in the git system. Tip: Master your configuration and choose your policies with hybrid remote dev teams in mind. Remember, the best data sets for understanding progress or where we are as a team working on a project are extracted from Git.

3. Use Project Management tools for planning, not status updates: Whether your team uses Jira, Trello, or something else, project management tools are excellent for iteration planning. Using them to enrich dozens of daily micro-decisions that dev teams make slows productivity. Every work status update while in ‘building mode’ should be considered with dev first in mind. Make every update automatically reflect the status based on actual git activity and serve the people who build and ship the software.

Tip: Project management tools should not be used for software delivery predictability. You should use a different agency or approach when you switch from the planning stage to the building stage.

4. Continuous improvement is a daily practice: Data should always be accessible to everyone on the team, not just data engineers. This information should also not just be reviewed in management meetings or by gatekeepers. Your culture is defined by the KPIs you set and how you decide to utilize them. The fundamental principles for data usage for Async Dev are:

    • Team-based data over individual developer stack ranking
    • Measure process instead of output
    • Measure empirical data over subjective data
    • Focus on leading indicators vs. lagging indicators
    • Establish baseline data points and trends
    • Make sure it’s actionable

Tip: Data should be used ethically and cannot replace good managers with good soft skills and human interactions. Most importantly, measure! You can’t optimize what you can’t see, so leverage the above principles to frame how to measure and measure.

5. Dev teams are the core of the business: The best companies in the world today evolved from developers that were highly aligned with business and market needs. Dev-led companies empower developers to make the best decisions on behalf of customers and the business by enabling context instead of giving instructions. Developers and the industry should never be disjointed; sometimes, the most critical business decisions hide in the code lines. Pushing context to dev teams provides a way to create transparency in decision-making so everyone can participate in a refinement cycle. This is probably the most challenging part of making Async Dev a reality because, as dev leaders, it is the element of least control and requires buy-in from throughout the business.

Tip: Make every developer a decision-maker. Create and nurture shared insight into development data to make business decisions transparent and daily collaboration across functions routine.

Significant changes took place last year and now is the best time to go through the exercise of redefining how you work. Hybrid remote can be a business advantage for companies embracing it, but only if we adapt our culture and process to align and make it a reality. After my co-founder, Ori Keren, and I decided to start a full-time remote work policy for LinearB in March 2020, we did just that and created Asynchronous Development. We view it as a dev methodology designed around asynchronous communication and purpose-built for hybrid remote teams. It’s our favorite part of Agile, a bit of Scrum, and incorporates much of what Ori and I have learned over the years as engineering leaders. Async Dev creates a mindset for where we think the future of software development teamwork is headed.

Related Posts