Agile Distributed Teams By Belatrix Software | Topics: Software Development
According to author of The Enterprise and Scrum, Ken Schwaber, “the best communication is face-to-face, with communications occurring through facial expression, body language, intonation and words. When a white board is thrown in and the teams work out design as a group, the communication bandwidth absolutely sizzles.”
Research shows that more than 80% of agile teams are distributed across multiple locations. Why? There are lots of reasons. Companies are global. They have global markets and global resources. They need to access global talent. Sometimes that talent is outside of their corporation, as in the case of outsourced partnerships. Gartner Research recently noted that to capitalize on disruptive forces, companies need partners who can help them meet those challenges.
Belatrix offers a pragmatic Agile approach to capitalize on those disruptive forces Gartner references. By multiplying your enterprise’s innovation efforts, Belatrix helps you meet those challenges head on.
How do you assess whether distributed Agile is the right model for your enterprise? What are the practical aspects of a distributed Agile model? We interviewed one of Belatrix’s Certified Scrum Masters. We asked him to address some of the typical questions companies have about working with Agile in a distributed team environment:
Software projects require a lot of communication. This is no different with a Distributed Agile software project. When the team is geographically distributed communication can sometimes become a challenge. It’s important to anticipate this and address it proactively. Distributed teams require strong leadership. Leaders of distributed teams should facilitate optimal levels of communication among the members of the team. Team members should also be encouraged and empowered to communicate actively. Removing hierarchical organizational barriers further multiples the flow of information within the project. Open and active communication increases the overall success and velocity of a Distributed Agile team.
Team size depends on your project’s specific scope. Team sizes can range from 5 to 12 members.
Belatrix normally requires 4 to 8 weeks from contract execution to project launch. This period of time allows us to recruit both internally and externally to identify the most qualified engineers to join the project. In certain instances that period may be shorter if we have engineers available for your project.
Belatrix has Innovation Centers in multiple locations. That gives us an opportunity to hire and select engineers from multiple locations. That enables us to launch your project faster.
We have large candidate databases, and in-house recruiters who help us quickly identify the right candidate.
Personality traits are important to consider. Some engineers aren’t a natural fit for doing Distributed Agile. It’s important to recruit for strong personality profiles that will embrace Distributed Agile and contribute strongly.
Belatrix’s Human Resources teams use psychological insights to recruit engineers that are highly suited to doing custom development work. Those individuals welcome collaborative work, and aggressive turnarounds. Understanding both the optimal technical and non-technical people profile requirements for Distibuted Agile allows Belatrix to offer highly stable teams, with extremely low attrition levels. That stability allows clients to achieve higher velocity levels and other metrics.
Maintaining relatively even workloads across the team is an important part of keeping the team rolling. Depending on the product’s needs, Belatrix contributes a team of agile trained engineers (including UX Design, Developers, and QA engineers). The joint client-Belatrix team kick starts the project with a Sprint 0 Session. During Sprint 0, the project is deconstructed in story points, sizing the pieces of work according to each’s complexity.
Since Agile’s major selling point is its iterative approach, the team self organizes, setting up a plan to achieve a viable software delivery at the end of Sprint 1. That initial output is then perfected until it meets all of the goals articulated by the client product owner.
The specific workload assignment depends on each team member’s velocity. At the end of each Sprint we validate each team member’s delivery time rates to calibrate the next Sprint’s plan. At the end of the project, all of the story points are measured and velocity calculated. The goal is to balance the workload so that all of a given sprints goals can be achieved.
We have a real advantage here. All of Belatrix’s offices are located in a time zone that maximizes team collaboration and efficiency for optimal delivery. Depending on the location of our client’s teams, we usually have a workday overlap with the entire team. Lima, Peru is located in the US Eastern time zone and Mendoza, Argentina 1 hour ahead of the US Eastern time zone.
Building on the time zone advantage, we actively use VOIP tools to facilitate audio calls, as well as instant messaging.
We also frequently do face-to-face interactions by tapping into videoconferencing tools like Skype, Webex, Google Hangouts, Team Viewer, and Join.me. Also, screen sharing is a great way to help connect people and get things done more efficiently.
We avoid relying on email as a communication tool. This slows down communication.
We use a collaboration portal to support storing the SCRUM artifacts. We assure 100% transparency with real-time feedback and visibility throughout the development process to the whole team using Agile Project Management tools like JIRA with Green Hooper, Rally, VersionOne, Mingle or PivotalTracker.
We do code reviews with video and screen sharing to increase the richness of the experience. This activity is also supported by specific tools like Gerrit or Code Collaborator.
Code comments are very important for the team interaction. JIRA, for example, provides a helpful plug-in that tracks comments and relates them to a particular ticket and also the specific piece of code.
The Subject Matter Expert (SME) is a key role in our successful distributed team delivery model.
The SME is a person with special expertise in a particular area (QA or Development). The role helps teams achieve their fullest potential by applying best practices to their work. S/he is in charge of removing any issues that might impede the progress of the team. That may involve helping to solve a technical issue, or helping a team member expand his/her perspective on a given problem.
SMEs also support our HR Department with the recruitment process by adding a technical perspective, as well as contributing to training plans for specific skills needed by the teams. This role has been very useful to architect a culture that supports early feedback and open sharing of ideas.
Client commitment is crucial. Because the distributed work is occurring in real time, it’s important to realize that any questions that arise need to be addressed quickly.
Other key point is that companies starting agile and aiming to lower costs would rather choose nearshore model over offshore model.
Distributed Agile works best where there is real time collaboration. It’s therefore crucial that the client and the distributed team’s time zones overlap for a significant part of the day. Nearshore provides this. Offshore makes this significantly challenging.
It’s highly recommended that clients visit their Nearshore distributed teams to ensure close alignment. Belatrix’s clients report easier travel to Argentina and Peru which require just an overnight flight from the US, for example. There is also no jetlag so visits can be more productive.
Agile product development also relies heavily on a core understanding of what the product is intended to do. Without strong alignment, cultural differences can lead to misinterpretation of goals and result in lost productivity. Belatrix offers Agile engineering teams that have a western business, and product orientation. Belatrix’s engineers have been trained in Design Thinking and Creativity techniques which allow them to put themselves in the user’s shoes. That then serves as a strong basis for development and testing.
Effective Distributed Agile accelerates software velocity. Distributed Agile helps companies tap into a rich global pool of engineering talent. To ensure the caliber of that talent, companies should evaluate how much the Distributed Agile invests in ongoing training. Belatrix offers its engineers more than 120 hours of training a year.
Distributed Agile partners also offer significant process excellence in Agile projects. That knowledge and insight on how to do Agile well can not only contribute to an existing project, but improve the internal operation of the client organization.
Talent, velocity, expertise. Distributed Agile contributes to the overall project and quality outcome of the partnership.