Placing People at the Cornerstone of Software Development

Building Blueprints for Epiverse TRACE

R-U-Ready-Event-Epiverse-participants
R software developers and members of the open-source software community at the "R You Ready?" event in London, UK, organized by Epiverse. Photo by Emma Marty.

Unlocking Possibility and Uncovering Challenges  

Working in outbreak analytics for over a decade, the emergence of an initiative such as Epiverse was the long-awaited opportunity to radically change the way we use data to better prepare for and respond to disease outbreaks. For the first time, substantial resources have been unlocked to develop a much-needed, robust, high-quality ecosystem of software tools for analyzing epidemic data. 

Unlocking resources was just the first step of our ambitious project in which, to be successful, we will need to (re)invent the way we develop outbreak analytics tools or Epiverse TRACE tools. To date, infectious disease epidemiology (IDE) researchers have had little incentive to build software tools. The few groups who managed to dedicate time and effort to such endeavors were often working in competition with each other rather than collectively. These groups often lacked time, training, and resources for developing software to industry standards.  

Outbreak analytics involves a large number of stakeholders including academics, public health officers, field epidemiologists, modelers, and research software engineers. Similarly, Epiverse TRACE involves multiple teams covering different aspects of outbreak analytics, ranging from descriptive field epidemiology to more complex IDE modeling and automated data pipelines. To develop a coherent software ecosystem for outbreak analytics, we will need to ensure consistent, high-quality standards for coding, testing, and documentation, as well as ground rules for collaboration and interacting with our user base across all teams.  

R software developers and members of the open-source software community at the “R You Ready?” event in London, UK, organized by Epiverse. Photo by Emma Marty.

Building a Software Ecosystem for People 

Thankfully, the open-source software (OSS) community has faced many of these challenges, and we can learn from their experience. This realization prompted our Epiverse team to organize a workshop this past June in London, where we were lucky to welcome world experts in R software development as well as from the wider OSS community. Based on the robust workshop discussions and contributions from the broader community, we created the Epiverse TRACE Blueprint for software development. 

Epiverse TRACE Blueprint aims to lay out best practices we will strive to implement when developing our ecosystem of open-source tools for outbreak analytics. One could expect such a document to be almost entirely focused on technical aspects, such as modular coding, unit testing, code coverage statistics, or generally implementing continuous integration. And while all these topics are indeed covered in the blueprint, they remained, surprisingly, secondary. Working together and drawing on our collective experience, we realized that the most important determinants of a successful OSS project are first and foremost about humans, and how they interact.  

Workshop attendees brainstorm from the “R You Ready?” event in London, UK, organized by Epiverse.

The Blueprint is both an amalgamation of our community’s best practices and a commitment to championing and deploying these tried and true development conventions. A pervasive theme in the blueprint relates to interactions between users and developers. We take the stance that OSS development is intrinsically a co-creation process in which developers work hand-in-hand with end-users to ensure that tools address genuine needs faced by outbreak analysts. This involves not only using lean and agile collaboration frameworks, but also giving due recognition to all types of contributions, and investing extensively in documentation, training, and building capacity.  

Another core theme that emerged from the blueprint relates to how developers should interact amongst themselves. We believe that the key to success resides in teamwork rather than individual coding prowess. By having team members review each other’s code constantly and move across different projects regularly, we will better distribute code ownership, share technical knowledge among developers, and standardize code practices. And while we will benefit from the wider OSS community, we will also give back by engaging with developers through free software forums and workshops, highlighting individual contributors, and amplifying up-and-coming initiatives. 

It’s not news that human interactions are at the core of software development. In fact, Donald Knuth acknowledged this in his seminal work on literate programming nearly four decades ago in 1984: “Let us change our traditional attitude to the construction of programs: Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do.” Since then, the OSS community has made tremendous progress recognizing the importance of human interactions as a key part of software development, as illustrated by projects like the Community Health Analytics Open Source Software (CHAOSS) initiative. What is new is the potential for bringing this approach more systematically and comprehensively to epidemiology in a way that recognizes all contributions and creates infrastructure the global community can draw on. It is our hope that by bringing people together, fostering an inclusive, welcoming community, and championing high coding and documentation standards, Epiverse TRACE will deliver on its ambitious and vital mission to improve epidemic response and human lives across the globe. 

About the Author