Quellcode-Übergabeplan vorbereiten [geschlossen]

12

Unsere Firma ist dabei, einen Quellcode eines riesigen Produkts zu erwerben.

Was ist zu beachten, wenn die Übergabe beginnt, um sicherzustellen, dass wir alles haben und in der Lage sind, dieses Produkt in Zukunft zu warten?

Ahmed Aswani
quelle
1
Wenn möglich, fordern Sie die Anschaffung für einige der an dem Projekt beteiligten Ingenieure an. Dies hilft beim Problem der Ressourcenkontinuität.
tehnyit
Wir haben nicht genug Glück. Wir können das nicht tun. Das Maximum, was wir tun können, ist, einen Ingenieur für 3-4 Wochen zur Verfügung zu stellen.
Ahmed Aswani
Ich habe eine verwandte Antwort gefunden, die meiner Meinung nach die meisten Antworten hier unten vervollständigt.
Ahmed Aswani

Antworten:

8

Erstens viel Glück.

Hier sind einige der Dinge, nach denen Sie wahrscheinlich fragen sollten.

  • Liste bekannter Mängel.
  • Liste der Ereignis- und Problemaufzeichnungen.
  • Details zu den letzten beiden Veröffentlichungen mögen; Wie lange hat die Implementierung gedauert? Gab es nach der Veröffentlichung mehr Vorfälle?
  • Wer sind die wichtigsten Fachexperten?
  • Wie sind die Öffnungszeiten und der primäre Support?
  • Wie lange existiert das Produkt und wie stabil ist die Codebasis?
  • Was ist die Produkt-Roadmap?
  • Was ist der Technologie-Stack?
  • Was sind die Integrationspunkte und wer unterstützt die integrierten Systeme?
  • Gibt es DR-Komponenten?
  • Wer ist für den Aufruf von DR verantwortlich?
  • Was sind die Anwendungs-SLAs oder Service-Ziele?
  • Was ist das erwartete Wachstum der Dateisystem- / Datenbank- / Nachrichtenwarteschlangen?
  • Wann werden Systemsicherungen durchgeführt, wer ist verantwortlich und wie sieht die Wiederherstellungsstrategie aus?
  • Wer ist für die Verwaltung des Produkt-Backlogs verantwortlich?
  • Welche Lieferanten-SLA und Kontaktdaten sind vorhanden?
  • Gibt es Batch-Pläne oder lang laufende Prozesse?
  • Ist das System vollständig transaktionell und wie wird die Parallelität verwaltet?
  • Was ist der wichtigste Incident-Management-Prozess für die Anwendung?
  • Was, wann, wer und wie werden die Stakeholder über Änderungen und Ausfälle informiert?
  • Was sind die vereinbarten Ausfallzeiten?
  • Wo wird der Quellcode aufbewahrt?
  • Wie wird der Quellcode gesichert, wiederhergestellt und das Änderungsprotokoll verwaltet?
  • Wo, was und wem gehört die Lösungsarchitektur.
  • Was ist das Bereitstellungsziel (DEV, ST, UAT, Pre PROD, PROD, DR).
  • Wann werden die Lizenzen von Drittanbietern erneuert?
  • Gibt es eine RACI-Tabelle?
  • Wie viele Benutzer gibt es und wo befinden sie sich?
  • Was sind die häufigsten Probleme oder Beschwerden bei der Fehlerbehebung?
  • Wer ist für die Gewährung des Systemzugriffs verantwortlich?
  • Wann werden Tests / Sicherheitsaudits durchgeführt?
  • Wo ist das CI und der automatisierte Erstellungsprozess?
  • Wer ist für die Verwaltung der Quellcodeverwaltung und des Buildservers verantwortlich?
  • Wo befinden sich die Installationsanleitungen?
  • Gibt es eine Dokumentation für die Zielinfrastruktur und das Netzwerk?
  • Welche Art von Schweregrad und Auswirkung haben die jüngsten Vorfälle gehabt?
  • Gibt es Anweisungen zum Einrichten der Entwicklerarbeitsstation?
    • Welche Entwicklungshilfen und Frameworks werden verwendet und sind sie für Ihr Team lizenziert?

Das ist ungefähr alles, woran ich im Moment denken kann.

Kane
quelle
8
Bitte definieren Sie "DR", "DEV", "ST", "UAT", "Pre PROD", "PROD", "DR" und "RACI". Beachten Sie, dass ein Teil davon für den Quellcode irrelevant ist (dh, RACI-Diagramme sind organisatorisch und beziehen sich überhaupt nicht auf den Code.)
S.Lott
Ich hätte gerne Zugriff auf das Quellcode-Repository von whoel, nicht nur auf die aktuellen Versionen des Quellcodes. Die Kommentare in diesem Artikel zeigen oft an, warum der Code auf eine bestimmte Weise geändert wurde. Das ist wichtig, um es aufrechtzuerhalten.
HLGEM
@HLGEM sorry meine aussage zu den aktuellen versionen des quellcodes impliziert (naja für mich jedenfalls) den vollständigen quellcode für alle komponenten.
Kane
@ S.Lott DR wird verwendet, um "Disaster Recovery" zu beschreiben. Dev ist eine gebräuchliche Bezeichnung für die "Entwicklungsumgebung", unabhängig davon, woraus sich Ihre Umgebung zusammensetzt. ST ist eine Abkürzung für System Testing Environment. Ich stimme nicht zu, dass RACI ein organisatorisches Instrument ist, da es verwendet wird, um zu beschreiben, wer verantwortlich, rechenschaftspflichtig, informiert und konsultiert ist. Wenn also Code festgeschrieben wird, wer ist dafür verantwortlich? Wer wird im Rahmen eines Peer Reviews konsultiert? Wer wird informiert, dass ein Build erfolgreich war / fehlgeschlagen ist? Und so weiter
Kane
@kame: Bitte aktualisieren Sie die Antwort mit den Definitionen. Bitte fügen Sie der Antwort noch keine Kommentare hinzu. Bitte aktualisieren Sie die Antwort.
S.Lott
6

Was ist zu beachten, wenn die Übergabe beginnt, um sicherzustellen, dass wir alles haben und in der Lage sind, dieses Produkt in Zukunft zu warten?

Die Dinge, die Sie sicherstellen sollten, sind:

  • Sie sehen, dass sie den Code erfolgreich erstellen
  • Sie sehen, wie sie Komponententests erstellen und alles schaffen
  • Sie sehen, wie sie andere Tests erfolgreich ausführen und alle bestanden haben (Akzeptanz, Integration usw.)
  • Sie erhalten die Datenbank offener Probleme (leicht zu bekommen, wenn sie Bugzilla oder ähnliches verwenden)
  • Das Produkt läuft (Installationsanleitung).

Alles andere ist Sache des derzeitigen Betreuers.

BЈовић
quelle
2
Ich würde vorschlagen, dass diese so geändert werden, dass sie die Wörter "Sie müssen sie sehen ..." enthalten, z.
S.Lott,
@S.Lott Ob sie zeigen oder in ein Dokument schreiben, sollte es egal sein. Ahmed Aswani und sein Team werden die Anwendung warten und sollten in der Lage sein, alle oben genannten Schritte selbst auszuführen. Ich habe die Antwort ein wenig geändert, bin mir aber nicht sicher, ob Sie dies vorgeschlagen haben.
BЈовић
1
Eine Behauptung, dass der Code erstellt wird, ist nicht dasselbe, als dass der Code tatsächlich erstellt wird. War dort. Habe das gemacht. Die Dokumentation kann vage, verwirrend oder unvollständig sein. Es ist das alte "Trust but Verify" -Prinzip. Glaube es nicht, bis du es siehst.
S.Lott
1
@S.Lott Ok macht Sinn. Jetzt, wo ich darüber nachdenke, war ich vorher in einer ähnlichen Situation, in der wir etwas auf kaputten HW-Boards implementieren mussten. Wir haben gute 4 Monate damit verbracht herauszufinden, was wirklich falsch ist.
BЈовић
5

Sie müssen sicherstellen, dass das Team, das den Code aushändigt, für einen bestimmten Zeitraum Support leistet. Machen Sie einen unterschriebenen Vertrag!

Sie werden später Fragen haben, von denen Sie nicht gewusst haben, dass Sie sie im Voraus stellen müssen. Sie müssen sich also "aufhalten", um Dinge zu erklären, und nicht nur den Code, die Dokumente und alles, was sie im Projekt haben.

Wenn Sie eine Projektübergabe haben, verlieren Sie eine wichtige Sache: die ursprüngliche Teamerfahrung.

Manchmal bekommt man auch etwas, was man nicht erwartet hat: ihre Feindseligkeit.

Bekommt die Firma, die die Übergabe durchführt, ein gutes Geschäft mit der Übergabe? Wenn sie ihr Geschäft verlieren, weil sie das Projekt an Sie weiterleiten, können die (stolzen) Entwickler, die den Code erstellt haben, die Tatsache übel nehmen, dass ihr "Baby" verschenkt wird. Möglicherweise erhalten Sie Antworten wie: "Es ist in den Dokumenten, die Sie haben" ... auch wenn dies nicht der Fall ist.

Technische Aspekte lassen sich gut abdecken, berücksichtigen aber auch die menschliche Seite.

YMMV!

JohnDoDo
quelle
0

Kommt der Code mit einer Testsuite? Bestehen alle Tests in der Testsuite? Wie viel Abdeckung hat die Suite?

Ich würde empfehlen, dass Sie, wenn Sie eine Testsuite verpassen, die Erstellung der Testsuite und des zugehörigen Frameworks zu Ihrer ersten Priorität machen.

Blaubeerfelder
quelle