One can compare academic software with a Formula 1 race car: it is very fast, beautiful, technologically advanced. But it is very difficult to drive and needs frequent service. The only way of keeping it on the road is to have the driver and the designer working closely together.
To make it possible to use the technology that is developed for the Formula 1 race car in practice, the car must be redesigned:
- It must be possible for anyone with a normal drivers license to drive it.
- It has to be possible to drive on different types of road, not only a polished race track.
- It must be possible for a regular trained service engineer to service it.
- The service interval must be raised from 200 km to 25000 km.
The equivalent concepts in software design are:
- The program must be made user-friendly. It must be usable by casual users that are not also computer hackers.
- It must be robust enough to work on real data as encountered by real users.
- Running and installation must be well documented.
- It must be able to run unsupervised for many data sets and not break down after limited time e.g. through a seemingly unrelated upgrade to the operating system or a minor change to an underlying web service.
We will turn the Ferraris into Volkswagens. And we will be proud of them!