Hallo, ich habe mir neulich Gedanken gemacht, wie andere Entwickler sich die Arbeit an mehreren Projekten strukturieren, dokumentieren für spätere Anpassungen bzw. Erweiterungen.
Ein Beispiel es wird aktuell am Projekt A gearbeitet, nun soll ein älteres Projekt Z angepasst werden. Hier kommt der Punkt, an dem sich der Entwickler wieder in das alte Projekt einarbeiten muss. Hierbei kann es sich auch um komplexere Änderungen handeln.
--> An dieser Stelle wollte ich von erfahreneren Entwicklern Tipps und Arbeitsmethoden hören, wie geht ihr damit um, welche Arbeitsmethoden habt ihr? Habt ihr jedes Projekt dokumentiert oder wie kommt ihr sofort in die Materie rein? Wird die Produktivität verbessert oder verschlechtert?
Hoffe auf paar Anregungen und Tipps von euch 😃
Naja schwierige Frage. Es gibt ja unterschiedliche Codequalitäten. Und wenn ich halt ne Quelldatei aufmache und auf der ganzen Seite kein grün sehe wird mir schon schlecht. Dann gibt es noch so Spezialisten die so wunderbare Konstrukte fertig bekommen wie:
int a, f, e ,k;
var x = D(object z);
In solchen Fällen bleibt einem eigentlich nichts anderes übrig wie Ärmel hoch und auf ins Debugging.
Wir verwalten unseren Code im TFS, dort hast du die Möglichkeit Check-Ins zu kommentieren und an Isssiues zu binden, zu branchen und gleich eine Doku und die Designdokumente (Spez, Klassendiagramme, Anforderungen, UseCases) mit zu pflegen. Wenn es dann noch Unittests gibt, ist die Welt in Ordnung. Aber das beste System bringt dir nichts wenn die Informationen nicht gepflegt werden...
Nachtrag:
Ich verwalte alle Projekte für mich selbst nebenbei noch in einem OneNote-Notizbuch auf einem Share. In dem werden sämtliche Entscheidungen (sei es in einer Besprechung, Telefon oder allein getrofffen) mit Begründung eingetragen. So kann ich jederzeit nachvollziehen was, wann, wieso so implementiert wurde.
Aber das beste System bringt dir nichts wenn die Informationen nicht gepflegt werden...
Genau du bringst es auf den Punkt! Welche Tipps habt um die Informationen zu sichern, mit welchen Tools arbeitet Ihr? Lassen sich hierfür auch Brainstorming Tools ala MindManager verwenden um die Informationen zu strukturieren?
Hallo #coder#,
Aber das beste System bringt dir nichts wenn die Informationen nicht gepflegt werden...
es gibt da zwei Ebenen: die übergreifende Architektur und die vielen Einzelentscheidungen.
Wenn man in ein unbekanntes Projekt einsteigen will, ist es natürlich sehr hilfreich, wenn man eine gute und aktuelle Architekturdoku hat. Allerdings ist es leider sehr verbreitet, dass die Architekturdoku - sofern es sie überhaupt gibt - veraltet ist, weil sie nicht gepflegt wird. Für dieses Problem habe ich selbst keine gute Lösung parat. Die Alternative, eine Architekturdoku direkt aus dem (aktuellen) Code zu erzeugen, bringt auch nicht soviel, weil sie allenfalls schematisch die Struktur und die Abhängigkeiten wiedergibt, aber nicht die Entwurfsentscheidungen und den Sinn hinter alldem.
Die vielen Einzelentscheidungen gehören aus meiner Sicht als Kommentare in den Code. Je näher an der betroffenen Codestelle, desto besser. Nur so besteht eine ausreichend hohe Chance, dass sie bei Änderungen am Code konsistent aktualisiert werden. Dokumentiert sollte werden, warum etwas passiert. Was passiert, ist bei gutem, sprechendem Code ohne Kommentare zu erkennen.
herbivore