Vorbemerkung / Einleitung
Ich habe ad hoc diesen Begriff und diese Seite ins Leben gerufen, um ein Thema an dem SoftwareEntwicklungsbereich anzusprechen, das mich schon seit langem beschäftigt, und mir daher ein persönliches Anliegen ist.
Mal sehen, wer sich an der Diskussion beteiligen möchte, und was daraus wird...
Dabei drehen sich meine diesbezüglichen "Überlegungen" weitestgehend um die Themen...:
Was mich nun konkret veranlasst hat, eine eigene Seite zu diesem Thema anzulegen, war folgende Bemerkung von Kent Beck, einem Vorreiter der XP-Bewegung, im WardsWiki:
Auch einige Bemerkungen anderer bekannter Leute gehen in eine durchaus ähnliche Richtung; wenn sie auch nicht unbedingt direkt auf Software bezogen sind:
Auf den Punkt gebracht
Ich möchte es mal auf folgenden Punkt bringen...: Er [Kent Beck] spricht hier von einer der Software (bzw. dem Software-System) inhärent innewohnender "Drang" nach Einfachheit...: "Code wants to be simple."
Und seine Äußerungen kulminieren schließlich in dem Satz: "I had to accept that I was only the vehicle for the system expressing its own desire for simplicity."
Meinungen, Erfahrungen, Gedanken dazu...?
Gedanken |
Irgendwo hier habe ich kürzlich geschrieben, dass Komplexität so wie Unordnung automatisch entsteht, während Einfachheit und Ordnung nur durch Einsatz von viel Disziplin und Energie erzeugt werden kann. Das würde eigentlich gegen Kent Beck's Erfahrung sprechen, dass das System ihm quasi die Einfachheit aufdrängt.
Andererseits gibt es die Erfahrung (es gibt glaube ich im Wards Wiki einige Seiten dazu), dass man in einen besonders befreiten Zustand der Programmierung kommen kann, wo einem die optimalen, einfachen Lösungen quasi von selbst zufallen. Ein Zustand, den man vielleicht mit Supraleitung vergleichen könnte. Alles wird einfach, wenn man es richtig angeht.
Die Schwierigkeit von XP ist es IMHO, diese Form der Problemlösung mit dem Begriff "Design" zu verbinden. Wer genug Erfahrung hat und in einem guten "Betriebszustand" ist, der trifft einfach die richtigen Entscheidungen, ohne lange darüber nachzudenken. Ist das Design?
Für mich steckt eine Teil des Geheimnisses (das ich nicht behaupte gelüftet zu haben) in einer Loslösung des Denkens von den konkret verwendeten Paradigmen und Programmiersprachen. Ich habe - vermutlich schlecht - versucht, meine Gedanken dazu in WardsWiki:LanguageOrientedProgramming transparent zu machen.