Improving Productivity of Local Software Development Teams in a. Global Software ... tivated many companies to initiate Global Software De- velopment (GSD) ...
Improving Productivity of Local Software Development Teams in a Global Software Development Environment∗ Marcelo Blois Ribeiro†, Ricardo M. Czekster, Thais Webber Pontif´ıcia Universidade Cat´olica do Rio Grande do Sul Av. Ipiranga, 6681, Pr´edio 16, Porto Alegre, Brasil, 90619-900 {rmelo, blois, twebber}@inf.pucrs.br
Abstract New guidelines and methods for teams and organizational structures are crucial to improve efficiency and scalability for globally distributed software development. Our work introduces a simplified process to be used by local teams working globally. The process is derived from the Agile Unified Process proposal and is highly centered in team motivation using game principles.
1 Introduction The promises in terms of competitive advantages motivated many companies to initiate Global Software Development (GSD) projects with teams geographically distributed. Problems related to coordination drawbacks, global awareness, cultural barriers and language misunderstanding were identified and reported in forums and conferences. Academic and corporate researchers [4, 5, 6] carried out experiments seeking general lessons for reducing global software development problems. One of the major trends in the research community is to specify models and theories for GSD, such as general processes and guidelines for distributed work. Our work introduces a new process that could be used by local teams in order to enhance local coordination and motivation in a distributed environment. This process definition, which we called Local Agile Game-based Process (LAGPRO), uses the structure and general principles of the Agile Unified Process (AUP ) [3, 8], simplifying its disciplines in order to provide an easier development process, also introducing team motivation elements based on game playing and competition.
2 Local Agile Game-based Process Local Agile Game-based Process (LAGPRO) is a new approach to be used by local teams in GSD projects. Considering an iterative based development process, each global iteration may be locally divided into Rounds of ∗ This
work is partially funded by CAPES/Brazil. author.
† Corresponding
two weeks. Each round is evaluated through a local team score table that will rank individually the team members based on performance indexes. These motivating factors inserted on LAGPRO are based on game playing and competition, to achieve the local team commitment to the global process. The main idea is to simplify the internal development process using few AUP disciplines and phases. The Model discipline was delineated defining model storms on the beginning of each round, and model reviews on its end. For the Implementation discipline we choose a testdriven approach [2] where testers will develop the unit tests, and the developers will fill the respective classes. Testing discipline defines unit tests to verify functional and non-functional requirements, ran by developers. The pairs of developers and testers could work in a concurrently manner filling the software requirements in a cooperative mode. For the planning and control perspective, LAGPRO uses the activities: review specifications and plan the rounds, obtaining always the Global Client approval for the round planning. The members also often update the team status to plan and manage the local work. This approach allows to the Global Client to be aware of teams progress not interfering in local planning activities. Certainly, LAGPRO must be adapted depending on the global process used in the project, but one of the possible adaptations is the score calculation indexes. These indexes can vary depending on the importance of each factor for the project to be well-succeeded following the disciplines adapted to the local development process. The Table 1 shows some of the possible score table indexes for a given global development project and its meanings.
3
Research Methodology and Experiments
Based on these guidelines and process definition, one exploratory research [7] was conducted by Siemens/SCR and researchers inside an iterative GSD experiment. The experimental subjects are four developers in a local team and each one with specific roles in the global development process. The team is responsible for planning its own activities, based on the global demand for each experimentation unit, maintaining the same development environment and communication tools such as mailing lists,
Diagram Use Diagram Review Time Bugs Site Update Bugs in other teams Communication Ability Conflict Resolution Schedule Deviation Team self evaluation
Tries to measure how useful the modeling was for implementation Rewards those who maintain the consistency in the diagrams during development. Computes positive or negative points for developers analyzing time constraints. Attributes scores for testers and developers based on the test activities. Rewards those that reported continuously their status to the Global Client Contributes to reward the individual cooperation outside the team. Calculates the Global Client feelings about the team leader communication ability. Rewards the team leader ability to solve cross-cultural conflicts. Team leaders can be penalized by their team deviation. Rewards the local cooperation when members are invited to evaluate others.
Table 1. Local Score Table Indexes instant messenger and a collaborative tool especially configured by the Global Client. The schedule and iterations plan are discussed among teams to establish assignments and deadlines in a consensual manner. Two experiments are being locally conducted due to find the best approach to integrate the local team in an agile-oriented global development process, namely ad hoc development and LAGPRO. On the first, no specific software development techniques were adopted but a few known XP practices [1] such as coding standards, small releases and short iterations and collective ownership. The developers followed a simple coding approach: they segmented a task, implemented and tested it, during two software development iterations. The default schedule was absent causing task assignment according to its complexity. The local team leader reschedule new tasks (based on individual skills) when he perceives that the previous one was successfully finished. During the experiment, the team complied with the Global Client rules, discussing only deadlines and some unclear issues. The tasks were completed most of the times within schedule, with some difficulty in updating the shared information such as meetings agenda and reports. The second experiment, using LAGPRO, is a two time frame iteration consisting of sixteen weeks, divided into eight rounds of two weeks. Each round is scored applying game motivation rules in a competitive environment. The local team chose the working pairs and their activities as developers and as testers. At the end of each round, the local team calculates the individual round scores, such as subjective evaluations assigning its own contribution and of each member. Following LAGPRO disciplines, many changes were done such as a defined schedule, automatically distributed tasks (because our choice to segment the team in only two roles), and the use of scores to motivate development/testing improvements. Its effectiveness would be sensed by the number of bugs found at the end of the iteration, the on-time delivery of the artifacts and the personal impressions about the work completed. The notion of roles switching was also introduced, basically due to the balance of team members responsibilities. However the experiment already demonstrated that this was disappointing where there is aptitude heterogeneity, which was the case of our experimental subjects.
4
Work in progress
We have presented an approach for the assignment of tasks to local teams using novel concepts found in the literature. In addition, our process aims to help project management and testing activities by using rating process in a friendly competition to achieve productivity through motivation. Our rating rules incorporates not only the productivity of teams, but also the quality of the work performed, since the rank depends on the successful execution of the most likely tests. Our future works includes the formalization and refinement of LAGPRO, analyzing different features and performing other proper experimentations. We thank Dr. Alberto Avritzer of Siemens Corporate Research for valuable contributions in this work.
References [1] K. Beck. Extreme programming explained: embrace change. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2000. [2] K. Beck. Test Driven Development: By Example. AddisonWesley Longman Publishing Co., Inc., Boston, MA, USA, 2002. [3] A. Cockburn and J. Highsmith. Agile software development: The people factor. Computer, 34(11):131–133, 2001. [4] F. Grossman, J. Bergin, D. Leip, S. Merritt, and O. Gotel. One XP Experience: Introducing Agile (XP) Software Development into a Culture that is Willing but not Ready. pages 242–254, 2004. [5] E. Hargreaves, D. Damian, F. Lanubile, and J. Chisan. Global software development: building a research community. SIGSOFT Softw. Eng. Notes, 29(5):1–5, 2004. [6] J. D. Herbsleb, D. J. Paulish, and M. Bass. Global software development at siemens: experience from nine projects. In IEEE 27th International Conference on Software Engineering (ICSE’05), pages 524–533, New York, NY, USA, May 2005. ACM Press. [7] I. Jacobson, G. Booch, and J. Rumbaugh. The Unified Software Development Process. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1999. [8] S. W. Ambler. The Agile Unified Process (AUP). http://www.ambysoft.com/unifiedprocess/agileUP.html, November 29, 2005.