Collaboration Across Agile Teams
The Agile Manifesto emphasizes value on on individuals and interactions over processes and tools, specifically encouraging face-to-face communication as the most effective way of conveying information and collaboration between Agile teams. Effective collaboration enables teams develop workable solutions to complex problems. However, in reality, this is constantly challenged with large, distributed teams, forcing communications into different directions.
What is Effective Collaboration?
Clear objectives and separation of work each team member should understand. Separation of work between multiple teams also creates independence for teams to minimize duplication of efforts and enables teams to identify and plan for cross-team dependencies. This is best achieved by developing and maintaining a Team product backlog for respective teams to ensure each team is driving solutions towards delivery of the big picture.
No departmental silos creates successful Agile Teams that are cross-functional, with multidisciplinary members with numerous skillsets from across the organization, collaborating together to deliver a given product. Thus, they go beyond the boundaries of traditional departmental gridlines. Part of a successful Agile transformation is to drive the necessary cultural and structural changes to support its teams at the organization level, particularly by eliminating silos.
Collaborative architecture and design guidelines Agile teams are self-organizing, or should be. According Principle 11 of the Agile Manifesto, the best architectures, requirements, and designs emerge from these self-organizing teams. To this end, it is within the responsibility of the larger organization to enable the collaborative environment for its teams for emergent architecture designs while providing guides and architectural standards for the entire organization system that is beyond their scale. A simple, easily implementable, collaborative architecture is enables teams to enhance design, performance, usability and of cross-team implementation synchronization.
What tools and techniques facilitate collaboration?
Given our fast-paced virtual world, collaboration practices and tools should be adapted with large and distributed teams in mind. Tools and approaches tweaked to foster simple and frequent communications for large teams will have lasting benefits enabling a successful collaboration for the organization. Below are examples best practices that help facilitate collaboration between distributed teams.
Cross-Team Daily Stand-ups: Teams can select a representative to attend this session and provide the platform for teams to share high-level updates on their respective team’s work, identify impediments and collaborate and plan on help needed from other teams. Scrum of Scrums is one instance of these meetings used to scale collaboration among large Scrum teams.
Multiple Product Owners Check-in: for large Agile teams that have multiple product lines and Product Owners, a regular check-in enables the Product Owners to discuss scope, acceptance criteria and dependencies to align and prioritize initiatives to create their team’s Product Backlogs. This approach also enables the Product owners to agree on and guide their respective teams to deliver the highest priority tasks for the organization.
Cross-Team Release Planning: holding a quarterly or monthly review and planning session enables teams to define high-level requirements, map cross-team dependencies and help teams understand how all separate team efforts contribute and integrate into the final solution.
Cross-Team Retrospectives: creates the platform for teams to examine and reflect on their collaboration process, identify action items and hold themselves accountable for improvements. For instance, teams can utilize retrospective sessions to develop or update team-working agreements, definition of done and their norms for working together.
Visual Boards: Kanban or Scrum boards help teams collaboratively plan their work together, visualize progress and stay focused on their respective goals. Software applications such as JIRA, Trello, and VersionOne provide the features to foster discussions and collaboration across teams via co-planning, progress tracking and frequent communication.
Real-Time Collaboration Tools: especially important for teams that are not co-located, these involves several kinds of synchronous communication tools that are reliable and easily accessible for teams to interact in real-time. Some examples include the utilization of conference equipments with video capability such as WebEx, GoToMeeting, or AdobeConnect, etc., organizational chat tools which allow groups to have text conversations and collaborate in an effective and efficient manner such as Slack, Google Hangouts, Skype, etc., and document or whiteboarding tools for ideation and brainstorming such as Google Drive, MS Office 365, etc.
Integration Tools: With multiple teams continuously producing increments and builds into a single product base, end-to-end integration and testing becomes one of the main acceptance requirements. The organization will need to support this process by equipping integration teams with the required applications to automate work and create cadence. Various software tools are available to support these handoffs between teams, applications, infrastructure and operations making the process automated and repeatable. Popular software examples in the industry include DeployBot, Jenkins, Octopus Deploy, etc.