Ayushi Rastogi (1989) — University of Groningen
‘AI accelerates software development, but make sure that people still understand it’
From checking in at the station to making an appointment with the GP: software is involved in virtually all aspects of our lives. But the process of creating that software is invisible to most users. Ayushi Rastogi, assistant professor of software engineering at the University of Groningen, gets a unique behind-the-scenes perspective on software companies and open-source software platforms in her role as a scientist. She researches how collaboration between software development teams can be made more efficient and inclusive. She is also studying how developers can outsource tasks to artificial intelligence without losing understanding and control.
It was during her studies that Rastogi became fascinated by software development. ‘Programming feels like having a superpower,’ she says. ‘You can build entirely new worlds. However, what fascinated me even more was realising that the software we use on a daily basis, ranging from banking apps to transport systems, comprises countless interconnected components developed by people all over the world. I wanted to understand how such a complex thing is created in practice.’
Lees dit interview in het Nederlands (NewScientist)
Faster and better
By now Rastogi has already toppled several sacred cows in the software industry. For instance, many software companies around the world have guidelines on how large a change a programmer can make to the code in one go. These guidelines exist because speed is of the utmost importance in the software industry. The prevailing assumption is that smaller changes are easier and faster for a colleague to review and process, and can therefore be incorporated into the software system more quickly. ‘When we tested this assumption, we found that there is little to no correlation between the size of a change and how quickly it is processed,’ says Rastogi.
Intuitively, you would think that the smaller the change, the faster a colleague can review and implement it in the software. However, in practice large software systems are extremely complex, and thousands of changes are made simultaneously. ‘The people who have to review and improve these changes always have a backlog of new code to review,’ says Rastogi. ‘And they don’t necessarily pick up the smallest ones first. Social factors also play a role: colleagues who have worked together before, for instance, are more likely to review each other’s changes.’ She emphasises that small changes can still have advantages, such as reducing the mental effort required by developers. ‘But if you want to speed up software development as a whole, you might be better off reducing the workload of the reviewers, or marking more clearly which changes have the highest priority.’
Besides efficiency, quality is also key: how do you ensure that a new piece of software causes minimal problems when it is incorporated into an existing software system? Rastogi recently discovered that it makes a difference how you assign a new piece of code to a colleague who has to check and correct it. ‘We found that it works better to assign new code to a group of colleagues than to one specific colleague. The group members can then decide for themselves who is best suited to review the code.’ Rastogi believes this probably works better because the person who knows most about the topic will take it on.
Diversity
If we zoom out a little more, we get to another crucial aspect: the diversity of the development team. ‘In my research into open-source platforms, I found that most teams are still predominantly white and male,’ says Rastogi. ‘We already know from many previous studies that diverse teams are more productive. Diversity is also important from a societal point of view. If certain groups are underrepresented in the development process, there is a risk that the software systems will function less well for those groups. A well-known example is facial recognition software, which is less accurate for darker skin tones.’ To prevent such problems, Rastogi says it is important to not only train systems with diverse data, but also to ensure that development teams are diverse. ‘If people with different backgrounds and experiences are involved, it will reduce the chance of overlooking such problems.’
Rastogi is researching ways to increase diversity. ‘The first step is awareness,’ she says. ‘We can see, for instance, that an increasing number of developers from Africa are participating in open-source projects, probably due to growing awareness and the emergence of technological innovation hubs in Africa.’ In addition, Rastogi has discovered that different groups have different reasons for participating in a project. ‘For instance, emphasising the challenge of the work will serve as a better motivation for developers from Asia to participate,’ she explains. ‘For female developers, it can sometimes make a difference if they already know someone on the team.’
New collaboration
Now that artificial intelligence has become increasingly involved in software development in recent years, the question of how to create reliable and inclusive software has become even more urgent. Rastogi believes that AI has a lot to offer, but she also sees major risks. Developers, for example, can gradually lose their understanding of the software they create. ‘If you do not fully understand how the software works, it is also impossible to assess the impact it will have on its users,’ says Rastogi. ‘And because software is so deeply embedded in society, we must be incredibly careful with this.’
In the upcoming period, Rastogi plans to investigate how we can best shape the collaboration between humans and AI. ‘As AI takes over more and more tasks, it will also change the way people work. I want to investigate what skills developers will need in this evolving environment. I also want to explore how we can ensure that developers retain an overall view of and responsibility for the software, without compromising the development speed that AI makes possible. This approach enables us to ensure that we continue to build systems that people can trust.’
Video
Young Scientist – Ayushi Rastogi