96 Punkte von xguru 2024-03-04 | 7 Kommentare | Auf WhatsApp teilen

Entwicklung

  • Klein anfangen und dann erweitern: Wenn man ein neues System baut oder einem bestehenden System Funktionen hinzufügt, sollte man mit einer sehr einfachen Version beginnen, die fast keine benötigten Funktionen enthält, und sie dann schrittweise ausbauen
  • Immer nur eine Änderung auf einmal: Wenn während der Entwicklung Tests fehlschlagen oder eine Funktion nicht funktioniert, ist das Problem viel leichter zu finden, wenn man immer nur eine Änderung auf einmal vorgenommen hat
  • Logging und Fehlerbehandlung früh hinzufügen: Beim Entwickeln eines neuen Systems ist es hilfreich, Logging und Fehlerbehandlung von Anfang an einzubauen
  • Jede neue Codezeile sollte mindestens einmal ausgeführt werden: Man sollte testen, bevor eine Funktion als fertig gilt
  • Teile testen, bevor man das Ganze testet: Gut getestete Teilbereiche sparen Zeit
  • Alles dauert länger als gedacht: Besonders beim Programmieren dauert alles länger als erwartet
  • Zuerst den bestehenden Code verstehen: Bevor man neue Funktionen hinzufügt, muss man die aktuelle Lösung verstehen. Code zu lesen ist eine ebenso wichtige Fähigkeit wie Code zu schreiben
  • Lesen und ausführen: Es gibt zwei sich ergänzende Wege, Code zu verstehen: ihn zu lesen und ihn auszuführen

Problemlösung

  • Bugs gibt es immer: Der Ansatz „von Anfang an richtig“ ist keine gute Herangehensweise
  • Problemberichte bearbeiten: Entwickler sollten Zeit darauf verwenden, Problemberichte von Kunden zu bearbeiten und Bugs zu beheben. Dadurch versteht man viel besser, was Kunden erreichen wollen, wie das System genutzt wird, wie leicht oder schwer Probleme zu lösen sind und wie gut das System entworfen ist
  • Probleme reproduzieren: Der erste Schritt beim Beheben eines Bugs ist, das Problem zu reproduzieren. Danach prüft man, ob das Problem nach dem Einspielen der Korrektur verschwunden ist
  • Nach dem Beheben bekannter Fehler prüfen, was übrig bleibt: Wenn mehrere Probleme vorhanden sind, behebt man zunächst alle bekannten Probleme und schaut sich dann die verbleibenden Symptome an
  • Nicht von Zufällen ausgehen: Beim Testen und Troubleshooting sollte man nicht an Zufälle glauben, sondern nachforschen. „Ich habe den Timer-Wert geändert, und jetzt startet das System häufiger neu — das ist kein Zufall. Es wurde eine neue Funktion hinzugefügt, und jetzt ist eine scheinbar nicht zusammenhängende Funktion langsamer? Kein Zufall. Weiter untersuchen.“
  • Mit Zeitstempeln korrelieren: Beim Troubleshooting sollte man die Zeitstempel von Ereignissen nutzen

Zusammenarbeit

  • Persönlich vor Ort hat die höchste Bandbreite: Wenn man bespricht, wie ein Problem gelöst werden soll, ist ein persönliches Gespräch besser als alle anderen Methoden (Video, Telefon, Chat, E-Mail)
  • Rubber-Duck-Debugging: Wenn man bei einem Problem feststeckt, kann es helfen, einem Kollegen das Problem zu erklären, weil einem dabei die Lösung klar wird. Selbst wenn der Kollege nichts sagt, erkennt man im Gespräch oft, worin das Problem liegt. Es klingt magisch, funktioniert aber erstaunlich oft
  • Fragen: Beim Verstehen von Code sind Lesen und Ausführen oft sehr gute Methoden. Wenn es aber möglich ist, jemanden zu fragen, der sich damit auskennt (wahrscheinlich den ursprünglichen Autor), sollte man auch das nutzen
  • Anerkennung teilen: Anerkennung sollte dort gegeben werden, wo sie hingehört. Statt „Wir haben ... ausprobiert“ sollte man sagen: „Marcus hatte die Idee, das auszuprobieren.“ (wenn es so war). Erwähne aktiv, wer geholfen oder beigetragen hat

Sonstiges

  • Einfach ausprobieren: Wenn man sich nicht sicher ist, wie ein Sprachfeature funktioniert, sollte man ein kleines Programm schreiben und es testen
  • Schlafen: Wenn man vor einem schwierigen Problem steht, ist es gut, vor einer Entscheidung eine Nacht darüber zu schlafen
  • Veränderung: Man sollte keine Angst davor haben, gelegentlich die Rolle oder den Job zu wechseln. Mit anderen Menschen, an anderen Produkten oder in anderen Unternehmen zu arbeiten, ist anregend
  • Weiter lernen: Einer der größten Vorteile der Softwareentwicklung ist, dass es immer Raum gibt, noch mehr zu lernen und zu verstehen. Probiere verschiedene Programmiersprachen und Tools aus, lies Bücher über Softwareentwicklung und belege MOOC-Kurse. Kleine Verbesserungen summieren sich und verändern Wissen und Fähigkeiten spürbar

7 Kommentare

 
ohyecloudy 2024-03-07

Persönlicher Kontakt hat die höchste Bandbreite – eine hervorragende Formulierung.

 
askurios8 2024-03-06

+1.

 
bluekai17 2024-03-05

Rubber-Duck-Debugging. Sogar wenn man es jemandem erklärt, der Programmieren nicht wirklich versteht, erkennt man oft, wo das Problem liegt.

 
bohblue23 2024-03-04

+1.

 
ep6tri 2024-03-04

Das sind wirklich goldene Regeln.

 
tested 2024-03-04

+1 

 
bichi 2024-03-04

Wow, das sind wirklich alles gute Worte. Schade, dass persönliche Begegnungen die höchste Bandbreite haben. Ich hoffe, die Technik entwickelt sich noch weiter.