Many software development organizations are electing to implement Agile development methodologies in order to take advantage of the cost, quality, and time-to-market benefits commonly achieved with this approach. At the same time, these organizations are moving software development offshore to take advantage of greater scalability and quot;round the clockquot; development cycles. However, in combining these two efforts, the highly collaborative nature of Agile is tested as teams are faced with cultural challenges and necessary work habit shifts. If you are considering implementing a Global Agile approach to software development, then it is imperative to focus on an often underappreciated aspect of this initiative: building the right team. This is the most critical step in delivering the benefits of Global Agile development.
Global Agile can be as productive in a multi-shore environment as when working in the same location. In fact, when compared to other development techniques that can be done using an global team, such as waterfall, Agile is perhaps best suited for multi-shore environments based on the visibility it provides into the team's progress and the high level of communication and collaboration with the global teams.
Significant factors for Global Agile's success are the skills, seniority, and subject matter expertise of each team member. Perhaps the most important trait of all is one that can't necessarily be reflected on a resume: personality. Constructing your Agile teams is not a one-time exercise, but requires constant review to ensure long term success. While this is true for all Agile teams, the nuances in a global context can have significant detrimental effects if not fully appreciated.
The Important People Factors
Factors such as cultural compatibility, close collaboration, and the value of teamwork over individual contribution can be more important than particular technology skill sets.
Unlike a waterfall method where team structure is more of a managerial hierarchy, Agile is insistent upon open, continuous team communication. Agile development decries the traditional hierarchy system for a more quot;democraticquot; philosophy. With Agile, an individual's value is determined by his ability to contribute to the team. For some, this is a very hard transition to make, especially in eastern cultures where the management culture is more autocratic and value is often measured by the number of people one manages. Understanding a team member's attitude toward a flat organizational structure, willingness to quot;get his hands dirty,quot; and acceptance of open communication is important for an Agile team to be successful.
It's very important to properly evaluate these quot;softquot; factors. As with most companies, a large percent of the team members do not come from an Agile background, yet these companies have been able to build strong Agile teams for many of their clients. For example, one client, a leading product lifecycle management ISV, had slowly adopted Scrum for its onshore development teams. However, with our firm's experience, we were able to scale the project to a global team in only three months. That was due in large part to the traits that we looked for (noted above) in the team members when we scaled up.
Due to these requirements, any previous experience with Agile development is a factor that should be strongly considered based on the personality traits of those who practice it. As an example, if a team is used to getting detailed requirements up front, and then suddenly gets immersed in an Agile environment where requirements are not detailed, this impacts relevancy, productivity and quality of deliverables. Agile development requires the team to be much more intuitive, inventive, creative and extemporaneous in their approach to development.
Building a Team
In any Agile environment, to make the process as smooth and productive as possible, team members should have clarity in their roles and responsibilities. This task becomes even more complex when considering multi-shore locations. One way to approach team building is to keep personality compatibility in mind. Clarity of roles is paramount to smooth operating teams. This does not mean role assignment is critical, but rather personality positioning is important.
One tip is to make a map of your teams with open slots for different roles and then select or recruit for those open slots. As you fill in the team map, note the individual's experience, especially with global development, and his dominant personality traits. Attempting to determine overall personality during a typical interview is not easy. Some managers of Global Agile teams administer personality assessment tools in order to supplement their interview process. Specific traits are important to ensure team members have effective communication skills and are assertive in their approach. Recruiting technical employees that have the right mind-set to adopt the Agile way of working (self-driven rather than command driven, voices his or her opinion, etc.) can ensure an effective Agile team. Given the challenges in getting seasoned quot;Agilists,quot; it is prudent to invest in Agile process and philosophy training. The training program also helps weed out individuals who want to work in a Global Agile environment versus those who are just looking for a job and tolerate Agile as part of staying employed.
Agile, by its very nature, is much more of a democratic and collaborative process.
Generally speaking, Agile teams, whether in a single geography or multiple geographies, are highly self-directed and rely on trust between the members of the team. The most important element in building trust is a series of positive experiences. The more any team member delivers effective results, the more that the other members will trust him to continue to deliver. In that same sense, if a team member is not carrying his own weight on a project, it is very easy to notice and take corrective action. Agile teams are more about team responsibility, rather than individual responsibility. Therefore, the team's quot;weakest linkquot; will surface much faster in an Agile environment.
In managing a Global Agile team, it is also important to build an atmosphere of respect and camaraderie. The more the team members know each other, the tighter the team will be. For most of our clients, instant messaging, regular conference calls, personal wikis, and other collaborative tools work very well and are necessary to close the distance between teams that are not co-located.
Some companies even employ Agile processes to kick off engagements and knowledge transfer efforts. In another client example, the initial ramp up for the offshore team was done using an Agile Scrum approach. This was done in two week sprints - there was a sprint to transfer knowledge about the product itself, another sprint to transfer knowledge about the technology stack use in the product and another to go over the client's development processes. At the end of the second week, the team members demonstrated their learning by solving the mock issues/scenarios given to them. Using the above approach, the Scrum teams ramped up quickly on technical areas as well as the client's Scrum process. The added benefit is that they gained the onshore team's confidence quicker, and built a strong cross-team relationship with this kind of interactive ramp up process.
Although there are no set titles in an Agile environment, the Scrum Master holds a very important role on the team. This position mentors the rest of the team, quot;managesquot; the Agile processes and goals, and helps to set timelines and metrics for the team to work toward. The Scrum Master provides the right kind of visibility to management but also raises awareness of the challenges that may have an impact on deliverables. The position of the Scrum Master can be permanent or filled on a rotation basis. Rotating leadership is another great method that we employ to break down the cultural and organization barriers in a Global Agile environment. It also has an energizing impact on all the other members of the team who might not otherwise have a chance at leadership in a typical hierarchical structure.
Scrum Masters set the expectations for the team and help solve any problems that may arise. Will there be daily scrum meetings between geographic teams or will you be conducting a quot;scrum of scrumsquot; approach? (Typically, one specific Scrum approach is used in planning multiple scrum approaches for future releases.) In fact, global Scrum Masters must deal with the added challenges of not being near all of their teams, as well as the main customer resources. They are responsible for coordinating between the global locations and ensuring these locations are working seamlessly. Therefore it is vital, as with any global endeavor, to continue to put collaboration first and ensure that communication is a top priority.
It All Comes Down to People, Not Process
Agile development is a much more people-focused process than other development methods like waterfall, which are typically process-focused. It's well known that there are much greater challenges to moving Agile development offshore than waterfall. However, once a Global Agile approach to software development is implemented, it's successful at a faster pace because of its highly collaborative nature. Product releases are delivered in short, focused time periods, typically in two to three months.
As with any endeavor, putting appropriate effort in the very foundation is always the key to success. The individuals who make up your Global Agile team are not just the foundation but the bricks and mortar of your project. Putting the right people in place, monitoring, motivating, and providing effective tools and the opportunity for collaboration will go a long way to remove some of the challenges faced by many leaders moving to a Global Agile software development environment. And the effort will be well worth it.
About the author
Neil Fox brings several years of experience with Agile development methodologies to Symphony Services' Global AgileTM approach to software development. Prior to Symphony, Fox led several Agile development teams while serving as Director of Development for Lawson Software and Senior Director of Global Information Systems at Red Hat. Fox pioneered the development of the world's first corporate Intranet and content management system as Manager of Advanced Development and Applied Technologies at TRW. He also led the implementation of award-winning career web site BrilliantPeople.com while with Management Recruiter's International.