Tuesday, February 20, 2007

Global Agile Team: USA and Russia

SUMMARY
The development of software products using the agile methodology across global teams can yield significant advantages. It is not without challenges that require diligence in day-to-day management and agile adaptations to achieve high velocity. Certain patterns of structure, iteration cadence, and trust co-evolution are necessary in bridging differences between members separated by distance, time, culture, management style and backgrounds. This report details the experience gained over a two-year period using agile with offshoring and a team with members in Denver and Moscow. It compares discovered patterns for success against discoveries with both a successful co-located agile team and with a less successful effort in agile offshoring to India.

PROJECT BACKGROUND
Ping Identity develops enterprise-level, server-based software products that operate as middleware for user authentication and identity federation. The agile efforts considered for this report include the implementation of a specialized test system, the creation of a security token service (STS) used in web service security, and the development of a software engine for user provisioning among business partners. These products are characterized by a great deal of XML handling, encryption, browser-based user interfaces, and operation in application-server settings. Most work was done in Java and used a combination of open source packages. The development environment included both commercial and open-source tools for engineer IDEs, testing, source management and defect tracking. Rally was used to manage features and tasks across the team. Development cadence revolved around daily scrums, iterations of two weeks and development trains, yielding significant releases with documentation of two to four months.

STORY
This experience is noteworthy as a dynamic combination of ramping up a global team while evolving agile methodology to meet situational needs. Moving away from a faulty, year-long relationship with a large Bangalore offshore provider, Ping Identity® evaluated eight companies with multi-day, on-site due diligence. Two of those companies were actively using agile with mixed performance possibly linked to factors that we later identified as critical to offshore agile success. Luxoft, while not one of those practicing agile at the time, scored high on 13 out of 17 criteria and was selected. It is important to note that Ping Identity had, at that point, practiced agile since the major staffing of the Denver-based engineering team, a period of roughly a year and a quarter. Drawing on consulting assistance, the Denver team had evolved to an agile team composed of a product manager, tech lead, development engineers, co-located but separately reporting quality engineers, and technical publications. The development process was best described as rigorous scrum laid on top of a framework of a tight development timebox and a hardening tail for each development train. The challenge was the mapping of this baseline process to an offshore team.
Development during the first year and half of the relationship with Luxoft was based on dividing the global team so that the product management, architecture guidance work was done by a dedicated Denver team and the implementation was largely done by the Moscow team. Quality engineering was accomplished by a split team with Moscow doing the bulk of the test design and testing and the Denver team doing follow-on audits and shared testing. The Moscow team quickly accepted the agile processes as something fresh, and at 6 weeks into the relationship an acceptable velocity was attained and continued to grow from that point. Measurements across purely Denver-based and the Denver-Moscow combo team showed task attainment per iteration—one aspect of velocity—to be similar, with the combo team typically having iteration-to-iteration rates 80 to 86%. During this time the Moscow team totally refactored a test system, contributed to two other product lines, and developed a whole new product from blank paper. After the year-and-half point, the team structure shifted to have architectural roadmapping done in Moscow and a different daily communications format.
Two observations complete the story: communications and indexed responsibility. Successful agile hinges on solid verbal communications. This can present a challenge when viewed across a global operation. However, we were fortunate in that many Moscow engineers customarily work from 11:00 AM to 9:00 PM. This shift matched against an early morning start in Denver supported daily global stand-up scrums, requirements questions, joint problem resolution, and, on iteration kickoff days, five to six hours of interaction for retrospectives, story and task reviews, and estimation. Trips between the two teams, roughly 16-person trips per year, further strengthen the communications bridge. The overlay of offshore with growth and agile was successfully done with staff growth in Moscow and responsibility for business-critical software indexed on successful performance. That is, agile operation was successfully demonstrated at a core staffing size of four before the addition of more team members. Working along another dimension, business criticality (the assignment of importance to tasks) was carefully indexed to performance in each train. First the split team demonstrated high payload delivery on test-system development before contributing to the flagship product. Success was shown there before they were permitted to take on a full-blown product from blank paper. Then success was shown there, before the shift of architectural responsibility from Denver to Moscow. This indexing was matched by the Moscow’s team’s desire for more and more technically challenging efforts.

LESSONS LEARNED
Bottom-line, agile requires attention to many factors to yield the 30% to 40% increase in team yield reported in the press. A global team complicates this but is achievable. The Ping Identity and Luxoft teams discovered many key factors over the last two years. A few of these include the following:

CLOCK SPEED COUNTS
We tend to describe agile as a continuous marathon. Being so strongly team linked, it demands that each team member must have a fast “clock speeds”. Both Denver and Moscow lost smart individuals, some with PhDs, whose thinking, production, unit testing, and demonstration capacity failed to fit into a two-week iteration. Attention to quickness in moving from an idea to a tangible is now a key factor considered in hiring.

ROLE TRAPS EXIST
Individuals with broad development and problem-solving skills work the best in keeping agile attainment high. This means that individuals may have to do a number of things to make the team successful. Individuals whose scope of work or performance of assignments is in some way tied to their title, such as “architect,” typically are less productive in the agile setting and eventually self exit. Similar to this but not as destructive, the will of development engineers to participate in product hardening varies with individuals. Since our form of agile has a hardening tail, all must operate in this phase for what is roughly 20% of the train length. Drops in productivity from role rigor appear to be tied to individuals and are not country specific.

STRUCTURES GET IN THE WAY
Agile flattens out the organization. The test of this is the scrum with each person noting his or her status and work situation. Organizations and, perhaps cultures, with strong hierarchical thinking, find it difficult to let go of the leader representative. While a hierarchical organization, the Moscow team learned this notion and is careful to honor this flattening. This continued to be an issue in spite of a year of experience with the Indian agile team. It is thought that this “stickiness” of role is largely linked to strong hierarchical management patterns inherit and re-enforced daily in the offshore organization.

TIME OVERLAP NECESSARY FOR EFFICIENCY
The core of all agile teams is the code-production “engine.” Feature attainment suffers when this core is starved for elaborated requirements or is incapable of self-elaborating to have requirements. Global agile teams are faced with the task of efficient communication of elaborated requirements. Comparing Moscow to Bangalore, with overlapping workdays as opposed to little or no overlap, it is clear that the overlap situation is better, supporting light elaboration on the part of engineers with direct accessing to the product manager to answer questions on a daily basis. Otherwise, the product manager has to richly elaborate requirements in hopes of not starving the core team. In the spirit of doing only as much “in-flight” documentation as needed, this rich elaboration is less efficient.

CONTEXT-RELATED COMMUNICATIONS
Agile requires engineers to focus and operate in what is often called a “heads-down” mode. This simply means that each individual is focused on achievement necessary for the current iteration. Awareness about this level, a higher context, is necessary for good individual motivation and team momentum. Often missed is the fact that engineers co-located with the executive team, marketing, and sales receive contextual information through a variety of channels. These channels, hall chit-chat, discussions, and other things, do not extend beyond the facility. An important and originally overlooked need of global agile teams operating on a minimum of documentation is for a steady feed of context information about the destination of the product and the company commitment. This can be through visits by executives, ensuring presentations given to headquarters engineers are also presented offshore, and, in some way, through “gateway” individuals that funnel information to their counterpart and buddies offshore.

CONCLUSION
Agile with a global team can yield significant benefits. It requires the leadership to be aware of many added dimensions necessary for high efficiency. Existing patterns of work and attitude across the team require time and attention to co-evolution so that high velocity is achieved. It can be done as we have shown with the Denver/Moscow team.

No comments: