Choosing an Agile Methodology for a Part-Time team: Part 1

Posted on: 2020-06-12

In this engagement I helped a software development team with some unusual characteristics, select and implement a more modern development methodology.

Unusual characteristics:

  • The team is mainly composed of pre-final year undergraduate students who act as programmers, analysts and testers. Each year a cohort of new members is recruited, while those experienced members who have reached the final year of study have reduced availability due to Dissertation and Internships. Due to their study requirements, these team members are only available on a part-time basis.
  • The product under development is the management system which runs the operations of the institution at which the team members study.

Additional challenges:

  • The institution has several business units focusing on different levels of Education. Due to the independence required by the relevant national regulatory bodies, as well as the institution's history and policy of fostering academic rigour, these units are highly autonomous which can make building a consensus around shared functionalities in the management system, a real challenge.
  • The institution's accounting and billing system is a COTS solution with which the management system interfaces via a bridge using SOAP(XML) over HTTP. The COTS system's side of the bridge is inherently unstable when subjected to any significant workload.

Software development practices:

  • Crystal Clear
  • Scrum

Actions taken and their results:

  • The first step was to revamp the team's recruiting process. Traditionally the school year would start in February and recruitment would take place once this was complete, leading to new team members only joining the team in June. Given a mid-year holiday in July and August, plus exams in October-November, this meant that new members faced an interrupted and slow learning curve. Therefore in 2019 the recruitment process was adjusted so that candidate appraisal was performed in December, just after final exams, with successful candidates joining the team at the beginning of february. Although there had originally been concerns that the candidates would be distracted by adjustment to the new school year, in practice successful candidates are all good students with high grades and a well-established study routine. They were therefore able to get up to speed with three uninterrupted months of induction and training.
  • The second step was to choose and implement a software development methodology. This was done as a series of participative workshops, looking at various methodologies from Waterfall, through the Unified Process, to Agile methodologies. As a result of this, a shortlist of two methodologies was identifed: Crystal Clear and Scrum. The process by which a final methodology was selected is worth looking at in more detail, and will be the subject of a future post.