25 Jahre Clipper mit viel Wind

Meine Eltern haben eine Druckerei, weshalb meine ersten größeren Programme für deren Verwaltung geschrieben wurden. Die ersten Versionen waren noch in dBase III geschrieben, aus dem dann sehr schnell Clipper „Sommer 87“ wurde. Damals bekam ich auch meine erste Lektion in dem, was man heute als „User Experience“ bezeichnet:

Wir hatten eine Sekretärin, für die mein Programm der erste Kontakt mit einem Computer war. Dementsprechend gering waren die Kenntnisse, wie der Kasten zu bedienen ist. Die üblichen Programme zu der Zeit waren mit Zahlen aufgebaut: „Geben Sie 57 für Zahlungseingang ein“. Das konnte sich schon damals niemand merken. Ich habe stattdessen eine Menu-Hierarchie verwendet und Buchstaben statt Zahlen. Man konnte sowohl die Buchstaben eintippen, als auch den Menupunkt aus einer Liste auswählen:

Dies erlaubte einen schnellen Einstieg in die Software für neue Nutzer als auch die schnelle Bedienung für erfahrene Anwender. Ein kleines Problem waren natürlich Kollisionen bei den Buchstaben. Aber mit etwas Kreativität konnte ich das auch lösen: es gab beispielsweise ein Auftrag – Wiederbeleben“, um aus einem alten Auftrag einen neuen zu erstellen…und das ist bei einer Druckerei eine recht häufig vorkommender Fall bei Briefbögen.

Fehlschläge gab es auch: der Versuch das ganze Projekt „komplett sauber neu zu implementieren“ ist grandios fehlgeschlagen. Martin Fowlers Refactoring lieferte ein paar Jahre später die Antwort auf das „Warum schlug es fehl?“. Glücklicherweise hielt sich die verlorene Zeit in Grenzen – da ging es anderen Firmen wie Lotus oder Novell schon deutlich schlechter.

Apropos Novell, die Software wurde später auch mehrplatzfähig und bis weit in die 2000er lief ein MARS NWE in der Druckerei. Martin, falls du das liest: ich war derjenige, der dir ein komplettes Novell Netware 3.x Paket mit Handbüchern und Disketten geschickt hat, damit du besser testen konntest. Vielen Dank für deine Arbeit, sie hat uns sehr geholfen!

Aus der Kundschaft der Druckerei kamen auch die ersten anderen Firmen, die eine Verwaltung von mir geschrieben bekamen. Insgesamt waren es knapp 10 Programme, die teilweise ganz eigene Anforderungen hatten. Aber das meiste war identisch, so dass ich schon früh eine Modularisierung des Codes eingeführt hatte.

Von diesen Kunden ist heute nur noch einer übrig, der die Software seit nunmehr 25 Jahren verwendet: das Wind Saarbrücken, ein Ladengeschäft für Sportmoden, Snow- und Skateboards, Bademode und vieles mehr. Hier gab es auch die erste Standortvernetzung. Damals noch mit ISDN und einer selbst gedengelten Datenbanktechnologie, die man heute als Eventual Consistency bezeichnen würde. Das ganze lief übrigens unter OS/2, was als erstes (erschwingliches) PC-Betriebssystem echtes Multitasking erlaubte. Ein paar Jahre später wurde es durch Linux ersetzt, was heute noch verwendet wird. Hier kam der Dosemu und auch Dosbox zum Einsatz.

Die Ladenkasse wurde durch ein selbstgelötetes Kabel und etwas Assemblercode (!) geöffnet. Eine etwas hemdsärmelige Lösung, aber lief viele Jahre problemlos, bis sie durch einen Bon-Drucker mit einem extra Kassen-Ausgang ersetzt wurde. Der Bon-Drucker war auch ein lustiger Spaß: da es unter DOS keine Drucker-Treiber gibt, musste ich das Logo von Hand (ok mit einem kleinen selbstgeschriebenen Programm) in das richtiger Format umwandeln. Das DOS-Programm liest es beim Rechnungsdruck aus einer Datei und schickt es einfach zum Drucker – funktioniert auch seit Jahren sehr gut.

Die letzte Neuerung ist die Umstellung auf Harbour, um die Software nativ laufen zu lassen. Dies hatte nicht nur den Vorteil, dass man wieder einen Compiler aus diesem Jahrtausend verwendet, sondern dass das Programm beim Warten auf eine Eingabe nicht in einer Endlosschleife läuft. Dies macht sich beim Lüftergeräusch und beim Stromverbrauch positiv bemerkbar.

Ob sich die Software noch weitere 25 Jahre hält kann niemand sagen. Aber sie hat dem Wind treue Dienste geleistet und wird mittlerweile von der dritten Geschäftsleitung genutzt. Ich wünsche alles Gute für die Zukunft!