empros gmbh - process & information management services
1009-chat Simplicity is the most difficult thing to secure in this world; it is the last limit of experience and the last effort of genius.

- George Sand

Disziplin und Verantwortung

von Sascha Frick (Juni 04)

Was ist wirklich wichtig in der Software-Entwicklung? Zeit, Kosten und Qualität spielen eine Rolle. Angemessene Abstraktionen und Schönheit sind sehr wichtig, aber sie sind Mittel zum Zweck und nicht der Zweck selbst. Wir streben nach Eleganz in unseren Entwürfen. Doch tun wir dies nicht um der Eleganz Willen, sondern weil sie uns hilft, Software von hoher Qualität in angemessener Zeit mit vertretbaren Kosten zu entwickeln. Doch noch immer ist die Entwicklung von Software-Systemen enorm kostspielig, und noch immer entstehen Systeme, die oft nicht tun, was von ihnen erwartet wird.

Warum ist das so? Grundsätzlich wohl deshalb, weil Software-Entwicklung eine verflixt knifflige Angelegenheit ist. Man muss schon etliche Jahre Erfahrung auf dem Buckel haben und sich den Kopf wiederholt an der eigenen Schlauheit gestossen haben, um diese fundamentale Wahrheit zu begreifen und aushalten zu lernen. Leider fehlt diese Erkenntnis so manchem Software-Entwickler, und viele entwickeln anstelle einer Frustrationstoleranz gegenüber der eigenen Unzulänglichkeit gar eine fast grenzenlose Taubheit gegenüber dem wiederholten Schmerz des Sich-Stossens, das aus der eigenen Unzulänglichkeit folgt. Nach aussen wirken sowohl der frustrationstolerante als auch der schmerztaube Entwickler gefasst. Doch ihre jeweilige Geisteshaltung ist eine grundsätzlich andere. Der Frustrationstolerante weiss um seine Grenzen, ohne sie zu vermeiden; er hat gelernt, sich zu beobachten und kritisch zu hinterfragen. Er stösst sich den Kopf an den Problemen, empfindet den Schmerz, versucht zu verstehen und lernt dazu. Der gegen den Schmerz Abgehärtete dringt nicht einmal zum Problem vor, schon lange vorher stolpert er über seine eigene Ignoranz und Arroganz und fällt hin. Er steht auf, ohne den Schmerz zu spüren, und geht den gewohnten Weg, von dem er weiss, wo er enden wird. Er hat gelernt, den Schmerz auszuhalten, er ist tapfer. Nur leider leidet er für die falsche Sache.

Es wird uns wohl nie leicht fallen, anspruchsvolle Software-Systeme zu entwickeln. Sicher können wir die Effizienz erhöhen, doch das grundlegende Problem der Komplexität und der Tatsache, das Software sich stetig weiter entwickeln muss, wird bleiben. Gute Software-Entwicklung verlangt nach einem sorgfältigen Umgang mit Komplexität, der darauf ausgerichtet ist, mit Veränderungen umgehen zu können. Von uns Software-Entwicklern verlangt dies in hohem Masse Disziplin und Verantwortungsbewusstsein; sie sind der fruchtbare Boden, auf dem sich das eigene Talent und persönliche Erfahrung entfalten können.

Als Software-Entwickler sind wir auf die Hilfe unserer Kunden, die Anwender unserer Software angewiesen. Es sind letztlich die Kunden, die uns die nötigen Informationen liefern, was das System tun soll. Idealerweise entsteht dabei zwischen dem Kunden und den Entwicklern der Software ein intensiver von Vertrauen und gegenseitigem Respekt geprägter Dialog. Fehlt dieser Dialog und nimmt der Kunde seine Verantwortung nicht wahr, dann steht zu befürchten, dass ein solches Projekt scheitern wird; da helfen die diszipliniertesten und talentiertesten Software-Entwickler wenig. Ohne die aufrichtige und engagierte Mitwirkung des Kunden wird es nicht gehen. Wenn Sie das für eine Übertreibung halten, dann lassen Sie mich Ihnen versichern: Ich weiss wovon ich rede. Hören Sie auf meinen Rat: Meiden Sie Kunden, die Sie nicht als Partner sondern als Zulieferer sehen. Wenn Ihr Kunde das anders sieht, dann sagen Sie höflich aber bestimmt: "Nein Danke." Als Software-Entwickler bauen wir nicht einfach ein vorab klar definiertes Werkstück, sondern wir formen und gestalten ein organisches und komplexes System. Und das verlangt von allen Beteiligten ein Höchstmass an Disziplin und Verantwortung.

Über diesen Artikel diskutieren.