Manifesto for Async Software Development
It's time for a 21st century successor to Agile
And its most popular incarnation, Scrum
After many years of developing software using Agile methodologies like Scrum, the time has come to value:
Modern tools and flexible work environments over meetings and office hours
Flexibility in prioritization over detailed planning
Comprehensive documentation over tribal knowledge
That is, while there is value in the latter items, there is more value in the former items.
Principles of Async Software Development
Modern tools
Whether you're a fan of GitLab, GitHub, Bitbucket, or something else, good async collaboration tools like these all share a few important things in common:
- Each deeply integrates version control with issue tracking.
- Each offers rich prioritization and assignment features.
- Each wraps all that up into a slick user experience that anyone on the team can use, including nontechnical people.
Meetings only as a last resort
Meetings are very costly to your business.
That's because creative professionals need long stretches of uninterrupted time to get meaningful work done.
Thus, async communication should be your default, because it prevents context switching.
Forget the planning meetings.
Product owners can replace planning meetings by simply filing issues in the issue tracker, assigning priority, assigning them to people, and setting a release milestone. People will know what to work on by simply working on whatever the highest priority issue is in their queue.
Skip the daily standups.
Product owners can ascertain status by reading the comment threads of issues currently being worked on and posting questions as needed.
Retire the backlog grooming sessions.
Product owners should own the issue queue and frequently reassess priority on their own. They should loop in other people on an as-needed basis for advice.
Call a meeting only when all other channels of communication aren't suitable for a specific issue.
Flexible work environments
Since modern tools and async communication makes 1950s-style meetings-centric office cultures obsolete, we can enjoy much more flexible work environments now.
Adopt a hotelling policy at your office.
Don't assign desks to anyone by default.
Anyone who requests an assigned desk should get to choose whether it's a private office or in a communal space.
Discourage one-size-fits-all space management. Some people work better in crowds, others work better at home. Let people decide for themselves.
Document everything
The better documented your workflow, the less your workers will need to interrupt each other to seek out tribal knowledge.
A question answered in a FAQ or some other form of async communication is much better than one answered by a shoulder tap.