Agile software development is commonplace throughout the business world and often embedded beyond software development, in corporate culture. However, the coronavirus pandemic is testing one of the method’s fundamental principles. The Agile Manifesto posits that the most efficient and effective way to convey information to and within a development team is face-to-face conversations.
With most offices closed and workers telecommuting, this preferred approach ranges from difficult to impossible.
Companies must adapt to this new working environment if they want Agile to offer the same benefits, such as increased productivity, greater user satisfaction, increased speed to market, and higher software quality. Some web-based or virtual tools can mimic the work traditionally conducted in person, but that is not the end of the story. This Agile reboot requires adjustments; swapping in-person for online is not a one-for-one proposition. Meetings should generally be shorter and more narrowly focused. Testing should be more heavily automated. And end-user training should be accomplished through e-learning documentation and courses. Knowing the benefits of in-person collaboration will help Agile leaders find remote analogues for meetings, execution, and support.
Meetings
No matter what stage of the product life cycle, almost every meeting will be affected by the lack of face-to-face interaction. Development teams assume that nonverbal communication cues are lost during virtual meetings. Some of this loss can be mitigated with videoconference calls during which all participants are on camera, but this does not eliminate the problem entirely. Each type of meeting has its own preferred approach and challenges — or sometimes benefits — to going virtual.
For simple topics, such as those discussed in a daily Scrum meetings, a videoconference call might actually make the meeting quicker and more focused. Only one person at a time can speak and be understood; this limits the number of off-topic, side conversations. That benefit, combined with use of a virtual Kanban board, may increase the productivity of these meetings.
Meetings that are typically knowledge dumps that last for hours should not adopt a simplistic “just move it online” approach. Research shows that attendee attention starts to decline quickly during meetings with low engagement, such as end-user knowledge sessions. Instead, it is better to shorten these meetings to ensure the information is properly absorbed. Steven Rogelberg, a professor at the University of North Carolina, wrote in the Wall Street Journal ¹ that meetings that take less than 48 minutes are probably best. Additionally, complementing these meetings with e-learning documents and courses, preventive maintenance guides, and problem resolution handbooks helps make up for the lack of in-person interaction.
Experts recommend meetings to be shorter than 48 minutes to be most effective
Meetings that require input from diverse sources and tackle complex problems, such as user story and feature finalization, are harder to move into virtual meeting spaces. These types of meetings are supposed to be long ² and include a diverse audience of ideas. Since these meetings are not knowledge dumps, it is important to keep all attendees engaged in the conversation and problem at hand. This can be facilitated by creating time for individual attendees to express their thoughts after a short introduction of the issue. Virtual whiteboards are also useful for logging ideas and keeping them on display for discussion. Engaged participants can maintain their focus longer, but it is still recommended that the meeting leader create periodic breaks.
Execution
During software development, there are two more significant changes to how the meetings are conducted: collaboration and information dissemination.
Developers will not be able to “pair program” or drop by a colleague’s desk for advice on how to approach a problem. The obvious solution is to use communication software like Microsoft Teams or Slack. In some instances, these tools can make the process easier because code can be pasted into the chat box rather than describing it. However, there are better solutions, such as Visual Studio Live Share. Live Share, for instance, allows multiple developers to edit a file simultaneously. So instead of dictating code that might help, this feature allows a second developer to connect to the file and add the relevant lines. This can also fix a common problem in pair programming in which some participants are disengaged because they either are not at the keyboard or are taking dictation.
Physical information radiators, such as Kanban boards and burn-up charts, provide obvious benefits in the workplace. Their existence is a constant reminder of where the team stands in relation to its goals. The drawback to such virtual boards is that they can easily be hidden by new desktop windows. As a result, it is important to reference these boards at least once each day with the team and discuss what has changed. In case a physical board is still needed, one person could maintain it and then send time-lapse photos of the board each day (in addition to maintaining a virtual board).
Testing is an important part of any software development project. Automated unit and integration tests are common when using an Agile approach to software development. However, more nuanced regression tests and scenario tests are less automated and previously were typically done in small groups with business and product owners attending. These cases now need to be identified and clarified earlier in the development process using online collaboration tools, so the tests can be included in the automation test suite. Even if teams were not forced to work remotely, this would be a good practice to implement because automated testing significantly speeds up development.
Figure 1. Strategies for dispersed Agile.
Practices to get through the pandemic: |
Practices that are useful anytime: |
Support
Warranty service and critical support for software after it is delivered usually require that some team members stay on-site to address new issues. Instead, developers can create a logging and alert system that notifies team members of an error. In addition, use bug tracking and ticketing software to track user-discovered issues so that they can be added to a backlog and addressed by developers based on priority.
Also, a robust suite of e-learning courses, maintenance guides, and problem resolution handbooks can lighten the load on the Agile team in the support phase. Like testing, support is another area where new tools and approaches offer benefits no matter the circumstances.
Secrets to dispersed Agile
The pandemic has created many new challenges for businesses, ranging from cybersecurity to logistics to consumer demand. For software developers practicing Agile, this external crisis has upended one of the foundational principles. But with careful thought about the reasons for our current practices, workable solutions can be found for any challenge. When conditions make remote teams necessary, using virtual information radiators and videoconferencing can help mitigate the disadvantages, but they cannot completely supplant face-to-face communication. However, practices such as incorporating more complex testing earlier in the process are valuable tools to develop because they will be useful even when teams are co-located again.
References
- The Science of Better Meetings, Steven G. Rogelberg, Feb 15, 2019, The Wall Street Journal
- In Defense of Long, Large, Unfocused Meetings. Really., David Komlos & David Benjamin, Nov 27, 2019, The Wall Street Journal