Projekt eingefroren - was soll ich den Leuten nach mir überlassen?

14

Das Projekt, an dem ich gearbeitet habe, wird nun auf unbestimmte Zeit eingefroren. Wenn das Projekt erneut einfriert, wird es möglicherweise weder mir noch jemandem aus dem aktuellen Team zugewiesen. Eigentlich haben wir das Projekt geerbt, nachdem es zuvor eingefroren worden war, aber das vorherige Team hat uns nicht dabei geholfen, die Grundbedürfnisse des Projekts zu verstehen, sodass wir viel Zeit damit verschwendet haben, das Projekt gut kennenzulernen. Meine Frage ist, was wir Ihrer Meinung nach tun sollten, um den Menschen nach uns zu helfen, die Bedürfnisse des Projekts, das, was wir getan haben, warum wir es getan haben usw. besser zu verstehen. Ich bin offen für andere Ideen, warum wir gehen sollten einige Tracks zu den anderen, die auch an diesem Projekt arbeiten werden.

Einige Schritte, die wir bereits unternommen haben:

  • technische Dokumentation (nicht vollständig, aber zumindest einige);
  • Versionsverwaltungssystem-Historie;
  • Einschätzungen darüber, welche Teile des Projekts verbesserungsbedürftig sind und warum wir dies glauben;
  • Reihe von Unit-Tests.
  • Issue Tracker mit allen Tickets, die wir gemacht haben ( EDIT )

Was halten Sie von dem, was wir bereits vorbereitet haben und was wir sonst noch tun können?

Nyxz
quelle
2
Betrachten wir ein einfach abrufen Liste der Tickets in Tracker Ausgabe Zusammenhang mit dem Projekt
gnat
1
Möglichst viele der "Warum?" - Antworten in README.TXT mit den Projektquellen .
@gnat danke für die idee. Es erinnerte mich daran, dass ich vergessen hatte, es zu erwähnen. Wir verwenden Issue-Tracker für alle Tickets. Ich werde es der Liste hinzufügen.
Nyxz
1
Ich vergieße eine einzige Träne der Solidarität für Ihre verlassene Codebasis. zdnet.com/blog/projectfailures/…
Ben DeMott

Antworten:

9

Noch ein paar Dinge zu beachten

  • Ist die Projektverzeichnisstruktur korrekt? Haben Sie die Codekommentare überarbeitet? Ist das Festschreibungsprotokoll irgendwie darstellbar?
  • Allgemeiner Zwecküberblick (im Gegensatz zu dem von Ihnen gestarteten technischen Zweck), Beratung zum Projekt, Projektverlauf (Entwicklungszyklus, frühere Projektmanager, Liste der Mitarbeiter, Anforderungen / Leistungsmerkmale)
  • UML-Diagramme, Klassendiagramme, Arbeitsablaufdiagramme!
  • Gründe, warum das Projekt eingefroren wurde, sind immer schön.
  • Entwicklungsumgebung, verwendete IDEs, Build-Tools, diese werden in den technischen Dokumenten behandelt, oder?

Ich habe nur an einige Dinge gedacht, die ich gerne in einem Projekt gesehen hätte, das ich kürzlich geerbt habe. Was Sie bereits zur Verfügung gestellt haben, ist um einiges mehr als das, was ich bekommen habe. Sie erhalten wichtige Karma-Punkte, wenn Sie dem nächsten Team helfen :)

lwm
quelle
8

Die Dinge, die ich haben möchte, wenn ich ein Projekt aufgreife, das jemand anderes niedergelegt hat, sind:

Erstellen Sie Anweisungen, einschließlich der letzten bekannten Arbeitsversionen aller Tools in der Toolchain. Compiler, IDEs usw. ändern sich im Laufe der Zeit und es ist viel einfacher, mit ihnen zu arbeiten, wenn die vorherigen Entwickler mir Anweisungen zur Inbetriebnahme geben.

Umgebungsbefehle ausführen - Was muss vorhanden sein, um dieses Ding auszuführen? Eine Erwähnung welcher Versionen ist wieder hilfreich. Ich habe kürzlich etwas gefunden, das bestimmte Dateien an einem bestimmten Ort benötigt, und ich musste die anderen Entwickler befragen, um es herauszufinden. Keine große Sache, da der andere Entwickler verfügbar war, aber wenn er es nicht getan hätte, wäre es problematisch gewesen.

Eine gewisse Sicherheit, dass der Code, der für das Repository festgeschrieben wurde, tatsächlich ausgecheckt und erstellt wird. Ich habe einmal ein Projekt aufgegriffen, bei dem die vorherigen Entwickler (zum Glück immer noch) einige wirklich seltsame Dinge mit den Makefiles gemacht hatten, sodass Sie das Projekt nicht von einer sauberen Kasse aus erstellen konnten. Unnötig zu erwähnen, dass ich das zuerst korrigieren musste, bevor ich überhaupt arbeiten konnte. Wären die vorherigen Entwickler nicht verfügbar gewesen, hätte es möglicherweise viel länger gedauert, diese Hürde zu überwinden.

Eine allgemeine Aussage über die Absicht des Projekts. Wozu dient diese Software? So kurz wie sinnvoll, aber eine Art Überblick kann wirklich hilfreich sein.

Michael Kohne
quelle
+1 für die gesamte Toolchain. Die gesamte Dokumentation der Welt hilft nicht, wenn Sie die Software nicht erstellen und testen können. Wenn möglich, möchte ich die Installationsimages für alle Tools einbinden (obwohl ich heutzutage wahrscheinlich ein VM-Image wählen würde). Nichts Schlimmeres als das Herausfinden des Build-Prozesses hängt von einem Plug-In eines Drittanbieters ab, das nicht mehr existiert!
TMN
@TMN - und deshalb neige ich dazu, Dinge wie kommerzielle IDE-Plugins und so weiter zu meiden. Ich vertraue nicht darauf, dass ich meine Umgebung später reproduzieren kann. Und nachdem ich an über 20-jähriger Software gearbeitet habe, gehe ich NIEMALS davon aus, dass jemals etwas verloren geht.
Michael Kohne
4

Ein ScreenCast

Als ich meinen letzten Job verließ, machte ich eigentlich unbearbeitete Screencasts, die, wie ich gehört habe, sehr hilfreich waren, um neue Leute zu gewinnen. Ich nahm mein Team in einen Raum, stellte ein Kondensatormikrofon auf und erklärte ihnen alles, was ich über das Projekt wusste, während ich Audio und Bildschirm aufzeichnete. Dann lasse ich mich fragen. Wir könnten viel mehr Informationen aufzeichnen als wir, wenn ich mich hinsetze und versuche, so schnell ich kann den ganzen Tag zu tippen.

Ryan Hayes
quelle
+1 Das ist so einfach, macht aber so viel Sinn.
Lwm
2

Wenn Sie mit den Informationen vertraut sind, fügen Sie Geschäftsanforderungen hinzu.

  1. Was wollte der Kunde?
  2. Wie haben die Änderungen das ermöglicht?
  3. Was waren oder sind einige der Herausforderungen bei der Erfüllung der Kundenbedürfnisse?
  4. Welche Bedürfnisse wurden nicht erfüllt und warum?
Menefee
quelle
1

Ein virtuelles Maschinen-Image (dh vm-ware) eines eigenständigen Entwicklungssystems kann sehr wertvoll sein.

Letztes Jahr wurde ich gebeten, etwas vb3-Code zu reparieren. Es war ziemlich schwierig, ein lauffähiges System mit vb3, windows95 und vielen installierten Ole-Controllern neu zu erstellen. Nach einer Woche habe ich aufgegeben :-(

[Update] Hat jemand Erfahrung mit der Konvertierung alter Images von virtuellen Maschinen, damit diese in einem neueren Player für virtuelle Maschinen abgespielt werden können?

Sie müssen auch berücksichtigen, dass es möglicherweise nicht mehr möglich ist, ein sehr altes Image auf einer modernen Hardware / einem Gastbetriebssystem auszuführen.

k3b
quelle
Öffnen Sie möglicherweise eine neue Frage zum Aktualisieren virtueller Maschinen.
@ Thorbjørn Ravn Andersen. Du hast recht. Ich habe den letzten Teil meiner Antwort umformuliert.
k3b