A team's productivity is based on various elements, but two key factors are effective collaboration and communication. An increase in the comfort level in communication and trust among team members leads to a corresponding overall increase in the team's productivity. By working together, people can create greater value than they can achieve independently. Among other things, team synergy manifests in increased capabilities and more flexibility in adapting to changing requirements.
Team collaboration offers multiple perspectives for innovation and problem solving. A team member working independently may not be able to identify causes of a problem, but a collaborative team can gain more insights into the problems and provide better solutions.
- Greater knowledge-sharing and innovation. This enables teams to mutually exchange knowledge, experiences, and skills to jointly innovate. This leads to better efficiency in work and also enhances innovation performance capability.
- A 360-degree view for each team member. This provides better clarity and understanding of project goals. It leads to improvements in team performance by increasing each individual’s awareness and identifying specific areas for growth.
- Reduction in duplication of effort. This helps reduce or eliminate duplicate effort of learning, research, development, information retrieval, and status updates.
- Support of coordination of activities and work flow. This supports better coordination for effective execution of multiple tasks and related work flow management.
- Support of quality assurance. This supports effectively managing processes during the course of project execution to ensure the quality of deliverables.
Events to increase collaboration and communication
A workshop is an event in which a group of people collaborate to present different ideas to reach a predetermined objective that is supported by an impartial facilitator. It is not the same as brainstorming.
In a workshop, the requirements and outcome should be clear. It is usually conducted to compress timelines and reach a consensus/decision faster. If there is a clearly articulated problem, it can be solved faster through workshops.
The main purpose of conducting workshops is for gathering, understanding, and prioritizing requirements, mainly during the Initiation phase. However, workshops are worthwhile to do once every six months, just to review the direction of the project, restate the objectives, and realign the teams.
Before conducting any workshop, set up its objectives and circulate the agenda to all participants well in advance. Communication is a key factor while conducting a workshop. To run them effectively and productively, it is necessary to understand how to conduct workshops.
Sprint planning meeting
Every sprint starts with a planning phase. In this phase, the team defines what is to be built in the upcoming sprint. User stories are broken down to tasks, task-level estimation is done, and the team commits to the sprint goal. The product owner, ScrumMaster, and the team participate in the sprint planning.
The sprint planning meeting consists of two parts, each one being a timebox that is half of the duration of the sprint planning meeting. In the first part, the team collaborates with the product owner and decides what will be delivered as part of the sprint. In the second part, the team figures out how it is going to build this functionality into a product increment during the sprint.
To succeed, every sprint planning meeting requires effective communication and extensive knowledge sharing among the teams, product owner, and other relevant stakeholders. If colocated, face-to-face meetings between product owner and teams are recommended. Otherwise, you can run the meeting over video conference. If none of these two options is feasible due to non-overlapping time zones, then the following alternative ways can help coordination between the teams and product owner:
- Have the product owner send in advance the narratives of each prioritized user story required to be delivered during the sprint.
- Have the team analyze the assigned user stories, decide on how much to commit, create a list of clarifications, and share it with the product owner for feedback.
- Post analysis, finalization of the sprint backlog for the sprint can happen over voice or video conference between the teams and product owner. It reduces the time required for the sprint planning meeting during non-overlapping working hours.
Daily stand-up meeting
The daily stand-up meeting is for the team to discuss progress. It is not a meeting for reporting the status to the manager. The customer and any other stakeholder could be present in the meeting, but they normally do not actively participate. The daily stand-up meeting is the place where the team comes together to:
- Understand what is happening.
- Understand what others are doing.
- Identify areas where people can help each other.
Everyone has the opportunity to be the first to speak in the meeting. However, it is good practice to encourage the youngest or the most inexperienced members to speak first so that their thoughts are not influenced by others. The daily stand-up meeting is always held with the backdrop of the sprint backlog and sprint progress chart. If the team is not performing according to the estimations, it helps to find the root cause.
In the daily stand-up meeting, the following are indications that the team is collaborating well:
- The team manages the Scrum call, even if the ScrumMaster is on leave.
- The team is enthusiastic about providing updates, and the meeting ends in 10 to 15 minutes.
- Everyone attends the daily stand-up meeting and provides crisp and clear updates.
Midsprint demo meeting
The midsprint demo generates a lot of client confidence because the customer is able to see progress of of actual software development. It is mainly used to share the status with the product owner and business users about the progress of the sprint. It helps bridge the gap between the project team's understanding and the customer's expectations.
For colocated teams or distributed teams, the best way to share the status with the product owner is directly through software code, followed by discussions. However, distributed teams may have time-zone constraints and hence may need to rely on just enough documentation to communicate the status. These teams can notify the product owner of the sprint progress in the form of status reports, which help to avoid any misinterpretations and improve team collaboration.
At the end of the sprint, the sprint review meeting is held, which is attended by the team, ScrumMaster, product owner, and all other stakeholders. The work product is reviewed against the sprint goal and the Definition of Done. The team demonstrates the working software to all stakeholders to obtain user acceptance on the deliverables. The team gains insight into any changes that the product owner or end users plan toward the development. Also, the product owner has visibility into the development thus far.
Sprint reviews are an effective way to share information and improve communication with all stakeholders. They enable teams, the product owner, and other stakeholders to inspect and adapt what has been developed in the current sprint and collaborate on what needs to be done next. At the end of the sprint review, the team must notify the product owner with the overall status of the project and provide the required documentation to support the collaborative process. Various tools like IssueTrak, Risk Tracker, and PivotalTracker help with maintaining documentation and visibility.
Retrospectives are planned at the end of each sprint and each release. That is when the teams reflect on the events of the previous sprint, both good and bad, and take corrective actions that can be implemented in the subsequent sprints. A few metrics are analyzed during the meeting. It is recommended that all team members actively participate and collaborate in the retrospective meetings for continuous improvement during the course of the project.
Successful deliverables are produced within the scheduled timelines when there is an efficient collaboration and communication mechanism among the involved teams. Building an effective distributed Agile team is about identifying and implementing effective practices. Distributed teams may struggle to ramp up if they operate as colocated teams and do not effectively address the additional collaboration and communication burdens. To address this constraint requires commitment from the teams to improve and the support of additional practices and tools.
Real-time communication enables a free flow of information and more proactive notifications so that team members can respond more quickly to unexpected events and impediments. This type of communication addresses the problem of delay in sharing information due to our reliance on formal communications. Real-time communication helps to overcome communication-related problems, like relying on the team hierarchy or waiting for planned meetings.
Collaboration is a critical activity for Agile project execution in either a structured or unstructured way. For teams distributed across locations, face-to-face meetings or interactions must be conducted in a virtual manner — video conference or web-based. These environments are generally easily accessed and almost always available. A virtual environment creates space where team members and a product owner distributed across locations can come together and work on the common project goals.
Single meeting across multiple locations
Minimize the overhead of having multiple team meetings at multiple locations. Conduct a single meeting across locations (with overlapping time zones) through a conference, ideally in the team room, for impromptu meetings. This allows the entire team to gather quickly regardless of the location. Teams can use live meeting facilities to share applications across the whole team.
Formal mechanisms for sharing information
To support a distributed development environment, enhance the way team members communicate information with each other. For example, communication in a colocated environment can happen informally, maybe verbally. But this should be done in a more formal, structured, and scheduled way for a distributed team. If the team is distributed across time zones, then the team members can use email or a work-item tracking tool for updating their status on a particular task. This becomes important, as it ensures that the information is available even if all involved people are not around at the same times.
At times teams might overdo the daily stand-up meetings (taking them beyond the scheduled time). It may lead to ineffective collaboration because they find that this is the only opportunity to raise issues for the whole team. In such cases, change the meeting format by including some additional time after the stand-up when the team can discuss these topics.
Framework for engagement and unstructured collaboration
For any software development activity, all clarifications managed over emails, chats, conference calls, and video calls are examples of unstructured collaboration. A development team meeting or chatting with architects, designers, and the product owner to clarify a work item or engineering task is either stored in their emails or on a whiteboard in a discussion room. Building a framework around these work items from this unstructured collaboration during actual development engages the developers most. This, in turn, generates high quality and productivity.
Remote Desktop, VNC, NetMeeting, Team Viewer, and Whiteboard are good utilities for screen sharing. These utilities are useful for demonstrating new features, reproducing bugs, working with customers, sharing ideas and understanding, and assisting with installations.
Video or audio recordings of the computer screen and of a person presenting are very useful for explaining a feature/module to another team member. Recording and then viewing a screencast may not be as effective as sitting alongside and explaining in person, but it has the advantage of replay. A series of screencasts that explain the important parts of a system will get new team members ramped up quickly.
The best way to articulate a feature or enhancement is by sharing screenshots with team members. These images convey the details effectively.
A distributed team leaves more room for misunderstanding the desired results. Address this problem by building a mock-up (text files, paper, Excel) of the desired outcome. Share these mock-ups across the distributed team by sending photographs or using screen sharing.
A large-screen, high-resolution video conference with a virtual whiteboard provides effective communication when teams are working in a distributed environment.
Polycom and VoIP are the most popular phones systems for long-distance calls. Also, Microsoft Office Communicator, which is available for online voice conversations, is recommended.
The key values of Instant Messaging are that it is a substitute for being aware of who is available and working, and it is an effective tool for shorter and speedier conversations and clarifications. Do not type long conversations unless you are required to record chat transcripts.
Email is the essential tool used to record communications. It is used to summarize discussions and record minutes of meetings, conclusions, and communications to the group.
Each of these methods or tools helps to communicate information across the team. However, it's almost inevitable that you will sometimes use these tools and methods without actually knowing whether the recipient is adept with them. This gap creates apprehensions or assumptions that one team member might have about another who is working at a different location. If you are on a distributed team, you will need to use extra care.