Über mich
Das waren noch Zeiten, ...
... als ich im zarten Alter von 12 Jahren meinen ersten Computer, einen ZX81 bekam. Was heißt bekam...? Ich habe mir das ca. 100,- DM teure Traumteil vom Munde abgespart und war vom ersten Tag an fasziniert von der Programmierung. Was sollte man auch sonst damit tun. An Videospiele war nicht zu denken. Satte 1 Kilobyte RAM umfasste der Arbeitsspeicher im Auslieferungszustand, den ich zum nächsten Weihnachtsfest vom Christkind höchstpersönlich auf wahnsinnige 16 Kilobyte erweitern ließ. An einen Drucker oder gar einen Massenspeicher war nicht zu denken, so dass der ZX81 oft tagelang eingeschaltet bleiben musste, um Datenverlust zu vermeiden.
Der Sinn und Zweck einer ersten kleinen Adressverwaltung, die ich programmiert hatte, hielt sich so in zweifelhaften Grenzen. Die Adressen einfach mit Schreibmaschine abzutippen und in die Schublade zu legen wäre deutlich sinnvoller gewesen. Aber es war eine gute Übung. Auch für meine Frustrationstoleranz. Wenn Mutter im Rahmen des Hausputzes den Zettel "bitte nicht anfassen" übersah und der von außen aufgesteckten Speichererweiterung empfindlich nahekam, war der Verlust der eingegebenen Adressen auf Grund eines konstruktionsseitig vorprogrammierten Wackelkontaktes, unvermeidbar. Ich konnte es verschmerzen, da der Speicher nach 10 erfassten Adressen bereits voll war und ich Anschriften und Telefonnummern meines Freundeskreises auf Grund der mehrfachen Eingabe bereits auswendig konnte.
Und heute?
Heute verpacken wir ganze Applikations-Server samt Datenbank in Dockercontainer, welche dann in einem Kubernetes-Cluster von 5 bis 5.000.000 Benutzern wie von Geisterhand skalieren. "Was die jungen Leute heute alles aus Strom machen" würde meine Mutter, Gott hab sie selig, sagen und sich achselzuckend ihrem Smartphone zuwenden, um das soeben gedrehte fünfminütige Video ihres Enkelkindes in 4K-Qualität an den gesamten Freundeskreis zu verschicken. Vermutlich dreimal hintereinander, weil hier "irgendwas irgendwie nicht funktioniert" hat. Der dahinter liegenden und unsichtbar im Verborgenen arbeitenden Serverfarm würde das alles nur ein müdes Lächeln abringen.
Ich finde das alles unfassbar spannend und bin sehr stolz darauf, meinen Teil zur Verwirklichung innovativer Projekte beitragen zu können. Hierbei ist es natürlich nicht ganz einfach, technisch immer auf der Höhe zu bleiben. Man kann heute einfach nicht mehr alles wissen. Daher ist mir ein Grundsatz sehr wichtig:
"learn concepts, not languages"
Seit Jahrzehnten wird die Softwarearchitektur als wesentlicher Meilenstein auf dem Weg der Informatik zu einer erwachsenen Ingenieurs-Disziplin beschworen. Das planvolle Entwerfen und Bauen von Gebäuden und Brücken wird Softwareingenieuren als metaphorisches Zielbild aufgezeigt.
Ich verstehe meinen Beruf auch als ein Handwerk, welches man mit bester Kenntnis der zur Verfügung stehenden Werkzeuge und einer sauber geplanten Architektur ausführen sollte.
"Wenn man nur einen Hammer hat, sieht die Welt aus wie ein Nagel"
Haben Sie schon einmal eine Kreuzschlitzschraube mit einem Schlitzschraubenzieher losgeschraubt? Das kann gut gehen, aber die Gefahr dabei Werkzeug und Schraube zu zerstören ist groß. Leider trifft man im Software Engineering oft auf ähnliche Situationen. Tools, Vorgehen und Muster werden in einer Kombination angewandt, wo nichts wirklich zueinander passt. Wenn sich dann die gewünschte Effizienz nicht einstellt werden Werkzeug, Notation oder Methode die Schuld gegeben.
Das Erkennen und Anwenden von Normen und Mustern halte ich für extrem wichtig. Auch hier zeigt ein kurzer Blick in das Schraubenlager unseres Hobbykellers, wie selbstverständlich wir diese Konzepte tagtäglich anwenden. Dort finden wir das Muster "Schraube und Mutter", welches auf Grund einer Norm für metrische Gewinde auf der ganzen Welt funktioniert und niemand ernsthaft in Frage stellen wird.
Muster und Normen werden bei der Softwareentwicklung seit Jahrzehnten eingesetzt und sie liefern die Basis für die Umsetzung nichtfunktionaler Anforderungen wie Wartbarkeit, Erweiterbarkeit und Robustheit. Diese zu (er-)kennen und anzuwenden halte ich für extrem wichtig.