Quantcast
Channel: Agile Scout » Blog Series
Viewing all articles
Browse latest Browse all 19

Ideas on Managing Distributed Teams Using Agile [3/3] – Review and Conclusion

$
0
0

globalization-agile-distributed-teams

Things to be followed by Distributed team in Sprint review meeting:

  • Keeping Track of the Stakeholder Comments -During the sprint meeting, the distributed team needs to capture these comments so the Product Owner and the development team can decide which ones they will act on.
  • Effects of Distance – The facilitator of a distributed retrospective needs to understand the cultural differences in the team. SM needs to understand how different cultures interact when they want to change something
  • Or have issues they want to talk about that can help the facilitator encourage participation from all team members.
  • Release Planning –The number of Sprints to map out and use with “Look ahead Planning Technique” will depend on Sprint length, dependencies, and needs of the teams involved.
  • Engaging Stakeholders – At enterprise level environments, to address the diversity of data by the Scrum team, the PO can help identify which customers are representative of different markets.
  • Resolving Blockers – The SM should create a list of blockers and assign them to team members or managers. The SM should also ensure the team is burning through the blocker list.
  • Handling New Requests in the Middle of a Sprint – In Distributed Scrum, it becomes mandatory that the team commits to sending requests through the Product Owner(s), who will decide the priority of the request in the Product Backlog.
  • Demos May Provide a False Sense of Completion – Add a DRAFT watermark on any screenshots or to use data that is clearly not real, to avoid false sense of completion to the stakeholders. Setting Expectations – The facilitator, for distributed teams, should talk to the team ahead of the first retrospective and explain the expectations for the retrospective.
  • Remote Demonstrations – Network Delays and Poor Performance – Distributed Team should test their tools ahead of time to be sure the distributed meeting will run smoothly, without network poor performance

The team can also consider making the recordings available for download before the demonstration meeting and discussing them through a teleconference.

Understanding the Team Members’ Personalities

Team have a different combination of personalities, and the facilitator of the retrospective needs to understand the personalities of team members to lead the meeting effectively.

  • Teleconference Meeting – Distributed teams with overlapping work hours should use a teleconference call to the same phone number every day to hold their Daily Scrum meetings.
  • Videoconference Meeting – The main advantage of this approach is that team members get to see one another, so there is less nonverbal communication loss. Dealing with Defects – Distributed team may want to consider creating a user story with a certain number of story points in the Sprint to deal with the problems, OR, they can set a priority for the maintenance tasks as per the customer log OR create a subteam to focus only on handling these issues during the Sprint OR depending on the skill set of the technical support team team to make the necessary code changes
  • Services May Vary by Location – Set up a single machine with a standard configuration that everyone uses during the demonstration meeting. Before the start of the meeting, distributed team members can access the machine (remotely or locally) to bookmark links, set up scripts, and do a quick dry run of their presentation.
  • Respecting Cultural Differences – SM needs to make sure cultural difference should not be taken lightly during the retrospective meeting in distributed teams
  • Managing Dependencies within the teams – Agile teams will not try to account for every possible dependency at the start of the project, but will look ahead two or three Sprints to ensure that teams are ready to deal with dependencies, using INVEST model
  • Gaining Commitment – With a distributed team,team members who are sensing that other team members have unspoken issues need to take responsibility for drawing attention to the issues to SM because of this, the SM needs to rely on the whole team to take responsibility for ensuring good communication.

Approaches to Handling Time Zone Issues

Distributed Teams can use four different methods to deal with distributed Daily Scrums where the team has members with no overlap in their work hours, as follows:

  • Daily Scrums through documentation
  • Liaison approach
  • Alternating meeting times
  • Share the pain Disruptions at the Team Member Level – Handling Stories the Team Cannot Complete During the Sprint – Before working toward the solution, the team first needs to identify the work they need to do to complete the story through meetings between team members or with the Product Owner.
  • Asking for Comments Before the Retrospective Meeting – What Went Well and What Can We Improve?
  • Ask the team for comments about issues or problems they noticed since the previous
  • Sprint retrospective and summarize them for team discussion. The result is still an action plan and a list of behaviors the team needs to change or continue in the period until the next Retrospective.

Risks

During the Release Plan, the PO will want to identify the risks associated with the project and teams, when possible, the mitigation plan for each of them Note: No one should interpret silence as agreement. Team members should phrase questions in a way that needs a verbal response to improve the understanding within the team. Precautions to be taken while conducting Distributed Scrum meeting

  • Increased distraction – Background noise can be distracting on a teleconference so teams should chose a room to conduct the meeting.
  • Handling Blockers During the Sprint – In the large scale enterprise transitioning to agile, the SM needs to hear from Distributed Scrum Team members who are facing blockers and dealing directly with inhibitors will help increase the velocity of the team over time, as well as the velocity of other teams as they transition to Scrum.
  • Provide Questions to Focus the Discussion – In distributed setup, team members respond to a set of questions developed or selected by the team. The purpose is to focus on a few issues and address them effectively instead of trying to address a lot of issues and address them poorly.
  • Coordinate Multiple Product Owners of different teams – Product Owners meet regularly to discuss Product Backlogs, dependencies, and links between and boundaries between user stories w.r.t. different teams
  • Release Plan Check or Update: Enterprise Scrum Teams often begin providing tasks for high-priority user stories before the Sprint Planning meeting. All team members discuss the tasks because it helps with communication for distributed and scaled teams and provides opportunities to find better ways of completing the user stories. Silence on a teleconference is not a commitment.
  • Keeping the Team Engaged – Possibly the best way to stay engaged and to make sure that others on the team stay engaged is: Awareness. Build awareness of what the team is working on.
  • Advertising. Advertise for collaboration.
  • Attack blockers. The team and SM should strive to fix all blockers within one hour of the Daily Scrum
  • Responding to Questions During the Sprint – For enterprise product development, the PO should look for ways to match representative stakeholders with the teams’ working hours and to be available during that time as well. For applications the team is developing for a specific client, the Product Owner may not have the flexibility to choose stakeholder representatives available during the full working day of the client.
  • Discussing Reported Issues – During their retrospective, the team reviews the reported issues and, if others feel strongly enough, the team addresses them, creates their action plans, and log them as actions they will revisit in follow-on Sprint retrospectives to evaluate their success.
  • Facilitating the Meeting – In a distributed environment, as individuals come into the call, they will identify who they are. The SM calls each person and asks for their response. They may respond in the order they arrived at the teleconference or the SM may choose to call on each person
  • Sharing Time Zone Challenges – One approach to help manage such cases is to make sure that distributed teams in different time zones are fully self-sufficient and the team spreads the work to minimize dependencies.
  • Managing Time Effectively – Limit the discussions to a limited set of issues, it is important for the team to agree, this is the right set to be talking about in the meeting. The meeting facilitator may want to keep a window of time open for unplanned issues that come up during the retrospective.
  • Invest in Smarter Development – Test automation and continuous integration help agile teams to complete user stories within a Sprint, working together or for distributed teams.
  • Taking Daily Scrum Notes – Helps the distributed team members to overcome language problems, plan and learn. Chat Tools & Wiki help distributed teams to do Daily scrums.
  • Continuous Integration – Continuous integration is the key to delivering stable, high-quality code consistently and quickly, which results in reducing time to market for any distributed agile team Release Retrospectives – The team talks about the project, and then defines and records the milestones in the project like initial training, team formation, Stand -up Meetings, start of development, middle of release, deployment etc.

Coordinating Agile and Non-Agile Teams

Making sure the non-agile team is aware of the priorities of the agile teams and keeping dependencies visible can help to prevent blockers between the teams. Scrum of Scrum can solve distributed team road blocks, future dependencies, commitments to other team members, issues with integration, and other points that impact one another.

  • Reports Any Build Failures to the Team – Allows the Distributed team to know the current state of the code in the integration branch of the source control system, generating a notification email for build success or failure.
  • Face to Face Collaboration –SM should reduce the amount time spent each day on project setup tasks, which will extend the duration of the project startup tasks and enables to build trust and relationships needed in distributed development efforts.
  • Reduces the Risk of Integrating Code – Continuous integration ensures a build runs regularly and allows the distributed team to identify integration issues earlier when they are less costly to fix. This practice helped the team to identify design problems and avoid introducing defects in scenarios we did not cover. These smaller testable deliverables allow the team members testing the feature to start their work in parallel with the development.
  • Establishes Greater Confidence in the Product – When developers are doing the unit testing of their code, they should also create automated unit tests as continuous integration certifies every build, developers can make changes with more confidence and the entire team can remain in sync with the latest build.
  • Reduces the Time to Find Integration Issues – Developers receive the build status by email, so they can see and fix problems. The next time the build runs, the build status changes from fail to pass automatically.
  • Improves the Efficiency of the Team – Distributed Teams efficiency can be improved by automating once and then reusing as much as possible. This removes human error, provides consistency, and frees up people to do higher-value work.
  • Builds Can Run at Different Frequencies – Setting up the hourly build helps the distributed team to know about a failure closer to the time of the code integration, and team members can take action on it earlier.
  • Test Automation – To streamline the testing and help the distributed team to get as much done as possible within a two week Sprint, teams should automate time-consuming manual processes where possible
  • Dedicated Automation Teams- The developers in distributed teams should tell what is ready to be automated to allow testers to closely couple with the product. And other testers in the distributed team doing manual executions and informs their highest-priority items for automation as well.
  • Identify High-Value Automated Tests – Testing installation and configuration of the operating system, regression tests, as well as acceptance into testing tests all have a high rate of return because the distributed should often repeat and in different environments.
  • Automate What Is Stable – Automated test cases should be created for parts of the project that are stable will help teams improve their effectiveness and avoid rework.
  • Test-Driven Development – For distributed teams, if someone is working on code written by a developer in another geographical location, having the built-in documentation in the code helps reduce their dependency on the author and enables them to work with the code faster. Working directly with the source code provides a common language for the developers and removes languages barriers.
  • Helps Reduce the Time to Fix Defects – By using such tests and fixing the area where the problem is occurring, the developer in distributed teams can save the time needed to create a full build, start the application, get to the right place, and test the fix manually.
  • Helps Improve Code Quality and Provides a Safety Net for Changes – As the distributed team should write the unit tests first, providing test coverage for all or most of the code, thus, provides an early defect detection process where developers can improve the code knowing the existing set of tests will detect any problems.

Conclusion

Distributed team needs to go for mandatory training to run into full fledge agile teams so that they could understand the potential impact of making the change. Although the project teams are undergoing through while adjusting to be a distributed agile teams, it becomes more important for them to understand and adhere to Scrum, rather than immediately thinking that Scrum needs to be changed.

I believe that collaboration becomes very important in distributed teams as they collectively responsible for delivering on their commitments. One important key to having success in managing distributed team is to have a high commitment level from all team members, and the best way to get that is to give them ownership over how they will work.

Another key to embrace self-managed distributed team is valuing the entire team and not having an “us versus them” atmosphere between different Scrum Teams on the project. The best ways to build relationship within teams is to find ways to share the pain of being a distributed team, to get to know each other as people, and to foster frequent, quality communications between team members.

Another way to introspect the distributed team management is to use their Sprint Retrospectives to see what they are doing and how they are communicating is working for them; when they need to adjust, they should do so as fast as possible.

I must say the teams with members distributed across sites can enhance code ownership and improve autonomy essential to team self-organization. Automated communication of Product and Sprint backlogs throughout the organization combined with upward reporting of teams’ status to management can tightly align the team distributed teams together.


Ideas on Managing Distributed Teams Using Agile [3/3] – Review and Conclusion

Viewing all articles
Browse latest Browse all 19

Trending Articles