Vor ungefähr 3 Monaten hat unser führender Webentwickler und Designer (dieselbe Person) das Unternehmen verlassen. Grüne Weiden waren der Grund für das Verlassen. Gut für sie, sage ich. Mein Problem ist, dass seine Abteilung völlig undokumentiert war. Die Dinge waren schwierig, seit der Lead gegangen ist. Es gibt viel Wissen, sowohl theoretisches Wissen, das wir verwenden, um neue Projekte zu zitieren, als auch technisches Wissen / Implementierungswissen über unsere bestehenden Produkte, das wir durch seine Abreise verloren haben. Meine normale Rolle ist als Produktmanager (für unsere Produkte selbst) und als Geschäftsanalyst für einige unserer projektbasierten Beratungsarbeiten. Ich habe mir im letzten Jahr das Codieren beigebracht und bin bestrebt, mich weiterzuentwickeln. ' Ich habe es mir zur Aufgabe gemacht, meinen Laptop als Entwicklungsmaschine einzurichten, in der Hoffnung, einige der einfacheren Funktionsanforderungen zu implementieren und einige der einfachen Fehler zu beheben, die in unser Ticketingsystem übertragen werden. Aber niemand weiß, wie man einen neuen Windows-Computer so konfiguriert, dass er nahtlos mit unseren Produktions-Apps zusammenarbeitet.
Ich habe meinen Chef, der immer noch mit dem Entwickler in Kontakt steht, gebeten, einen Prozess zu dokumentieren und zu erstellen, um einen neuen Entwickler zu integrieren, eine Softwareinstallation, erforderliche Pakete, einen Prozess für die Bereitstellung auf den Anwendungsservern der Produktionen usw. Keine Das gibt es und ich drehe meine Räder, um meinen Computer als funktionale Entwicklungsmaschine zum Laufen zu bringen. Aber sie scheint die Notwendigkeit eines solchen Prozesses nicht zu verstehen. Anscheinend hat der neue Entwickler, der den verbleibenden ersetzt hat, einen Computer verwendet, der für unsere Umgebung vorkonfiguriert war, sodass selbst der neue Entwickler keinen neuen Computer einrichten konnte, wenn wir einen anderen Entwickler hinzufügten.
Meine Frage besteht aus zwei Teilen:
Bin ich falsch, wenn ich davon ausgehe, dass ein Prozess zur Integration und Konfiguration eines neuen Computers als Teil unseres Entwicklungs-Ökosystems existieren sollte?
Bin ich ein wieherndes Baby und sollte ich den Prozess herausfinden und selbst ein Dokument erstellen?
quelle
Antworten:
Zunächst ist es seltsam, dass ein Entwickler die Arbeitsumgebung einrichten muss. Diese Aufgabe ist normalerweise für Systemadministratoren vorgesehen. Wenn Sie also berücksichtigen, dass Sie dies überhaupt nicht tun sollten, haben Sie das Recht, von jemand anderem zu erwarten, dass er dies für Sie tut.
In den meisten (wenn nicht allen) Unternehmen gibt es eine Kündigungsfrist. Sie reicht normalerweise von einer Woche bis zu einem Monat. Trotzdem reicht diese Zeit für die Person aus, die das Unternehmen verlässt, um Dokumentation zu erstellen, Kommentare zum Code hinzuzufügen, die Architektur zu dokumentieren usw. Ich fürchte, es ist zu spät, dies jetzt zu tun, aber vergessen Sie es nicht das nächste Mal geht jemand.
Sie können zu Recht davon ausgehen, dass es einen Prozess zum Einrichten einer neuen Umgebung geben sollte. Wenn Ihr Unternehmen wächst und Sie mehr Entwickler haben, stehen Sie vor dem gleichen Problem - dies könnte ein schweres Argument sein, um Ihren Chef zu überzeugen. Sie könnten das Argument sogar verwenden, um das Management davon zu überzeugen, einen Systemadministrator für solche Aufgaben einzustellen (ich gehe davon aus, dass Sie keinen haben, da Sie mit dem Problem konfrontiert sind). Wenn Sie eine neue Maschine haben, müssen Sie neben der Einstellung der Entwicklungsumgebung diese auch in das lokale Netz usw. integrieren.
quelle
Mit diesen Prozessen werden die Probleme vermieden, mit denen Sie bereits konfrontiert sind. In einigen größeren Organisationen gibt es ein Standard-Disc-Image, wie der Computer eines Entwicklers aussehen sollte. Wenn ein neuer Entwickler eingestellt wird, wird ein verfügbarer Computer mit den richtigen Hardwarespezifikationen gelöscht und mit diesem "Entwickler" -Disc-Image neu abgebildet. Auf eine Standard-Checkliste (manchmal auch die Installation von Post-Imaging-Software für bestimmte Tools, die nicht im Image enthalten sind) folgen die Techniker, die dies tun, um sicherzustellen, dass alle Entwicklercomputer auf die gleiche Weise starten (Benutzer können sie nach dem Erhalt optimieren und ändern sie - auf eigene Gefahr!).
In ähnlicher Weise verfügen einige Anwendungen mit notorisch komplexem Setup über Dokumente, in denen neuen Entwicklern erklärt wird, wie der Code ausgecheckt, der Server konfiguriert und die Anwendung erstellt und lokal bereitgestellt wird. Eine Anwendung verfügt sogar über ein Setup-Skript nur für Workstations, um diesen Vorgang zu vereinfachen.
Sie sind, aber nur ein bisschen. Es ist eine Sache zu sagen, dass dies alles schon vor langer Zeit dokumentiert werden sollte, und der Entwickler, der gegangen ist, sollte einen vollständigen Wissenstransfer zu seinen Ersatztagen (oder Wochen, wenn möglich) durchgeführt haben, bevor er gegangen ist. Es hört sich so an, als wäre nichts davon passiert, und jetzt ist sowieso alles in der Vergangenheit.
So was jetzt? Ich bezweifle, dass der Entwickler, der gegangen ist, eine große Hilfe sein wird. Sie haben bereits einen neuen Job und wer weiß, womit sie in ihrem eigenen Leben beschäftigt sind. Ich bezweifle, dass Ihr Manager rechtliche Gründe hat, um ihn zur Hilfe zu zwingen. Es wäre schön, wenn sie sich ein paar Stunden Zeit nehmen würden, um einige Fragen zu beantworten, aber rechnen Sie nicht damit. Es sieht so aus, als ob Sie das meiste selbst herausfinden müssen. Dies gibt Ihnen die Möglichkeit, den richtigen Prozess gründlich zu dokumentieren und richtig zu machen. Diejenigen, die dir folgen, werden es dir danken! Viel Glück!
quelle
Zuerst müssen Sie Visual SourceSafe verlassen. Ich denke, das muss gesagt werden. Wechseln Sie zumindest zu TFS. Und es gibt auch andere Möglichkeiten.
Nun, da das nicht im Weg ist. Ich denke, dies ist ein Fall von "Wenn Sie wollen, dass die Dinge richtig gemacht werden ..." Ihr ultimatives Ziel sollte sein, dass ein Entwickler seine frisch installierte Maschine einschalten kann, um sich mit der Quelle zu verbinden, die neueste Version zu erhalten, f5 zu drücken (oder was auch immer Sie für Ihre verwenden Anwendungsverknüpfung ausführen) und eine funktionierende Anwendung haben.
Eine Möglichkeit besteht darin, eine Arbeitsumgebung von Grund auf zu erstellen und als Basis-Entwickler-Image zu verwenden. Wenn ein Entwickler an Bord kommt, müssen Sie das Image nur auf seinem Computer bereitstellen, und es sollte funktionieren.
Es gibt einige Bücher darüber, wie Sie Ihre Umgebung in einen Zustand ohne Hände bewegen können. Ich mag Continuous Delivery und Continuous Integration aus der Fowler-Serie selbst, aber es gibt noch andere Möglichkeiten.
quelle
Als ich meinen aktuellen Job anfing, hatten wir ein dokumentiertes Verfahren zum Einrichten eines Entwickler-PCs.
Ich folgte dem Verfahren selbst und vermied entschlossen die "Hilfe" des bestehenden Teams.
(Das Wissen muss im Dokument enthalten sein, nicht der Entwickler, der am längsten war.)
Ich habe das Verfahren mit Änderungen an der roten Linie markiert, bei denen es falsch oder unvollständig war, und eine Woche später hatte ich zwei Dinge, ein funktionierendes Verfahren und einen funktionierenden Entwicklungs-PC.
Nach einem Festplattenausfall ein Jahr später dauerte die Wiederherstellung 2 Tage.
Sagen Sie Ihrem Chef: Wenn die Festplatte auf diesem PC ausfällt, findet keine Entwicklung statt!
Ich entschied, dass 2 Tage eine Verschwendung von zwei Tagen waren ....
Jetzt verwenden wir für jedes Entwicklungsprojekt virtuelle Maschinen mit Disk-Images.
Das Setup besteht darin, das VM-Image auf den Ziel-PC zu kopieren und zu starten. Es gibt ein Symbol namens "runme", auf das Sie klicken. Es fragt nach Ihrem Benutzernamen und ändert dann den Benutzernamen, der für den Zugriff auf den Quellcode verwendet wird, in Ihren eigenen. Außerdem wird das leere Autorenfeld des IDE-Dokuments in Ihren Namen geändert.
(Ich habe runme in ungefähr 2 Stunden geschrieben, wir sind Entwickler, wir programmieren unsere Probleme weg)
Unsere Entwickler-PCs sind Standardmaschinen mit Ausnahme eines VM-Servers.
Wir verwenden Virtualbox, was nicht teuer ist.
Durch die Verwendung virtueller Maschinen ist das Ersetzen einer Maschine ein Kinderspiel von 20 Minuten . Diese Aufgabe wäre schneller, wenn wir Gigabit-Ethernet zum Kopieren der VM hätten.
Vollständige Offenlegung: Ich bin der Teamleiter, in dem ich arbeite, und mein Management gibt mir freie Hand.
quelle
Es sollte eine Dokumentation enthalten sein, aus der hervorgeht, welche Software zum Kompilieren und Ausführen der Anwendung erforderlich ist.
Es sollte auch eine Dokumentation enthalten sein, in der dargelegt wird, was eine Client-Box zum Ausführen der Anwendung benötigt.
Sie sind nicht die gleiche Liste.
Wenn Ihr Unternehmen einen neuen Entwickler einstellen würde, wie lange würde es voraussichtlich dauern, bis dieser mit dem Codieren beginnt? Ein Tag? Eine Woche? Ohne zu wissen, welche Software zum Kompilieren des Codes erforderlich ist, kann dies ein Versuch und Irrtum sein, der eine Weile dauern kann. Aber es sollte nur etwas sein, das einmal gemacht werden muss.
Meine Frage ist, was macht der neue Entwickler? Dies sollte sein Job sein, nicht dein. Er ist der Ersatz des anderen. Ja, es ist schade, dass er eine Umgebung ohne Dokumentation betreten hat, aber es sollte seine Aufgabe sein, Dinge zu dokumentieren. Lassen Sie ihn sich setzen, herausfinden, was die Entwicklungsumgebung ist, und sie dokumentieren. Lassen Sie ihn herausfinden und dokumentieren, was zum Ausführen der App auf einer Client-Box erforderlich ist.
Ich würde den alten Entwickler nicht kontaktieren. IMHO, wenn ein Entwickler ein Unternehmen ohne Dokumentation oder Wissenstransfer verlässt, hofft er, zu einer Beratungsrate gerufen zu werden, um einige Arbeiten auszuführen. Es ist unprofessionell und sollte nicht belohnt werden. Ja, es kann etwas länger dauern, bis Sie es selbst herausgefunden haben, aber Sie / das Team werden dabei etwas lernen und die erstellte Dokumentation wird aktuell und aktuell sein.
quelle