By Jeffrey Carver, Jeremy Cohen and Caroline Jay.
This blog post is the result of a speed-blogging session looking at “Socio-cultural challenges to software engineering for computational science” that took place at the SE4Science ‘21 workshop held on Wednesday 16 June 2021 as part of International Conference on Computational Science 2021 (ICCS2021).
Software is now fundamental to scientific research. As a result, software engineering, and the ways that it is undertaken, are increasing in importance. As with almost all other professions and activities, researchers and software engineers have found the way they work affected by the global COVID-19 pandemic. Most software engineers have experienced some significant period of working remotely, away from their normal place of employment, over a period of many months. While this remote work arrangement may have presented challenges, it has also had some positive impacts. Many of us have become more aware of the socio-cultural challenges that affect us, our colleagues, and our peers as our work and home lives have changed. Many have also lost the separation between work and home that they once enjoyed.
As the world slowly makes its way towards some form of post-pandemic stability, it's likely that the short-to-medium term state for most of us will involve some sort of a hybrid work environment. This environment will consist of both modes of work we used prior to the pandemic and those that we've become more familiar with in recent months.
In this blog post we explore the socio-cultural challenges to software engineering for computational science in the context of the changes brought about by the pandemic. We investigate the practicalities and relative pros and cons of in-person, remote, and hybrid modes of working that are common to the vast majority of research software roles.
Research software engineers and the pandemic
Have the changes to the work environment brought about by the pandemic made things easier or more difficult for individuals? Are particular sociocultural groups disproportionately affected and have software engineers been affected any more, or less, than other professions? These are challenging questions to answer but it’s clear that being a scientific/research software engineer can often be a solitary role. Many research software engineers work in teams where they are the only developer, or perhaps one member of a small team of developers where, in collaborative multi-institution projects, it’s not uncommon for other team members to be based at different institutions. The ability to undertake most software development work on a remote basis, and the widespread shift, during the pandemic, to almost entirely home-based working for such roles, means that many developers of scientific software lost the traditional informal social interactions they would previously have had with colleagues and officemates. With remote, online working, interactions with colleagues and collaborators have become much more “meeting-focused”. These meetings have specific work goals. The informal social interactions are reduced significantly, or even lost completely.
At the same time, some people have experienced benefits from the move to home working. The chance to spend more time with family and less time on the commute are two possible benefits that workers may have experienced.
How has enforced home-working affected research software engineers’ perspectives on their work and their approaches to work? What changes in mindset might they have had and which of these changes should remain going forward? As things slowly begin to return to something resembling the pre-pandemic state, what perspectives or approaches to work do we want to carry-over? In particular, as we move into a potentially extended period of hybrid working where we spend some of our time home-working and some in a more traditional office environment, how can we make the most of the opportunities available to us?
Software engineering tasks and modes of work
To provide some initial thoughts on the nature of research software work going forward, we’ve examined a core set of common software engineering tasks and the interactions or approaches to work that they involve, in the context of three modes of work:
- In-person: Undertaking the task in a fully office-based environment where all parties are present in a single location.
- Hybrid: Undertaking the task in an environment where some parties are in a traditional workplace environment and others are home-working, or, where those involved move between office and home-based work at different times while undertaking the task.
- Remote: All parties involved in the task are remote, i.e. in a home-based working environment, or in a different location to their collaborators. For individuals working at home or without office infrastructure, there may be challenges including possible caring responsibilities, technical issues, and distractions.
We’ve summarised the relative pros and cons of different modes of working applied to different software engineering processes in the table below using the following four-level rating scale:
- Sub-optimal: While not impossible, there are significant impediments and negative aspects that make it very impractical to undertake this task using the specified mode of work.
- Possible: Undertaking the task using this mode of work is possible but not ideal - there are impediments that can make it impractical.
- Better: There are benefits to this mode of work, which outweigh the negatives, for undertaking the task in question, however, there may still be challenges to overcome.
- Best: Using this mode of work for undertaking the task in question provides the best approach to ensure the task can be undertaken optimally.
Discussion and future opportunities
The above table, while the result of a relatively short discussion amongst a small group held during a speed blogging session, does suggest a consensus among the discussion participants that hybrid working is not the ideal approach for tasks that require interaction with others. In the cases of coding and testing which, other than in specific circumstances (e.g. pair programming), are generally done by individuals, the hybrid model does not seem particularly applicable. Here we’ve highlighted that coding can be done fine in an office environment but the focus required to code effectively means that working remotely/from home is likely to be the best option. In the case of testing, developers/testers may require access to, or support with testing infrastructure (e.g. hardware hosting continuous integration/deployment services). Therefore, being in an office environment where networking bandwidth may be better and technical support may be more easily accessible is likely to be preferable.
Of even more interest is the consensus that an in-person/office mode of working is preferable to remote or home-based working in almost all cases considered. Despite the multitude of messaging and video conferencing tools available, we believe in-person communication with another individual, and to an even greater extent a group, still cannot be fully replicated by virtual tools. The existence of these tools has definitely made a phenomenal difference to many peoples’ ability to continue working effectively throughout the pandemic. It is also true that when meeting in person is impractical, e.g. due to international or long-distance collaborations, these tools are of huge value. Nonetheless, in-person communication still has benefits. It’s also the case that virtual environments cannot replicate the networking and informal discussions that often take place at in-person meetings and events. These informal discussions often lead to new research collaborations or the development of stronger and more effective working relationships.
In conclusion, we see that there have been a number of challenges for scientific software developers that have been brought about by the pandemic. Some of these challenges fall into the category of socio-cultural challenges while others fall into the category of technical challenges. Many of the work-related issues software developers have faced in the pandemic are likely to be shared by anyone doing a primarily desk-based job, working in front of a computer for much of their time. Others are more specific to research software engineers. In most cases, issues have been exacerbated by the long period of enforced home-working.
As we begin to slowly move out of the pandemic where we will likely find ourselves in a more hybrid mode of working for some time, we need to ensure that we can capitalise on the benefits of in-person and remote interactions, and office-based and home-based working as far as possible. This will help to reduce, to some extent, the negative aspects of a hybrid mode of working identified in our discussions and reflected in the table above.
Acknowledgements: Caroline Jay was funded by EP/T017198/1 to attend SE4Science 2021. Jeremy Cohen acknowledges UKRI EPSRC for support through grant EP/R025460/1.
Want to discuss this post with us? Send us an email or contact us on Twitter @SoftwareSaved.