Sunday, April 17, 2011

Agile on a Global Scale

Educational experiment tries to determine whether agile practices can work for globally distributed teams

Distributed operations have become a reality for multinational businesses, including software development outfits — companies have to leverage talent wherever it resides, even if teams are located across several countries or continents. As such, many organizations have embraced agile development techniques in order to respond to both business demands and the changing workforce landscape. So how do vastly distributed agile teams actually work?

IBM recently joined with a team of academic researchers from the United States, India, and Senegal who put a truly distributed agile development team to the test. Using a collaborative lifecycle management (CLM) tool platform, the researchers challenged five masters-level students in computer science to work together using the agile methodology to create a mobile phone application that can be used as a first-grade-level teaching aide in underdeveloped countries throughout Africa. The Project

In order to implement this progressive nine-week project, the researchers and project team had to determine whether agile development practices could really work across continents. The student team was generally familiar with agile principles as applied in more traditional settings, where team members are co-located in a single building or campus. The team followed the Scrum project management framework, using IBM Rational Team Concert to support the software development process.

The project was created to challenge students from New York, Delhi, and Dakar to develop a single piece of software together — a mobile application dedicated to helping children learn reading, writing, mathematics, and geography through quizzes. According to IBM Rational's Gina Poole, the emphasis was on providing students with a real experience using agile methodologies with Scrum, supported by an end-to-end tooling solution. Additionally, students had the opportunity to gain skills in mobile application development with Java ME, including high-level interface design, the design patterns common in mobile application development, and best practices in usability.

The project was managed by Christelle Scharff of the Seidenberg School of Computer Science and Information Systems at Pace University in New York; Olly Gotel an independent researcher also in New York; and Vidya Kulkarni of the Computer Science Department at the University of Delhi in India. It involved five graduate students enrolled in a Master of Computer Science degree program at their respective universities — one in the U.S. (Pace University), two in India (University of Delhi), and two in Senegal (Ecole Superieure Polytechnique). The project was not integrated into a course; students volunteered to participate in this project on the top of their other school commitments.

The team of five students developed a mobile phone application called "Target First Grade" that permits pupils in the first grade (5-6 years old) to practice mathematics, reading, writing, and geography, supervised by teachers or on their own. The application requirements were for use in developing countries, where classes of 60 to 80 pupils are common, and teachers cannot provide individual attention to their pupils.

Target First Grade was designed to be used in English- and French-speaking countries and to work on a wide range of basic mobile phones. It was to deliver exercises in the form of open-ended and multiple-choice questions, and to automatically compute scores. What Was Learned?

The project provided a wealth of data on distributed agile teamwork, including finding out, first hand, unforeseen problem areas. For example:Estimates did not improve over the Sprints due to the unrealistic implicit goals of the students (absences were not factored into the planning of Sprints, nor were holidays and exams, and team member absences were not automatically populated in the tool)While three of the students had the chance to experience the Scrum Master role and daily scrums helped detect issues like Internet availability, Scrums were not done regularly, which reduced visibility for the Process Coach and the whole team, and inconsistencies in the chronology led to confusionNo time was used for deciding how to work more smoothly together and integrate work, and the time difference between the three countries was problematicCurrent builds were not visible for demonstration and testing, and the student developers tested their own work but did not test each other's work after the first SprintThe developers did not work as one team, but as three smaller separate teams.

According to the researchers, "Agile methodologies and Scrum increased the transparency of both the process and the software product in development, which is crucial when developers are distributed. Their practices and principles require developers to be disciplined and regular in their work linked with engineering, communication, and project management. In students' global software development projects, instructor coaches will need to factor in time to check that developers/students are doing the tasks linked with process and management (e.g., estimations, decomposition of tasks, and standardization of code). Students need practice to get to that level of discipline."

No comments:

Post a Comment