Schon mit SOA als "System Oriented Attitude" habe ich ja dafür plädiert, der Technik eine persönliche Haltung zu unterlegen. Und das 3. Gesetz der Softwareentwicklung hat mich zu quasi philosophischen Äußerungen hingerissen: Softwareentwicklung ist Arbeit am ewig Vorläufigen. Wenn ich mich nun also schon so wegkatapultiert habe von den harten Bits und Bytes, dann kann ich auch noch einen soziologischen Aspekt hinzufügen, oder? Also...
Prämisse 1: Software ist ein langlebiges Produkt mit Zwang zur ständigen Anpassung. Software ist nie fertig. Softwareentwicklung kommt nie wirklich an. Es gibt immer nur Zwischenstopps, Verschnaufpausen auf einem ständig sich windenden Weg. Software ist insofern einem Lebewesen ähnlicher als einem Auto. Softwareentwicklung ist eben Arbeit am und im ewig Vorläufigen. Das mag unserer Vorstellung von "Produkten" widersprechen und auch unserem Weltverständnis entgegenstehen, in dem es doch immer noch soetwas wie Objektivität und Wahrheit gibt, also feste Punkte, an denen man ankommen kann. Aber es hilft nichts: Software ist nicht so. Software kommt nicht an. Software ist eine ständige Baustelle. Sie befindet sich im ständigen Anpassungszwang.
Prämisse 2: Wir leben in einer Gesellschaft, die ein Problem mit Veränderungen hat. Wir leben in einer Kultur, die ein Problem mit Fehlern hat. Fehler, Scheitern und gar noch selbst Schuld daran sein... das sind kollektive Horrorvorstellungen in Deutschland. Abzulesen ist das an der Regelungswut des Gesetzgebers, am Stigma Insolvenz, an der geringen Selbstständigenquote, an falschen öffentlichen Ehrenworten und schlicht an der Realität der Softwareentwicklung, die keine Spielräume lässt. Denn Spielräume sind Eingeständnisse für das Potenzial von Fehlern. Fehler zu machen, wird nicht als unausweichlich menschlich angesehen, sondern als auszumerzendes Übel (oder zumindest zu leugnende Schwäche).
Da nun Veränderungen Entscheidugen voraussetzen, Entscheidungen aber richtig oder falsch sein können, Entscheider also Fehler machen können... deshalb fürchten wir uns kollektiv vor Veränderungen. Wir wollen einfach keine Fehler beim Entscheiden machen, keine Fehlentscheidungen treffen. Wer nichts verändert und zufrieden mit dem status quo ist, der hat kein Problem mit Fehlern oder Schuld. Ohne Veränderung kein selbstverschuldetes Scheitern. Wenn man dennoch scheitert, dann ist´s wenigstens die Schuld von jemand anderem.
Da nun aber unzweifelhaft immer wieder Entscheidungen getroffen werden müssen, auch große und weitreichende, gilt ein (bisher) stillschweigendes Übereinkommen, dass diejenigen, die sie auf sich nehmen, dafür besonders entlohnt werden. Die großen Gehälter der wenigen "großen Entscheider", der Manager, der Konzernlenker stehen insofern wahrscheinlich einfach in Relation zur allgemeinen großen Furcht vor Entscheidungen der vielen Kleinen Nichtentscheider. Wir sollten uns also nicht über sie beklagen, solange wir selbst fehlerängstlich und entscheidungsunfreudig sind. Aber ich schweife ab...
Konklusion: Wenn nun Software ihrer Natur nach ständige Veränderung bedeutet, die Softwareentwickler und -architekten und Projektleiter und Kunden einer Kultur und Gesellschaft angehören, denen im Kern Veränderungen verhasst sind... dann kann das nichts Gutes für die Softwareentwicklung bedeuten.
Wie sollen Menschen in einem Milieu ohne Fehlerkultur, wie sollen Menschen, die ansonsten in ihrem Leben auf Konstanz, geradlinige Entwicklung und dauerhafte Werte (z.B. Haus, Yacht, Familie, gesicherter Ruhestand) ausgerichtet sind, wie sollen solche Menschen etwas produzieren, das die Antithese ihrer Haltung und ihrer Werte ist?
Ich glaube, das geht auf einer ganz fundamentalen Ebene nicht.
Und solange wir das nicht einsehen, werden wir immer wieder verständnislos vor Software jeder Größenordnung - vom Handy-Game bis zur Enterprise SOA - stehen und uns wundern, warum das nicht endlich mal läuft, wie es soll, nicht endlich mal fertig ist.
SOA im Speziellen oder Softwareentwicklung im Allgemeinen braucht, so glaube ich, also nicht nur eine angemessene technisch-fachliche Kultur, die ich "System Oriented Attitude" nenne. Nein, sie braucht auch eine der Natur der Software (s. Prämisse 1) angemessene ganz grundsätzliche Lebenskultur, die ständige Veränderung bejaht, die Fehler akzeptiert, in der es nicht um Schuld und Konkurrenz, sondern um Kooperation geht, die bewusst mit dem Spannungsfeld zwischen menschlichem Wunsch nach Sicherheit und Verlässlichkeit auf der einen Seite und der Notwendigkeit zur Anpassung und Flexibiltitä auf der anderen Seite umgeht.
Der Deutschen Gründlichkeit hat ja ihre Vorteile. Veränderungen wollen bedacht sein. Aber wo aus Nachdenken dann Bedenken und schließlich Bedenkenträgerei wird, wo Fehler ein Makel sind, wo die Spielräume für Korrekturen fehlen, wo Konkurrenz mit Schuldzuweisung arbeitet, wo die Angst in den Herzen sitzt... da kann eine SOA nicht wirklich gedeihen.
Eine Gesellschaft hat immer die Software, die sie verdient.
1 Kommentar:
Toller Artikel; Software aus einer ganz anderen Perspektive betrachtet! Was das Scheitern betrifft, kann ich 100%ig zustimmen. Im Code mag man das noch berücksichtigen können (robuest, fail safe), in vielen Prozessen wird das aber nicht akzeptiert. Wie oft habe ich Teams schon gefragt: "Und wo sind die Risiken?" Ein ehrlicher Umgang damit liegt nicht in unserer Natur. Amerikaner akzeptieren das Scheitern schon viel eher, ja sie kalkulieren es ein. Nur so können sie übrigens schnell am Markt sein.
Kommentar veröffentlichen
Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.