Application lifecycle management for large-scale and ultra-small agile teams
I recently overheard a couple of conversations at a conference where people were asserting that application lifecycle management tooling is unnecessary overhead for small teams. Now, it’s absolutely true that every agile team is different and agile teams are responsible for working together to determine how they can continuously improve. However, I can say the following based on 18 years of working with large-scale distributed teams and teams as small as just two members: Collaboration and application lifecycle management tools are typically essential to truly optimizing team performance and mitigating risks for the organization. They help reduce effort and costs, improve software quality, and help manage product line development.
From 2002 to 2010, I worked almost exclusively with development teams distributed all over the world — from team members with offices in different buildings to team members in more than 35 countries. Building a strong and successful distributed team requires a willingness to shine a spotlight on problems as they arise, to tackle those problems, and to fearlessly overcome them. Addressing cultural differences, time zone issues, and personality differences requires individual fortitude and commitment to the team. Beyond that, the process of communicating, collaborating with team members and stakeholders, discussing and tracking work items, pairing with each other to write code, and continuously integrating code with each other are all made easier or more difficult by the availability and quality of tools. In every case, the right collaboration and application lifecycle management (ALM) capabilities serve as the central nervous system by which large-scale and distributed teams live and thrive.
In 2010, I began working with more small, collocated teams. On one of my first IBM Research projects, we were a development team of two, one less than the recommended "smallest scrum team" in the latest Scrum Guide (see scrum.org). We were only two offices away from one another, with ample opportunity to sit side-by-side. Strong believers in never "over-tooling," we spent a couple of weeks working from a task board, sketching directly on whiteboards, capturing whiteboard diagrams with a digital camera, jotting down notes in our notepads, and continuing discussions through email.
Without adequate tools, we inevitably wasted time digging through notes and email threads to find info related to work items and tasks, revisiting and inadvertently flip-flopping over previous decisions made in face-to-face discussions, mapping whiteboard diagrams to work items and conversations, transcribing information so that it could be sent to stakeholders, etc. Of course, we had used source code control with backups from the start, because neither of us liked the idea of causing project failure by having code in different states on different machines with different backup schedules. It didn’t take long for us to decide that we needed to embrace application lifecycle management tools even for our two-person team.
Even a small research project can cost the business significantly in lower productivity and increased risks if the code and key conversations or decisions aren’t in a central place, if the code isn’t backed up, and if there is no linkage between work items and tasks. Additionally, if code isn’t linked to related tests, development artifacts aren’t linked to conversations and decisions, code is not linked to defects, and there’s no quick and easy way to view status and metrics.
I imagine that there are cases that show the opposite, but for most situations, collaboration and application lifecycle management tooling are essential to high-performing teams. Even small teams benefit from collaborative application lifecycle management.
About the Author
Elizabeth Woodward is a Research Software Engineer for IBM Research, leader of the IBM Agile Community, and co-author of A Practical Guide to Distributed Scrum (IBM Press, 2011). She has coached and enabled hundreds of agile teams from small-scale to enterprise, teaches disciplined agile delivery courses, and has co-chaired several agile conferences, including the IBM Academy of Technology conference on agile methods.