Dimensionierung und Planung von Software und Fußgängerbrücken

Software:
Am Anfang heißt es immer: „… ein kleines und sehr einfaches Programm…“, und dann fallen ähnliche Sätze wie „…ein Drei-Zeilen-Programm…“ sowie „… keine eye candies…“.

Mitten in Entwicklung, und oft gar gegen Ende heißt es dann: „… wir brauchen schon Benutzerverwaltung…“, und „… man sollte schon arabische und hebräische Texte von rechts nach links darstellen können…“, sowie „… naja auf Mac OSX muss es auch laufen…“ und nicht zu vergessen „… man soll ganz einfach das Datenbank-System auswechseln können…“ sowie „…. Daten von X ins Y migrieren können…“ aber auch „… über Internet Reports abrufen können…“ und eine Selbstverständlichkeit heißt es dann „… die Daten müssen auch in AAA, BBB, …, CSV, XML, JSON, …, ZZZ und 1000 andere Formate exportiert werden können..“ usw. usf.

Fußgängerbrücke:
Ich habe ehrlich gesagt absolut keine Ahnung, was am Anfang bei der Planung von Fußgängerbrücken verlangt und gesagt wird… aber einiges weiß ich mit Bestimmtheit:
Bei oder nach der Fertigstellung von Fußgängerbrücken heißt es nie:

  • Wir hätten gerne die Fußgängerbrücke 30 km weiter südlich!
  • Auf der Fußgängerbrücke sollten auch Radfahrer fahren können.
  • Die Fußgängerbrücke sollte schon 2 Spuren für Fahrzeuge pro Richtung haben!
  • Für jede Richtung sollte es schon einen Pannenstreifen geben!
  • Bitte baut die Fußgängerbrücke etwas breiter und baut Schienen für die Bahn dazu!
  • 1000 vollbeladene LKWs und Sattelschlepper sollten schon täglich mit 100 km/h darüber fahren können!
  • Man sollte schon pro Fahrspur eine Autoschranke haben, um Autobahnmaut zu kassieren!

Das ist keine Fußgängerbrücke mehr, sondern eine große Autobahnbrücke mit weißGottWasWeißIchAllesNoch!

Kann es sein, dass manche Kosten mit Komplexität verwechseln?

Belastung-Tests von Software und Autobahnbrücken

Software:
Man zwingt einen Mitarbeiter, eine Zeit lang mit einer Anwendung zu spielen. Ohne Ziel und Plan einfach herumklicken. Wenn die Anwendung nicht abstürzt und/oder keine Fehlermeldung kommt, dann gilt die Anwendung als „getestet“.

Autobahnbrücke:
Man hat noch nie eine Autobahnbrücke als belastbar freigegeben, nur weil ein Fußgänger oder Radfahrer darüber gegangen oder gefahren ist.

Stabilität-Tests von Software und Autobahnbrücken

Software:
Man startet das Programm und lässt es durchgehend laufen, ohne dass jemand damit irgendwas Gezieltes und Intensives nach Logik und Plan tut. Da das Programm, nach ein paar Tagen, Wochen, Monate immer noch läuft, wird es als Stabil gestuft.

Autobahnbrücke: nur weil eine Autobahn nach der Fertigung, immer noch ein paar Wochen steht, wird sie nicht als stabil gestuft!

Sauberkeit und Ordnung

Wie ich in meinem vorigen Beitrag geschrieben habe, habe ich an manchen Sommerferien, als Elektriker auf Baustellen, mein Taschengeld zum Ausgeben für Computerteile & Peripheriegeräte, aufgebessert.

Dabei müssten alle auf der Baustelle, also die Elektriker, Maurer, Installateure, Dachdecker usw., am Ende des Tages ihre Werkzeuge reinigen und ordentlich verstauen, die Materialien genauso… und am Ende mit dem Besen kehren.
Warum?

  1. Effizienz-Steigerung & Wirtschaftlichkeit I: man muss weniger/kaum nach Werkzeug/Materialien suchen, da alles an seinem Platz ist
  2. Effizienz-Steigerung & Wirtschaftlichkeit II: mehr Firmen können gleichzeitig/parallel arbeiten, da mehr Platz zur Verfügung steht
  3. Effizienz-Steigerung & Wirtschaftlichkeit III: man muss auf bestellte Materialien nicht warten, da der Mangel dieser, rechtzeitig erkannt und früh genug vorbestellt wird
  4. Unfall-Vermeidung: man kann nicht über nichts stolpern!
  5. Fehler und Mängel werden früher erkannt und beseitigt

Bei Softwareprojekte jedoch, so scheint es mir, sind Dinge wie Effizienz, Wirtschaftlichkeit, Qualität und Nachhaltigkeit keine erstrebenswerten Merkmale.

Wie sonst kann man folgendes erklären: Man sieht den Groschen, aber nicht den 500 € Schein?

Aufräumen von Code (+ Kommentare und Dokumentation, falls diese überhaupt existieren)?

Wozu? Es funktioniert ja eh! (bis es dann ordentlich kracht)

Vorsorgliche, langfristig-geplante, nachhaltige, gute Software-Architektur und -Management schaut anders aus!

Pläne & Planung

Als Student, während Sommerferien, arbeitete ich manchmal als Elektriker auf Baustellen, und erledigte die Aufgaben die man mir auftrug:
mit Schlagbohrer Löcher für Steckdosen und Schalter in die Mauer bohren, Büchsen für Schalter- und Steckdosen mit Elektriker-Gips in diese Löcher befestigen, Kabel verlegen/ziehen,… und zum Schluß die Steckdosen, Schalter und Verteilerkasten mit Drähte/Kabel verbinden, und am Ende das Ganze Testen.

Auf jede Baustelle gab man mir (als Elektriker) einen Plan in die Hand.

In diese konnte ich auf einem Blick sehen und lesen:

  • wo,
  • wie viele und
  • wie hoch die Steckdose eingebaut werden müssten
  • wo der Kabel-TV-Anschluss war
  • wo der Telefon-Anschluss
  • welche Steckdosen und Lampen hingen an welche Sicherung (Fehlerstromschutzschalter)
  • wie groß/stark sollte die Sicherung dimensioniert sein
  • wie stark (Querschnitt) die Drähte und Kabel

und so weiter.

Die Installateure, die Maurer, die Dachdecker… kurz: alle anderen sind auch ständig mit ihre Pläne herumgelaufen, schauten immer wieder gemeinsam darein, diskutierten miteinander darüber, und machten nach Plan weiter.

Obwohl trivial, doch ich möchte und muss hier erwähnen, dass Kabel, Steckdosen, Schalter, Sicherungen und Verteilerkasten materielle, also sichtbare und greifbare Dinge sind.

Als Softwareentwickler, werde ich meinen Wunsch, einen UML-Diagramm zu erhalten, mit ins Grab nehmen!

Kapitän! Oh mein Kapitän!

„Auf deinem Schiff, wäre ich ungern. Weder als Passagier noch als Matrose!“

Eine Firma ist wie ein Schiff, und der Chef/CEO/Geschäftsführer sein Kapitän.

Wenn der Kapitän ständig zu 100% belastet ist, für tausend Dinge zuständig, unterschiedlichste Dinge aus unterschiedlichste Bereiche erledigen muss, sich mehr und schneller als seiner Besatzung/Mannschaft bewegen muss, für keine wichtige Informationen, nicht einmal für „Eisberg voraus!“ Warnungen Zeit hat…. dann braucht man sich über seine Entscheidungen nicht wundern.

Er/Sie ist gar nicht im Stande richtige oder optimale Entscheidungen zu treffen, denn… er/sie hat keine Zeit.
Ich habe noch nie auf einem Schiff, einen Kapitän gesehen, der ständig im Stress und Bewegung ist, und tausend unterschiedliche Dinge aus unterschiedlichste Bereiche erledigt.

Ein Kapitän strahlt Ruhe und Zuversicht aus, hat den Überblick, hat die Zeit zum Überlegen, Zeit für Gespräche und Beratung mit seiner Mannschaft/Besatzung, Zeit fürs Analysieren, und nimmt sich die Zeit für Warnungen wie „Eisberg Voraus!“.