“I joined IRRI as a junior developer in 2013, I had only two weeks’ break since I graduated! I have been working with the team for about 8 years now, which is the first development team that I have been in as a professional,” said Ramos.
Graduating from the University of the Philippines, Ramos was involved in the creation of the Breeding Information Management System, later Breeding4Results (B4R), at IRRI. The EBS project aims to unify breeding software projects from across the CGIAR into one complete and seamless system from which all breeding activities can be managed.
“We started really small, and when B4R was selected for the EBS I was really proud of what we had done. I will be even more proud when it is in use on a large scale! Once it is deployed, we need to see that it is actually helpful in day-to-day work. It will be great to communicate with users and hear from them.”
Ramos’ team is working on Core Breeding, one of three functional domains that currently make up the EBS. Each domain contains the tools used to carry out different breeding activities; currently there are 11 tools available to early adopters at four CGIAR research Centers [International Maize & Wheat Improvement Center (CIMMYT), International Rice Research Institute (IRRI), International Institute of Tropical Agriculture (IITA)]. with more features and tools being added over time.
Of all the tools being worked on by Ramos’ team, one stands out: “Experiment creation is the most important, that is where everything starts,” said Ramos. “Users are able to create their experiments, from there they specify the entries, generate a design or the planting arrangement, specify the protocols, specify the field location and the sites where it will be planted.”
The Agile development process
As a software project manager, Ramos oversees the process of continuously adding new features and fixes while maintaining a stable software that users can rely on. Developers work closely with Requirements Analysts, who in turn work with crop breeders to understand their needs and define which new features should be added to the EBS. At each Center currently adopting the EBS, there are Business Change Managers and Data Managers responsible for overseeing the change and representing breeders.
“We have a roadmap created by the leadership that lays out the expected tools or features. We divide those roadmaps into sprints, each of which is almost a month,” said Ramos. At the beginning of the sprint, there is a three-day planning period in which the requirements analysts and the development teams assess the features to be added and refine a product requirements document. This becomes clearer once the user interface specialist develops prototype designs and receives feedback from users.
Once development begins, all the tasks that need to be completed are tracked on a Scrum board. “Usually there are two weeks of development. In the Scrum board we can see the status of all the tasks. Once a developer has completed a task, they assign it to a co-developer to review the code and conduct peer testing.” The EBS Software Quality Assurance (SQA) team then completes functional testing of the tools.
“After testing by the SQA team, we have acceptance testing, which is where the requirements analysts and data managers verify the features that will be released. It is also a good time for them to look for improvements and features for the next development phase,” said Ramos. Once the feature is finally approved, it will be ready for release.
Throughout development, the team holds daily meetings to discuss what was done the day before, the tasks for the day and the blockers each member faced or are currently facing. “During development we are also doing stress testing and functional testing. so there could be new tasks reported that are a blocker,” said Ramos. There is also a mid-sprint review to assess progress and adjust the tasks or features being worked on as needed, followed by the final review which brings everyone involved with the EBS together to present the new features to early adopters.
“After the sprint review, we have a retrospective where we reflect on the previous development phase, discuss what works well and what doesn’t. We are continuously changing and improving our practices based on our experience,” said Ramos. “The biggest challenge in development itself is deciding our coding flow: where do we create a feature branch, when do we merge to a development branch and to what branch does each EBS instance point to. It takes a lot of experience to decide what works and doesn’t so that we will be more efficient.”