Mittwoch, 4. Dezember 2013

Wer kennt die Wahrheit der Entwickelung optimaler Software?

Allgemeines

Ich habe es mir zur Tradition gemacht den ersten Post des Monats für das Nachdenken über mein Tun zu nutzen und über Dinge, die mir bei meinem Tun begegnet sind. Kommentatoren zum Artikel Gibt es einen eklatanten Wissensbruch in der Softwareentwicklung hatten mir empfohlen, mich mit dem Buch "Software entwickeln mit Verstand" [DIER11] zu beschäftigen. Nachdem ich es gelesen habe, kann ich es zum Lesen und Reflektieren nur empfehlen. Es wird auf alle Fälle Einfluss haben auf nachfolgend erscheinende Artikel. Einer schwebt mir ganz fest im Kopf vor. Die Autoren stellen die Erstellung von Software als Wissensarbeit dar, bei der es eine dialektische Barriere zu überwinden gilt. "Eine dialektische Barriere liegt dann vor, wenn sowohl der Ausgangszustand, der Zielzustand als auch die Lösungsschritte ganz oder zumindest teilweise unbekannt sind." [S.30 DIER11] Was heißt es für den Einzelnen, für das Team und für die Interaktion mit der Umgebung, diese Barriere zu überwinden? Dazu finden sich eine Fülle von Ansätzen in diesem Buch.



Kann man daraus ableiten, dass Softwareentwicklung etwas mit dialektischem Denken zu tun hat? Platon hat eine Methode der Erinnerung durch das wechselseitige Gespräch geschaffen. Im Dialog werden Ideen der Öffentlichkeit enthüllt. Bei Hegel wird die Dialektik zur Gesetzmäßigkeit der Natur des Denkens. Der These wird die sie beinhaltende Antithese gegenübergestellt und am Ende steigen wir zur Synthese empor. Natürlich kann man diese Methode auch auf ein einfaches Trial-and-Error reduzieren. Die Methode Versuch und Irrtum müsste vielen Lesern bekannt sein. Ein Versuch erzeugt ein Ergebnis. Ist das Ergebnis falsch, halten wir den Irrtum fest und starten den nächsten Versuch, bis wir ein vernünftig erscheinendes Ergebnis gefunden haben. Eine wichtige Frage ist, wie hoch darf die Anzahl der Fehlversuche sein, bis wir ein brauchbares Ergebnis erreichen. Sind die Mittel um Effektivität und Effizienz zu erreichen auf diese Denk- und Entwicklungsmethode eingerichtet? Stecken in diesem Ansatz eine Vielzahl von Unbekannten, die ein wirkliches Planen nicht unmöglich machen?

Es sind viele Fragen auf dem Weg zur Wahrheit. Doch ein kleines Gespräch auf Twitter hatte Zweifel an der einen Wahrheit. Jeder hätte so seine Wahrheit und das wäre auch gut so. In dieser Frage bin ich wirklich anderer Anschauung. Es gibt Erscheinungen in der Natur, die eben genauso funktionieren und nicht anders. Der Regen fällt z.B. auf die Erde und nicht von der Erde in die Wolken. Solche Wahrheiten existieren ganz unabhängig von uns. Ganz subjektiv können wir Zugang zu diesen Wahrheiten erlangen. Aus subjektiv Erkanntem erstellen wir dann Gesetzmäßigkeiten. Diese Hypothesen gelten jedoch nur so lange, bis bewiesen wird, dass sie falsch sind. Für mich heißt das, Wahrheiten existieren unabhängig von Subjekt. Das Subjekt kann versuchen sich einer solchen Wahrheit zu nähern. In der Privatisierung von Wahrheit sehe ich eine große Gefahr. Am Ende gilt gar nichts mehr und wir relativieren alles und das aus dem Anspruch heraus kleine Götter zu sein. Das subjektive Bestehen auf Wahrheit ist der Anspruch auf recht haben. Die Verlagerung der Wahrheit in den Raum außerhalb des Menschen zwingt ihn zu gemeinsamer Anstrengung auf dem Weg der Wahrheitssuche und es wird im vor Augen gehalten, dass er nie wirklich im recht ist, sich der Wahrheit eben immer nur nähert. Diese Form der Bescheidenheit täte mancher Diskussion in unserer Branche auch gut, heißt es doch, es gibt keinen Königsweg, doch lasst uns danach suchen, auch wenn wir uns immer nur nähern und ihn nie ganz besitzen werden.



Aus diesen Gründen denke ich, ist die Anstrengung einen Weg zur Entwicklung guter Software zu finden, nur durch eine gemeinsame Anstrengung möglich und durch das Denken, niemals im Alleinbesitz der Wahrheit zu sein. Letzteres verhindert eine gewinnbringende Diskussion, in der man wechselseitig aus den Erfahrungen lernt. Ein weiterer Gedankengang, der mich tief beeindruckt hat, war der Gedanke Zug ist ökonomischer. In diesem Blogartikel beschreibt Ralf Westpahl auf eine sehr schöne Art und Weise den Unterschied von Druck und Zug auf ein Team am Beispiel eines Arrangement seiner Freundin. Ein Team, welches nur unter Druck zu Ergebnissen kommen soll, wird deformiert und verbeult, ein Team, welches gezogen wird kommt weiter. Die Fragen, die sich für mich dabei ergeben, sind: Wie kann man ein Team ziehen oder wie kann sich das Team selber ziehen? Wie kann man das Management dazu bringen mehr auf Zug denn auf Druck zu vertrauen? Sind die Menschen im Team bereit für eine Kultur des Zuges? Mich hat das Ganze auf die Idee gebracht mich ebenfalls mit diesem Thema zu beschäftigen. Deshalb meinen ganz herzlichen Dank für diesen Grundgedanken von Ralf Westphal.

In den letzten sieben Monaten ist es mir mit 47 Artikel gelungen, eine gewisse Grundsubstanz zu erzeugen, so dass jeder sich über meine Absichten und Grundgedanken erkundigen kann. Auch im neuen Jahr werde ich meine Inhalte ausbauen. Meine Schwerpunkte werden weiterhin im Requirements Engineering, in der Suche nach den erforderlichen Prozessschritten für eine optimale Softwareentwicklung und einer menschenwürdigen Form der Softwareentwicklung liegen. Ab dem neuen Jahr wird es jede Woche einen neuen Artikel geben. Die Hauptschwerpunkte der Diskussion werde ich auf Google+ , Twitter und die direkten Kontakte in Xing verlegen. Mein Hauptschwerpunkt ist die Weiterentwicklung des Begonnenen. Dabei sind mir Ihre Erfahrungen und Beiträge von besonderer Bedeutung. Sie fließen in jedem Fall in mein Denken ein und verändern es, natürlich innerhalb meines Erfahrungshorizontes.

In diesem Sinne wünsche ich Ihnen eine besinnliche Vorweihnachtszeit. Vielleicht ist es in dieser Zeit auch angebracht über anderes nachzudenken, sich um anderes zu kümmern. Doch die Einrichtung einer menschenwürdigen Arbeit könnte uns dabei helfen auch anderes menschenwürdig einzurichten. Soweit meine subjektive Wahrheit.

  • [DIER11]: Jörg Dierbach, Markus Flückinger, Steffen Lentz: "Software entwickeln mit Verstand", 1. Auflage, dpunkt.verlag GmbH, Heidelberg, 2011


Keine Kommentare:

Kommentar veröffentlichen