Wer mit mir schon gearbeitet hat weiß, dass ich ein Fan von Anekdoten bin. Oft sagt nämlich ein kurzer Satz mehr aus als das was in einem ganzen Buch niedergeschrieben ist …
Es gibt zwei Arten von Softwaredesign: Man macht es so kompliziert, dass es keine offensichtlichen Fehler gibt, oder so einfach, dass es offensichtlich keine Fehler gibt. — Sir Charles Antony Richard Hoare
Das Problem bei der Softwareentwicklung ist oft, dass man versucht zu viel in die Zukunft zu schauen und generischen Lösungen einfacheren vorzieht. Dadurch entsteht Software die unnötig komplex ist und oft wird die generische Lösung dann nie gebraucht. Aber das schöne an Software ist doch, dass sie leicht änderbar ist. Stellt man fest, dass man eine Lösung auch an anderer Stelle benötigt kann man sie doch immer noch generisch machen.
The First Rule of Program Optimization: Don’t do it. The Second Rule of Program Optimization (for experts only!): Don’t do it yet.“ — Michael A. Jackson
Das Problem mit Optimierungen ist ähnlich wie bei der Erweiterbarkeit von Software. Man arbeitet dabei immer an der falschen Stelle. In den seltensten Fällen setzt man dabei den Hebel richtig an. Es gibt hier eine Ausnahme – wenn ein Programm aus Performancegründen nicht mehr seinen Anforderungen entspricht, so kann man einen Profiler ansetzen um den Grund dafür herauszufinden. Meist ist das Ergebnis dabei anders als erwartet.
Der Programmierer ist wie der Gladiator – er trifft seine Entscheidungen in der Arena — Helmut Herold
Ich hatte im Studium viele Vorlesungen zum Thema Softwareengineering und habe zu dieser Zeit auch viele Bücher zum Thema gelesen. All dies hatte zum Inhalt Software zuerst mit Hilfe von Anforderungen und UML-Diagrammen zu spezifizieren, bevor mit dem Programmieren begonnen werden kann. Ich dachte damals es wird von mir erwartet, dass ich Software auf diese Weise entwickle und nicht wie früher einfach drauf los programmiere. Heute programmiere ich wieder so wie früher und bin sehr glücklich und auch erfolgreich damit. UML-Diagramme lassen sich besser aus Code erzeugen als Code aus Diagrammen und ich denke daran wird sich auch so schnell nichts ändern 🙂
Passend zum Thema:
There is no silver bullet — Fred Brooks
Reicht für heute. Mir fällt bestimmt noch was ein