Es gibt kein perfektes Design, oder doch?
Die einzige Konstante der Software-Entwicklung ist die Veränderung.
Das Wunschdenken geht bei vielen Entwicklern in Richtung "Perfektes Design" oder "Wie kann ich das besser lösen".
Soweit, sogut...
Dieses Denken fördert natürlich die Schönheit, Klarheit und folglich auch die Lesbarkeit vom Resultat: Dem Code.
Jedoch ist das Resultat im kommerziellen Sinne primär nicht der Code, sondern die Funktionalitäten die sich aus den Anforderungen ergeben, egal wie der Code dahinter schliesslich aussieht.
Der Code steht vielfach, vorallem bei laufenden Projekten die schon viele Altlasten mit sich tragen, an zweiter Priorität.
Dem Gedanken "Ich könnte dies oder jenes doch besser / sauberer / flexibler lösen" stehen dann Projekteinschränkungen wie beispielsweise die Deathline entgegen.
Ich zitiere zwei Sätze aus dem Blogpost There Is No Perfect Design von Phil Haack.
If a project doesn't have a time constraint, it will never get finished.
Irgendwie logisch, oder?
Wenn es keinen Zeitplan / Deathline gibt, wird immer nach dem perfekten Design gestrebt.
Genau so logisch wie die daraus folgende Aussage (Die mich an meine privaten Projekte erinnert :-)):
That explains why I never finish my personal projects.
Ich denke es ist sinnvoll, sich auch im privaten Rahmen Ziele und eine gewisse Zeitspanne dafür abzustecken.
Bei privaten sowohl auch kommerziellen Projekten bleibt in zweiter Priorität - also wenn mal ein bisschen Luft ist / oder aber die Notwendigkeit wirklich besteht - immer noch Zeit das Design und den Code anzupassen, ob das Ergebnis dann gleich bleibt (kurzsichtig gesehen) oder nicht.
Wie sind eure Gedanken und Erfahrungen zu diesem Thema?
Update:
Ist ja sehr nett das ich eine (bzw. zwei) Diskussionen angeregt habe, allerdings möchte ich nicht falsch verstanden werden
und veröffentliche daher meinen Kommentar bei Alex auch noch hier:
Hoi Alex
> Peters Ansichten hätte ich vermutlich mit den Worten “wenn man will, geht es auch mit gutem Design von Beginn an” widersprochen.
Öhm sorry Alex, das will ich aber nicht ;-)
Dann hast du mich wohl falsch verstanden, ich habe mich allgemein ausgedrückt und eher in Hinsicht auf bestehende Projekte mit Altlasten, sowie dem Druck von den Chefs, die dann "irgendwann" mal Zeit einplanen um was "richtg" zu machen.
Ich selber bin genau deiner Ansicht und mein Bestreben ist es natürlich auch, wenne es geht von Anfang an, an solchen Prinzipien und Vorgehen festzuhalten.
Wenn das allerdings nicht geht, bleibt es wohl erzwungenermassen zweite Priorität.
Also meine revidierte Aussage, da ich wohl falsch verstanden wurde:
--
1. Wenn man was perfekt machen möchte, muss man sich auch mal eingestehen das es bis zum Moment perfekt genug ist, da man sonst zu keinem grünen Zweig kommt.
2. Bei kommerziellen Projekten mit Altlasten muss ein solches Wunschenken vom schönen Design bwz. solider Architektur im Moment vielfach erzwungenermassen im Hintergrund gelassen werden, sollte jedoch schnellstmöglich aufgefasst werden da sonst der Aufwand bei einem Redesign / Erweiterung dann erheblich steigt.
--
Gruss Peter