We all know from our personal experience that things can and will often go wrong when creating computer programs. ‘Just yesterday I wanted to notify the Chamber of Commerce of a change when I got an “error 505”,’ says Marieke Huisman, professor of Software Reliability. ‘That doesn’t mean they’re making a mess of things at the Chamber of Commerce. Software systems like these are developed by tons of people.’
If everyone develops a tiny piece of software, all of these pieces need to fit together seamlessly. The slightest miscommunication between the various departments can end up being disastrous. Best-case scenario, the user gets an error message. In a more problematic case, an organisation’s entire production process may grind to a halt. Huisman’s department develops tools for businesses to discover any such mistakes in the software early on.
Yes, there are a number of misunderstandings about her area of expertise, according to Huisman. ‘Over drinks, people would always ask me: I have a problem with Windows, can you solve it for me?’ To this day her field is still plagued by two preconceptions. The first is that software developers are all monomaniacal male (!) nerds chained to their desks while churning out code incessantly. ‘A software system needs to be built in such a way that people can actually use it,’ says Huisman. ‘You need to know exactly what requirements have to be met, which requires a great deal of back-and-forth with the users. This prevailing image of someone simply hacking together some software is grossly inaccurate.’
The second preconception is that all software is relatively easy to create. ‘This is a huge misconception in the automotive industry, for example. Nowadays, cars are basically moving computers, but management all too often thinks: we’ll cram the software in between all the parts after the fact. They underestimate just how complex these systems are and how much work they take to create. Then, if something goes wrong and needs fixing, no one knows how it works.’
The corona app fiasco is an excellent example according to Huisman. ‘They thought “oh, we’ll just put it together over the weekend and everyone will be using it”. That is extremely naïve. It simply doesn’t work that way.’
Conversely, she has noticed that researchers can sometimes be too quick to judge the industry. ‘We tend to believe we know exactly how to properly create software applications and that the industry is just winging it. That’s not true. They really are trying their best to create the best possible software applications and are very open to suggestions for improvement. They see us as theorists that develop a tool to solve their problems, but it already fails when they show us the first example.'
Because the field is developing so rapidly, keeping up with practical issues can be a real challenge. ‘Our tools are software too. Developing them takes a great deal of time. In the meantime, new programming languages and ‘features’ are constantly popping up. Nonetheless, she is still happy she decided to pursue computer science when she was around fifteen. ‘There is a lot of overlap with mathematics, akin to puzzle solving. If I have a problem I want the computer to solve, and it works, it’s such a rush.’