Was haben eine Bibliothek und Softwareentwicklung gemeinsam?
Zurück ins Studium
Denken Sie zurück an Ihr Studium (oder falls Sie nicht studiert haben an Ihre Schulzeit). Sie leiden unter Prüfungsdruck und müssen gleichzeitig noch Ihre Masterarbeit schreiben. Für die noch fehlenden Informationen haben Sie die Wahl zwischen zwei Bibliotheken in denen Sie sich das fehlende Wissen noch aneignen können.
Bibliothek 1
In dieser Bibliothek sind Bücher je nach Fachgebiet in einer bestimmten Abteilung vorhanden, dort nach Thema und dann alphabetisch geordnet. Im Eingang hängt ein großer Plan, mit dem man sich schnell zurechtfindet. Nötig ist dieser aber nur in wenigen Situationen, da die Bibliothek einfach, verständlich und logisch aufgebaut ist, die Orientierung funktioniert oft intuitiv. Alte Bücher werden regelmäßig aussortiert und durch neue Auflagen ersetzt. Auf diese Weise ist die Bibliothek noch gut benutzbar, obwohl es dort 1 Mio. Bücher gibt. Der Bibliothekar (Entwickler) findet schnell das gesuchte Exemplar, da er weiß, wo und nach was er suchen muss. Dank in jedem Buch vorhandener Stichwortverzeichnisse ist auch die gesuchte Stelle im Buch schnell gefunden.
Neue Bücher sind schnell einsortiert, ebenso wie neue Auflagen. Da die Bücher von kompetenten Personen geschrieben sind, sind sie flexibel nutzbar und ein Stück weit zeitlos. Sie decken außerdem immer nur das Thema ab, dass auch auf dem Buchdeckel steht und sind logisch in einzelne Kapitel unterteilt, die jeweils einen bestimmten Aspekt des Themas abbilden. Verweise auf andere Bücher finden sich übersichtlich und in mäßiger Anzahl, getreu dem Motto so viel wie nötig, so wenig wie möglich. Da ein hoher Anspruch an die Bücher gestellt ist, sind alle im Aufbau ähnlich und benutzen dieselben Fachbegriffe.
Bibliothek 2
Hier haben wir eine Bibliothek, in der alle Regale kreuz und quer stehen, ohne Sinn und Verstand aneinandergereiht. Einen Plan oder eine Strukturierung sucht man hier ebenso vergeblich wie einfache Bücher. Die Aufteilung von Büchern in Kapitel ist unlogisch und spärlich – wenn überhaupt. Teilweise finden sich zig Bücher, die ähnlich im Aufbau sind, sich jedoch in Details unterscheiden. Diese Details sind nicht sauber herausgearbeitet. Das Finden dieser Unterschiede ist ohne viel Aufwand Glückssache. Die Qualität der Bücher ist dabei sehr unterschiedlich. Obwohl die Bibliothek nur 1000 Büchern umfasst, wird es hier schon extrem schwer und zeitaufwendig, sich Informationen zu beschaffen.
Was hat das jetzt mit Softwareentwicklung zu tun?
Alle oben genannten Aspekte lassen sich mehr oder weniger gut in die Softwareentwicklung überführen. Technisch Interessierte finden die Begriffe in dem ausklappbaren Register:
Technisches Äquivalent in der Analogie
Begriff | Technisches Äquivalent |
Bibliothek | SAP System |
Abteilungen und Regale | Pakete |
Bücher | Klassen / Reports / Funktionsgruppen usw. |
Thema (von Büchern) | fachliche bzw. technische Anforderungen |
Kapitel | Methoden / Funktionsbausteine / Forms |
Informationen / Wissen | Programmstelle / Befehl(-sequenz) |
„Großer Plan“ / Stichwortverzeichnis | Dokumentation der Architektur* |
logischer Aufbau / gute Orientierung | logischer Aufbau der Architektur** |
Ähnlicher Aufbau / gleiche Fachbegriffe | Programmkonventionen / Entwurfsmuster |
Ein Buch behandelt ein Thema | schwache Kopplung |
Verweise auf andere Bücher | logische/starke Kohäsion |
* Mit Dokumentation sind in diesem Fall keine Reportdokumentationen gemeint, die grade bei größeren Unternehmen eher Spezifikationen und damit meist wenig hilfreich sind, sondern Dokumentationen, die einen schnellen Überblick über den Zusammenhang des Systems bieten. Im Optimalfall umfassen diese UML-Diagramme und Entity-Relationship-Diagramme und enthalten einen Überblick über die fachlichen und technischen Aspekte und Zusammenhänge einer Komponente.
** Ein logischer Aufbau könnte folgendermaßen aussehen. Sie suchen die Methode zur Weihnachtsgeldberechnung für einen bestimmten Personalbereich in Deutschland und hangeln sich vom obersten Paket ZHR über “Z_BUSINESS_LOGIC” ? “Z_BL_PY” ? “Z_BL_PY_DE”, finden dort die Klasse “ZCL_PY_CALC_COMPENSATIONS” mit der Methode “GET_HOLIDAY_PAY”. Diese ruft einen entsprechenden BADI auf, der u. a. den Personalbereich als Filter aufweist. Dies ist natürlich nur ein Beispiel, auch andere elegante Lösungen wären denkbar. Da die Methode selbstverständlich clever ist, prüft sie zunächst, ob schon ein Eintrag im Infotyp 0015 vorhanden ist und gibt diesen – falls ja – zurück …
Zurück zum Wesentlichen
Es ist naheliegend, dass sich der Student in unserem Beispiel wahrscheinlich für die erste Bibliothek entscheiden wird. Über die Gründe muss man nicht lange nachdenken, die gesuchten Informationen wird er deutlich schneller finden, deutlich besser lesen und deutlich eher verstehen können.
Der technische Aufbau eines SAP Systems ist mit dem Aufbau einer Bibliothek zu vergleichen. Das Fatale daran, der Endanwender bekommt von jedweden Chaos im System nicht viel mit. Er wundert sich höchstens irgendwann, warum Fehlerkorrekturen immer länger dauern, es immer öfter zu Problemen kommt und neue Anforderungen immer mehr Zeit beanspruchen und am Ende trotzdem oft nicht zufriedenstellend funktionieren. Ist dies der Fall, spricht vieles dafür, dass Ihr System intern eher wie die zweite Bibliothek aussieht.
Bei einer Fehlerkorrektur zum Beispiel läuft der Bibliothekar los, sucht das korrekte Buch und die korrekte Textstelle und korrigiert diese. Aber das Finden des Buches dauert. Vielleicht ist das Buch nach der Korrektur noch unübersichtlicher. Und woher soll der Bibliothekar wissen, dass die falsche Information nicht noch in fünf anderen Büchern steckt? Oder in zehn? Am liebsten würde der Bibliothekar das Buch nun direkt ins richtige Regal einsortieren, doch welches ist das richtige? Eigentlich müsste überhaupt erst einmal ein richtiges Regal geschaffen werden. Aber das kostet noch mehr Zeit, dabei hat das Suchen des Buches schon so viel Zeit gekostet… Dies ist nur eines von vielen möglichen Beispielen für verschiedenste Problematiken.
Und was bedeutet das?
Bei der erstmaligen Einrichtung der Bibliotheken ist das erste Modell vielleicht teurer. Auch das laufende Erweitern des Konzepts kostet Geld und erfordert Know How. Mit steigender Größe der Bibliothek und steigenden Problemfällen in der chaotischen Bibliothek fängt sich das erste Modell jedoch an zu rentieren.
(Aller-)Spätestens, wenn in Bibliothek 2 große Redesign-Notwendigkeiten bestehen, hätte sich die anfänglichen Kosten für Modell 1 auf jeden Fall rentiert.
Und die Moral von der Geschicht‘ … am Softwaredesign spart man nicht, denn es lohnt sich nicht!