Tuesday, May 08, 2007

Design Challenges

Ich bin schon mal über das online verfügbare Kapitel 5 aus dem Buch Code Complete 2nd Edition von Steve McConnel gestolpert (siehe Managing Complexity). Heute fiel mir folgende Liste an "Design Challenges" aus dem gleichen Kapitel auf:
  • Design is a wicked problem
    Wicked scheint sowas wie "teuflisch" zu heißen, also: Design ist ein teuflisches Problem. Warum? Man muss das Problem oft erst gelöst haben, um klar zu erkennen, was das Problem eigentlich ist. In der Regel muss man ein Problem zunächst lösen, um es klar definieren zu können, und dann erneut "lösen", indem man eine funktionsfähige Lösung schafft.
  • Design is a sloppy process
    Das Endergebnis mag ordentlich und organisiert sein, der Weg dahin ist es nicht. Der Weg dahin ist voll von Fehlern, Missverständnissen und Irrwegen, was auch völlig ok ist. Design lebt von Fehlern, die dazu beitragen das Design zu verbessern.
  • Design is about Tradeoffs and Priorities
    Abwägen, Kompromisse finden, Prioritäten setzen. Irgendwas bleibt immer auf der Strecke.
  • Design Involves Restrictions
    Anything goes? Nein, eher Möglichkeiten einschränken.
  • Design Is Nondeterministic
    Das Endergebnis ist nicht festgelegt. Man kann auf vielen verschiedenen Wegen ans Ziel kommen.
  • Design Is a Heuristic Process
    Designtechniken, die wiederholbar ein vorhersehbares Ergebnis erzielen? Gibt es nicht. Eher eine Frage von Faustformeln, Versuch und Irrtum. Kein Werkzeug ist für alles geeignet.
  • Design Is Emergent
    Ein Design "entspringt nicht fertig aus irgendjemandes Kopf", sondern entsteht graduell beim Entwickeln der Lösung, durch Design Reviews, Diskussionen, Erfahrungen beim Programmieren selber, usw..
Ja, hochinteressant, oder? Vielleicht sollte man sich das Buch anschaffen...

No comments: