Software dient meistens dazu Aufgaben zu erledigen: Briefe schreiben, etwas berechnen, Bilder bearbeiten, Buchhaltung oder ähnliches. Und es ist einfach, weitere Funktionen hinzuzufügen und als Upgrade zu verteilen. Weil die Software nur ein Betriebssystem oder ein geeignetes Framework erfordert.
Aber Software, die für eine Maschine entwickelt wird, gibt ihr ein Leben. Sehr oft ist diese Software einzigartig wie diese Maschine. Aber ist eine Maschine immer einzigartig? Gut, diese Anlage mag einmalig sein. Jedoch werden die Komponenten auch in verschiedenen Maschinen eingesetzt. Wie die Servoantriebe, Zylinder, Sensoren usw.. Natürlich werden dadurch nicht alle Maschinen einheitlich.
Was passiert jedoch, wenn Maschinen annähernd gleich sind? Wenn zwei Maschinen das gleiche Produkt herstellen, aber die Schritte, um es zu erhalten, je nach den Anforderungen des Kunden unterschiedlich sind und deshalb auch die Menge der mechanischen Teile unterschiedlich ist.
In diesem Fall kommt es sehr oft vor, dass der Software-Entwickler eine Kopie der Software von einer sehr ähnlichen Maschine nimmt, um eine neue, wieder einzigartige Software für diese neue, einzigartige Maschine zu entwickeln.
Und das ist so okay. Fertig. Nächste Maschine bitte.
Jedoch ist eine Software niemals fehlerfrei. Wenn der Entwickler nun Fehler in der zwanzigsten Kopie dieser Software findet, dann wird es langsam aber sicher schwierig, sich um alle früheren Versionen zu kümmern.