Breakpoint Wilson: There Ain’t No Silver Bullets

Warum Entwickler nicht nach der einzig richtigen Problemlösung suchen sollten
Kommentare

Wie schön wäre es, gebe es die einzig wahre, ultimative Lösung für ein Problem. Das Dumme ist nur: so sehr wir uns das mit unserem analytischen Verstand auch herbeisehnen, der einzige richtige Weg existiert nicht.

„Jenseits von richtig und falsch liegt ein Ort. Dort treffen wir uns.“

– Dschalâl-ed-dîn Rumî

Als freier IT-Berater hatte ich in den letzten Jahren genügend Gelegenheit, unterschiedlichste Unternehmen zu besuchen, zu begleiten und hinsichtlich ihrer eigenen Erfahrung zu befragen. Die Gespräche handelten in der Regel von Wirtschaftlichkeit von Technologien oder moderner Arbeitsorganisation. Was mir dabei mehr und mehr auffiel ist, dass Systeme, Teams und Ideen, die wirklich gut funktionieren, immer mal wieder Abseits von branchenüblichen Auffassungen von „richtig“ oder „falsch“ zu liegen scheinen.

Die Lösung liegt in der Mitte

Diese beiden Begriffe implizieren dogmatisches Denken, und das hält uns aus Prinzip davon ab, Neues zu entdecken und für uns wirklich passende Entscheidungen zu treffen. Beispielsweise führen viele Teams kein lupenreines Scrum durch, sind aber trotzdem viel produktiver als mit ihrer alten Methode. Andere Teams setzten bekannte Standard-Frameworks ein, lösen sich jedoch an der einen oder anderen Stelle zugunsten eigener Vorteile und Überzeugungen von den Konventionen.

Manchmal muss es nicht der reinen Lehre entsprechen, um zu funktionieren.

Mehr als einmal vernahm ich dazu skandierende Stimmen einzelner: Dies sei alles Blödsinn – entweder mache man das richtig oder gar nicht! Dabei schien völlig außer Acht zu bleiben, dass bis auf vereinzelte Fälle das Projekt und die Sache wirklich gut liefen. Besser als vorher. Hingegen hatte ich die Gelegenheit, Projekte zu begleiten, die Dinge nach Lehrbuch einsetzten und damit unerklärlicherweise in große Schwierigkeiten kamen.

Ich fragte mich, woher diese Alles-oder-Nichts-Denkweise kommt, die unter Umständen sogar dazu führt, dass wir bei der Einhaltung von Dogmen das eigentliche Ziel aus dem Blick verlieren. Warum fuhren Unternehmen mit Cherry-Picking unter Umständen sogar besser, auch wenn das, was am Ende dabei herauskam, nicht der „reinen Lehre“ entsprach?

Entwicklung findet nicht um Vakuum statt

Als Softwareentwickler bewegen wir uns von Haus aus in einem durch Mathematik scheinbar gut erklärbaren Umfeld. Viele von uns bringen sogar eine starke mathematische Bildung mit in den Beruf. Wird man nun sein halbes Leben lang intensiv darauf geschult, mit dieser exakten und im Vakuum funktionierende Wissenschaft zu arbeiten, erscheint es Menschen ebenfalls logisch, dass diese exakten und dogmatischen Denkmuster eins zu eins in der beruflichen Praxis angewandt werden könnten.

Ein analytischer Verstand hilft einem oft aus der Patsche.

Bei vielen Dingen stimmt das sogar. Ich begrüße und empfehle es sogar, Gebrauch eines analytischen Verstands zu machen. Eines Verstands, wie man ihn Beispielsweise durch die Beschäftigung mit der Mathematik oder Philosophie trainieren kann.

Theorie vs. Praxis

Die übermäßige Beschäftigung mit Wissenschaften, die in sich logisch und exakt sind, führt allerdings unter Umständen zu gedanklichen Grundsätzen, die in der Praxis hinderlich sein können. Zu der Reihe daraus resultierender, hinterfragenswürdiger Glaubenssätze gehören unter anderem Annahmen wie:

  • Es gäbe alternativlos nur eine exakte Lösung.
  • Wenn ein Ergebnis nicht direkt das nach Metrik bestmögliche Ergebnis darstellt, sei diese Option zu vernachlässigen.
  • Wenn A für Unternehmen X1 funktioniert hat, müsse A auch für Unternehmen X2 funktionieren.
  • Man müsse A auf eine bestimmte Art und Weise machen, oder es sei eben falsch.
  • Entweder erreiche man eine Lösung über die bekannte Definition oder es sei eine schlechte Lösung.

Woher mag das kommen? Software entwickelnde Menschen scheinen es gewohnt zu sein, in einem Umfeld zu arbeiten, in dem sie relativ schnell und gut Erkenntnis darüber erlangen können, ob Vorgehensweisen funktionieren oder fehlschlagen. Daher scheinen sie es vielleicht gewohnt zu sein, überall die universell gültige Lösung zu suchen.

Aus dieser Annahme heraus betrachtet erscheint es ihnen logisch und natürlich, dass hinter jeder Frage nur eine einzige Wahrheit stecken könne; die Welt scheint dadurch kalkulierbar. Ist es vielleicht sogar auch, aber sicherlich nicht für Menschen an diesem Zeitpunkt der Geschichte. Dafür ist die Komplexität sämtlicher Parameter und die vermeintliche Irrationalität menschlichen Handelns buchstäblich zu unberechenbar.

Die absolute Wahrheit

Es ist alles eine Frage des Referenzsystems.

Die Suche nach der absoluten Wahrheit ist übrigens schon unheimlich alt: Seit den Philosophen im alten Griechenland hat diese Frage eine Menge Menschen beschäftigt. Aus gutem Grund scheint diese Frage nach wie vor ungelöst geblieben zu sein; mittlerweile vermutet man sogar, dass die Unfähigkeit dazu vor allem mit gewissen Nachteilen menschlicher Hard- und Software einhergeht. Das macht die Antwort auf die Frage was richtig oder falsch ist nicht gerade einfacher.

Ich erinnere mich gerne und mit einem Schmunzeln an einen Satz, den mir mal ein Jurist verriet. Es handelt sich dabei im die Standardantwort, die jungen Juristen im ersten Semester wärmstens ans Herz gelegt wird. Egal was Klienten Fragen, solle man zunächst immer mit folgenden Satz Antworten: „Es kommt darauf an“ – Juristen scheinen sich der Relativität von Begrifflichkeiten wie „richtig“ und „falsch“ bewusst zu sein. Vermutlich sprechen böse Zungen genau deshalb auch manchmal erbost von sogenannten „Rechtsverdrehern“. Dabei sind die vermeintlich bösen Zungen vermutlich auch keine besseren oder schlechteren Menschen. Mutmaßliche Rechtsverdreher scheinen sich lediglich darüber bewusst zu sein, dass alles eine Frage des Referenzsystems ist.

Referenzsysteme im Alltag

Verträge beispielsweise sind bei näherer Betrachtung nichts großartig Anderes als Referenzsysteme, auf die sich zwei oder mehr Parteien geeinigt haben. Kommt es zu einem Streit, wird dieses Referenzsystem als Grundlage für ein etwaiges Urteil mit einbezogen.

Ohne Referenzsystem gibt es weder ultimativ richtig noch falsch.

Generell ist die moderne Gesellschaft zu komplex geworden, um ohne Referenzsystem, das wir für Bewertungen und Entschlüsse nutzen, von einem „absoluten Gut“ oder einem „absoluten Schlecht“ zu sprechen.

Da wir jetzt festgestellt haben, dass es ohne Referenzsystem kein ultimatives richtig oder falsch geben kann, ergibt sich insbesondere in Bezug auf die Softwareentwicklung folgende Frage: Was ist denn ein gutes Referenzsystem für die Entscheidungen im eigenen Umfeld?

There Ain’t No Silver Bullets

Als verantwortungsbewusste und geschulte Softwareentwickler belächeln wir ja gerne die Codequalität von Unternehmen wie Startups und Agenturen. Code aus Enterprise-Projekten mag nach den Entscheidungskriterien aktueller Softwareentwicklung gut geformt und elegant sein (meistens jedenfalls). Daraus ergeben sich langfristig vor allem wirtschaftliche Vorteile, die zur Größe und Langlebigkeit eines Enterprise-Unternehmens passen.

Wichtig ist es, das für die eigenen Umstände richtige Puzzleteil zu finden.

Menschen in Startups sitzen allerdings auf einem ganz anderen Stuhl: Sie müssen zügig Dinge auf die Straße bringen, denn sonst ist es für das Unternehmen ganz schnell vorbei. Sicherlich kommt dabei nicht immer der laut Lehrbuch beste Code heraus, aber das Ergebnis ist angemessen zur wirtschaftlichen Herausforderung. Dieses Vorgehen kann für ein anderes Unternehmen, das langfristige und sehr empfindliche Themen in Software implementieren muss, den absoluten Tod bedeuten.

Wichtig ist es, das für die eigenen Umstände richtige Puzzleteil zu finden. Selbstverständlich kann es dabei helfen, sich bei Unternehmen mit ähnlichen Herausforderungen zu orientieren. Dabei gibt es keine Garantie, dass sich die Entscheidungen anderer eins zu eins auf die eigenen Herausforderungen anwenden lassen.

Eckdaten abfragen

Die ultimative Lösung existiert nicht, und somit gibt es meiner Meinung nach auch nur wenige technische oder wirtschaftliche Entscheidungen, die ungesehen als richtig oder falsch gelabelt werden können. Die Grundvoraussetzung zur Findung einer technologischen Lösung ist also vor allem, sich erstmal darüber bewusst zu werden, wie das eigene Puzzle bisher aussieht. Unter Umständen ergibt sich dabei dann auch, dass weitere Puzzleteile verändert oder an die richtige Stelle gerückt werden müssen.

Oftmals hilft es, sich eine Handvoll Fragen über das eigene Arbeitsumfeld zu stellen. Einige exemplarische Ausgangsfragen können dabei folgende sein:

  • „Wie ist der Lebenszyklus der Software? Schnelllebig oder kurzlebig?“
    Preisausschreiben benötigen sicherlich nicht den gleichen technologischen Aufwand und die Pflege wie eine Banking-Software.
  • „Wie ist der Investitionshorizont meines Kunden in die Software?“
    Ist mein Kunde in der Position und gewillt, kurzzeitige (Zeit-)Verluste durch eine z.B. langfristige kostengünstig zu wartende Software auszugleichen?
  • „Was sind die wichtigsten Nebenbaustellen meines Kunden?“
    Deep Links, SEO und Preview-Cards von Single-Page-Applikationen sind nach wie vor nicht ganz kostenlos. Benötigt mein Kunde diese Sachen aber dringend, muss ich entscheiden, ob der dazugehörige Mehraufwand meine technologische Entscheidung rechtfertigt.
  • „Wie ist unser Unternehmen aufgestellt?“
    Einführung von Technologien/Arbeitsmodellen sorgt mindestens kurzzeitig für eine Menge Sand im Getriebe. Wie viel neue Dinge auf einmal können wir uns leisten, einzuführen? Können wir die Aufwände abfedern, und passen die Entscheidungen langfristig überhaupt zu unserer Arbeitsweise/Kunden?

Was für den einen Fall also gut ist, ist könnte für den Anderen ungewollte Seiteneffekte mit sich bringen. Das gilt insbesondere für Technologien und Arbeitsmodelle, aber auch für finanzielle Entscheidungen.

tl;dr

Richtige oder falsche Entscheidungen in der Softwareentwicklung sind weniger eine Frage von Zeitgeist oder Dogmen, sondern viel eher eine Frage der Angemessenheit gegenüber individueller Herausforderung. Trends, Maxime, Hypes und Mehrheitsmeinungen der Softwarebranche können eine gute Quelle der Inspiration sein; sie als unantastbare Entscheidungsgrundlage für unsere Arbeit zu nutzen, kann sich jedoch negativ auf unser eigenes Arbeiten auswirken. Ultimativ anwendbare Lösungen existieren selten.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -