Die Bevorzugung von Throwaway Code gegenüber Designdokumenten
(softwaredoug.com)-
Wir stellen uns vor, dass Softwareentwicklung einem sauberen, geordneten Ablauf folgt
- Man schreibt ein Designdokument und rollt kleine Änderungen per PR aus, um eine Funktion zu implementieren
- Die Git-Historie wirkt sauber und ordentlich
- Aber die Realität ist anders
-
Der Unterschied zwischen Designdokumenten und der tatsächlichen Implementierung
- Ein Designdokument exakt umzusetzen, ist eine Illusion
- Sobald man mit dem Coden beginnt, überarbeitet man den Inhalt des Designdokuments
- Kein Plan überlebt den ersten Kontakt mit dem Gegner
-
Eine neue Design-Methodik: Eintauchen ins Coden
- Mit einem Draft-PR wird ein Prototyp implementiert
- Früh Feedback einholen und den Ansatz anpassen
- Den Draft-PR als Dokumentation historischer Designideen nutzen
- Bereit sein, den Draft-PR komplett zu verwerfen
- Vom Draft-PR schrittweise zu gestuften PRs übergehen
- Jeden PR schrittweise testen und die Robustheit verbessern
-
Die Bedeutung von Reife
- Die Fähigkeit, eine gecodete Idee zu verwerfen, ist wichtig
- Wichtiger als Codezeilen ist die Weitergabe von organisatorischem Wissen
- Frühzeitig Einigkeit über die wichtigen Punkte herstellen, damit Prototyp-Arbeit nicht verschwendet wird
-
Wie man PRs als Dokumentation nutzt
- PRs sind eine der besten Formen der Dokumentation für Entwickler
- PRs sind historische Artefakte, die den Zustand zu einem bestimmten Zeitpunkt widerspiegeln
- Designdokumente liefern oft Informationen, die nicht mit der Realität übereinstimmen
-
Die Bedeutung von Prototypen
- Ein Prototyp ist mehr wert als 1000 Designdokumente
- Wer Veränderungen vorantreiben will, muss das mit Code tun, nicht mit Dokumenten
- Eine Organisation sollte Prototypen als Frage und nicht als Antwort betrachten
-
Die Nützlichkeit von Designdokumenten
- Sie sind nützlich, um Feedback mit verschiedenen Stakeholdern zu organisieren und zu archivieren
- Sie sind nützlich, wenn eine Idee zu konzeptionell oder zu langfristig ist
- Sie sind nützlich, wenn es effizienter ist, Ideen schriftlich statt durch Coden auszudrücken
- Sie sind nützlich, wenn einer Organisation die Disziplin fehlt, die erste Lösung zu verwerfen
- Sie bieten ein Umfeld, in dem Junior-Mitarbeiter die Ideen von Senior-Entwicklern sicher hinterfragen können
-
Der falsche Einsatz von Designdokumenten
- Sie werden eingesetzt, um den Prozess für weniger erfahrene Entwickler zu verlangsamen
- Sie werden als Dokumentation verwendet, veralten aber schnell
- Sie sollen alle Designprobleme lösen, doch die eigentlichen Probleme werden beim Coden entdeckt
-
Wenn ein Team Disziplin haben kann, ist Hacking deutlich effizienter als Design
- Es wird empfohlen, eine solche Disziplin in der Organisation zu etablieren
- Am Ende hat Code mehr Durchschlagskraft als Worte
1 Kommentare
Hacker-News-Meinungen
Prototyping ist ein wichtiger Teil des Designprozesses, und es ist notwendig, das Problem zu definieren und die Lösung klar herauszuarbeiten
Schreiben ist nützlich, um ein Problem zu erkunden; manche haben erlebt, dass beim Schreiben neue Fragen aufkamen, obwohl sie dachten, das Problem bereits verstanden zu haben
Manche haben die Erfahrung gemacht, provisorische Lösungen zu verwenden, um ein Projekt rechtzeitig abzuschließen
Das größte Problem von Design-Dokumenten ist, dass sie niemand liest
Es gibt einen großen Unterschied zwischen Feedback zu Code und zu Design
Wenn die Stellenbeschreibung darin besteht, viel Code zu schreiben, um zu sehen, was funktioniert, könnte GPT das schneller und günstiger ersetzen
Kaum jemand stellt sich vor, dass Softwareentwicklung einem sauberen und geordneten Ablauf folgt
Manche haben schon gesehen, dass Code sich wie bei Jenga auftürmt, sodass ihn niemand anfassen möchte
Bevorzugt wird ein Prozess, bei dem fortlaufende Kommentar-Threads zur Dokumentation von Design-Entscheidungen genutzt werden
Über diesen Ansatz wird noch nachgedacht, und im schlimmsten Fall kann viel Zeit verschwendet werden