Educators from Pace University have been exploring different models of software development and collaboration for distributed teams. In 2005 to 2008, the models used were traditional in nature. In 2009, the study involved the transition to an agile approach using Scrum as the framework. A development team of five students in three locations, the US, India and Senegal, worked to develop a mobile application for first graders in Africa. This tip discusses the project and some of the key findings and recommendations.
The project team
The project consisted of five students who acted as developers on the project with a rotating Scrum Master role. There was one student in the United States (Pace University), two in India (University of Delhi) and two in Senegal (Ecole Supérieure Polytechnique). The students were volunteers and took on the responsibilities of the project on top of other responsibilities of class work and internships. Their motivation was primarily in gaining knowledge and experience in the technologies, tools and methodologies. There were three instructors who acted as coaches, two in the US and one in India. Two were certified Scrum Masters, one of whom acted as the Scrum Product Owner and one of them as a Scrum coach.
The nine-week project consisted of an initial three weeks of training, followed by three two-week iterations.
Adaptations and principles
Because the project was one done as a class project in widely distributed environment, adjustments were made to the Scrum framework. Daily Scrum meetings, for example, were done asynchronously using a wiki to host the three standard questions: (1) What did I do yesterday? (2) What will I do today? And (3) What is blocking my progress (if anything)?
However, enforcement was encouraged of the following four principles:
- Empower the team.
- Learn and improve.
- Deliver value early.
Furthermore, the implementation of agile encouraged enforcement of additional principles:
- Active client/customer involvement.
- Capturing lightweight requirements at a high and visual level.
- Allowing requirements to evolve, but within a fixed timescale.
- Application of the 80/20 rule, spending 80% of the time on the 20% of the features that matter most.
- Regular delivery of code in a shared repository, refactored by team members. Testing done early and often, integrated throughout the project lifecycle.
Agile methodologies and Scrum increased the transparency of both the process and the software product in development, which is crucial when developers are distributed.
Christelle Scharff, Pace University
What worked well and what didn’t
The released study from Pace University includes a comprehensive table outlining what worked well and what was problematic in terms of both processes and tooling for many of the practices and principles that were employed. Without duplicating the entire table, some notable positive as well as negative findings are listed below.
Planning -- By Sprint 2, the team was familiar with the tools used and everyone was able to use them effectively. However, estimates didn’t improve over time. Absences were not factored into the plan and the goals of the students were unrealistic. There was late planning due to holidays and exams.
Meetings -- The rotation of the Scrum Master role allowed three of the five students to experience this role. There were some Scrum meetings that helped uncover issues. However, the lack of regular Scrum reviews led to a lack of visibility for the process coach and delays and the absence of software that could be demonstrated.
Communication -- Documentation was shared via the tools and the complete team (except the process coach) had weekly meetings over chat. The weekly meeting was held at 8:00 am in the US, 12:00 pm in Senegal and 6:30 pm in India. However, the time zone issues were problematic and there wasn’t time allocated to determine ways to integrate work more effectively.
Empower the team -- The developers decided the stories they wanted to implement in each sprint, but they worked as three smaller separate teams on different part of the software, rather than as one united team.
Testing -- In Sprint 1, each developer was assigned the task of testing the work of another developer. However, in the second and third iterations, they only tested their own work.
The report finishes up with discussion and recommendations for future projects of this sort. The report stated that agile practices added transparency, but stressed the importance of discipline:
“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.”
The report suggests minimizing the number of tools needed. Recommended is an end-to-end solution that allows for engineering, communication, project management, and socialization dedicated to agile methodologies.
Other suggestions include a preliminary socialization meeting where all team members including instructor coaches should attend. Schedules and working hours should be shared and logistics on meetings and expectations around communication should be discussed and agreed to. The report recommended requiring developers to participate in the daily Scrum meeting, be present and dedicate the necessary time for the Sprint planning, and be prepared for the Sprint retrospective. Required video demos after each Sprint was another recommendation.
The University students who participated found the project “memorable” and “enjoyable.” The study was used to evaluate and improve a model for software development using agile in a distributed environment. Findings will be used to continue to make improvements for future projects which are underway.
Christelle Scharff, one of the instructors from Pace University and authors of the study, had this to say:
"I like to set up the global software development project with students from different countries. Students are placed in a real software development scenario and this helps them to understand that software development is about process and communication as much as or more than technology. They can exchange about different cultures and life experiences to appreciate each other's work. The future of the global software development project is about agile, mobile technology and end-to-end tooling."