States while Product Engineering was spread across multiple locations in US and India. The size of these teams varied from twenty to sixty members. In order to understand practical challenges, we prepared an audit questionnaire consisting of typical questions addressing the key process areas of product lifecycle. For example, maturity of process adherence, adoption of agile principles, and implementation of engineering platform to address the needs of distributed teams.
In order to facilitate this study further, we traveled to these locations and investigated routine problems at all levels. Over the period of three months, we informally interacted with customers, product managers, development managers, engineers, business analysts, and architects. The main results of our analysis are summarized below:
- Rapidly Changing Requirements: Business Analyst, On-site, and Off-shore engineering teams were not on the same page in terms of scope clarity and updated requirement. In some cases, the off-shore team did not properly capture the most recent changes.
- Unrealistic Estimates: Effort variances between estimated and actual were as high as 80%.
- Uncertain Progress Tracking: All stakeholders were not aware with the status of completion of on-going tasks in different locations. Due to this reason, managers were struggling to determine actual progress.
- Showstoppers Found After Release: A few critical scenarios from the high priority business requirements missed during the final testing.
- Missed Defect: In some releases, approximately 10% defects was found in later iterations, while these defect existed from the beginning.
- Communication Bottleneck: Due to hierarchical communication, a few members in some of thee team were becoming bottlenecks.
- Communication Overhead: Repetitive conference calls between teams across locations were affecting productivity.
- Lack of Subject Knowledge: Expected behavior of functionality was known to a few team members; sometimes, information stored in their mailboxes was not shared. Due to this, subject matter experts were repetitively involved in communicating about the same topic. Also, subjectivity of test cases required frequent clarifications from various team members.
- Code Merge Problems: Due to the use of different source control tools, i.e., MS VisualSource Safe and CVS in different locations, code integration was not reliable.
- Broken Fixes: Due to inconsistent check-in practices, simultaneous defect fixes done by the developers from different location were not properly updated in source code repository.
The second phase of the study involved performing gap analysis on each process area. We categorized all findings based on essential parameters such as collaboration, visibility, processes, and tools. After performing root cause analysis on main results, we concluded on the four key solutions to face these challenges:
- Dealing with Dynamic Requirements: We found that lack of scope clarity, subject knowledge, and communication overhead primarily arose due to the fact that distributed teams were not equipped to keep pace with rapidly changing requirements.
- Creating Requirement Tracker: The quality-related problems such as 'showstoppers found after release' and 'missed defects during testing' were occurring due to team's inability to ensure test effectiveness with continuously changing requirements. To meet this objective, an effective traceability between business requirements and other artifacts was required.
- Implementing Continuous Integration: Ability to effectively manage the code base of a product is challenging when developers are sitting in multiple locations. We found that successful implementation of code integration was the solution to various code integration problems.
- Enhancing information exchange with Product Dashboard: We found that managers, leads, and engineers needed better visibility into the product lifecycle without extra efforts. The major cause of problems related to communication, estimates, uncertain progress tracking, etc. was unavailability of a product dashboard.
In the third phase of this initiative, we established best practices to overcome the above-mentioned challenges. Since methods and tools work hand in