Source Reflection #1: Große Kategorien oder kleine Differenzen
"Was tun wir hier eigentlich?" – Das wird sich schon mancher im Softwareprojekt gefragt haben. Wer so fragt, wird schnell philosophisch und kommt ins Staunen über das Selbstverständliche. Dieses Reflektieren macht Software nicht auf die Schnelle besser, aber auf lange Sicht ändert es die Art, wie man Problemen begegnet – der Auftakt einer neuen Kolumne.
- Jörg Friedrich
Ein Sprichwort sagt, wer nur einen Hammer hat, für den besteht die Welt nur aus Wänden, in die Nägel eingeschlagen werden müssen. Aber auch die Umkehrung gilt: Wer die Welt als eine Wand sieht, in die Nägel zu treiben sind, der wird immer nur nach Hämmern suchen. So wie Menschen die Welt sehen, so schaffen sie sich die Werkzeuge, mit denen sie die Welt verändern können. Das gilt für Handwerkzeuge genauso wie für Software.
Seit Menschen sich die Arbeit teilen und der eine das Werkzeug für den anderen herstellt, ist es wichtig, dass beide von der Welt und von dem Werkzeug ungefähr das gleiche Bild haben. Viele meinen, dass der Markt dafür sorgt, dass diejenigen, die hämmern wollen, mit denen zusammenkommen, die Hämmer herstellen. Problematisch ist aber, wenn die verehrte Kundschaft nicht so genau weiß, wie das ideale Werkzeug beschaffen sein soll, und die Hersteller alle dasselbe Bild von der Welt haben. Dann wird aus einer sehr vielfältigen Welt plötzlich tatsächlich ein Labyrinth von Wänden, in dem man nichts anderes tun kann, als Nägel ins Mauerwerk zu schlagen.
Source Reflection – die Kolumne
"Was tun wir hier eigentlich?" – Das wird sich schon mancher im Softwareprojekt gefragt haben. Wer so fragt, wird schnell philosophisch und kommt ins Staunen über das Selbstverständliche. Dieses Reflektieren macht Software nicht auf die Schnelle besser, aber auf lange Sicht ändert es die Art, wie man Problemen begegnet, und darum geht es in dieser Kolumne.
Genug der Metaphern, denn was für Wände und Nägel gilt, das gilt auch für Geschäftsprozesse und Use Cases. Und hier macht sich ein Denken dramatisch bemerkbar, das die Sicht auf die Welt seit langem schon prägt: Menschen teilen die Dinge in Klassen ein, in Kategorien, sie schaffen sich Töpfe, in die sie die Dinge einsortieren. Und alle Objekte, die in einem Topf sind, werden auf dieselbe Weise behandelt.
Schon bei der Analyse der Akteure definiert man meist nur eine Handvoll von Benutzergruppen. Aus denen entstehen dann Berechtigungsrollen für die Datenbankzugriffe genauso wie Benutzerprofile mit zugewiesenen Funktionen. Vielleicht werden noch die Experten von den Durchschnittsnutzern unterschieden. Auf diese Weise werden Menschen, die sich bisher je nach Erfahrung, Ausbildung, Kompetenz und Wissen die verschiedenen Aufgaben flexibel und vielfältig geteilt haben, in ein paar wenige Töpfe eingeordnet. Das macht ihnen am Ende das Leben oft nicht leichter, sondern schwerer, weil so manches, was sich zuvor informell regeln ließ, durch strenge und abgegrenzte Zuordnungen nun nicht mehr geht.
Das gilt nicht nur für die Zugriffsrechte auf Informationen und Systemfunktionen, sondern auch für die Art, wie Geschäftsprozesse auf Use Cases und schließlich auf die Funktionen der Software abgebildet werden. "Viele Wege führen nach Rom", hieß es früher. Software bietet jedoch oft nur einen Weg, einen schmalen Pfad mit tiefen Abgründen zu beiden Seiten und ohne Rastplatz oder Abzweig, um zum Ziel zu kommen. Dass da Menschen in unterschiedlichen Situationen, mit ganz differenzierten Vorstellungen und aktuellen Informationen etwas erledigen wollen, wofür es viele Wege geben kann, hat man viel zu selten im Sinn.
So wie die Astronomen irgendwann einmal definiert haben, was ein Planet ist und was ein Zwergplanet, und sodann entschieden, den armen Pluto nicht mehr als Planeten zu behandeln, so sortieren Softwarearchitekten und Anfordungsanalysten die Geschäftsvorfälle genauso wie die Menschen vor den Displays in Kategorien, Standardabläufe und Benutzergruppen. Daran hat man sich so gewöhnt, dass geglaubt wird, es ginge kaum anders. Dabei gibt es wohl kaum jemanden, der sich noch nicht darüber geärgert hat, wenn die Stimme aus dem Callcenter sagt: "Die Software kann das leider nur so", oder wenn er bei einer Bestellung im Internet die Lieferadresse noch nicht eingeben kann, weil er die Kreditkarte gerade nicht zur Hand hat.
So viel Flexibilität wie möglich und nur so viel Standardisierung wie unbedingt nötig. Smarte Software wird aus dem Verhalten der Benutzer lernen und schnell weitere Funktionen zuschalten oder durch Erfahrung die Komplexität reduzieren können. Es ist nicht in Klassen von großen Gruppen (von Anwendern oder Nutzungsprofilen), sondern in kleinen Differenzen zu denken, die die einzelnen Fälle kaum merkbar und auf vielfältige Weise voneinander unterscheiden.
Dadurch bekommt man nicht gleich überall ganz andere Lösungen, und vieles scheitert auch am Budget. Aber die Zukunft fängt beim Denken an, beim Offenhalten von Möglichkeiten. Und das lässt sich täglich in kleinen Schritten versuchen.
Jörg Friedrich
ist Philosoph und Geschäftsführer eines Münsteraner Softwarehauses. Im vergangenen Jahr erschien sein Buch "Kritik der vernetzten Vernunft".
(ane)