Führung sieht im Standardprozess keinen Wert für die Maschinenkonfiguration und die Neuentwicklerorientierung


9

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:

  1. Bin ich falsch, wenn ich davon ausgehe, dass ein Prozess zur Integration und Konfiguration eines neuen Computers als Teil unseres Entwicklungs-Ökosystems existieren sollte?

  2. Bin ich ein wieherndes Baby und sollte ich den Prozess herausfinden und selbst ein Dokument erstellen?


1
Vieles davon hängt von der verwendeten Technologie und anderen Details ab. In einigen Technologie-Stacks finden Sie die wichtigsten Abhängigkeiten, die in einigen Konfigurationsdateien installiert werden müssen. In anderen Fällen muss dies dokumentiert werden. Ich denke, der Entwickler, der jetzt mit dem System arbeitet, sollte am besten wissen, welche Informationen absolut entscheidend sind.
Thorsten Müller

2
Und dies sollte eine Lektion im Leben sein. Das Einrichten von Dingen ist die halbe Miete. Stellen Sie sicher, dass nicht alles zusammenbricht, wenn Sie gehen, sondern die andere Hälfte.
MrFox

Es fängt an mich zu frustrieren, ich versuche proaktiv zu sein, aber es gibt einige Konfigurationsprobleme, die mir fehlen. (Ich werde bestimmte Fehler beim Überlauf posten.) Der Stapel ist wie folgt: MS SQL Server, Visual Studio 2008, Visual Source Safe, IIS 7, ASP.NET-App-Code.
OpenCoderX

1
Visual Source Safe wie? Wenn das der Fall ist, vermute ich, dass alles, was der Vorgänger getan hat, nicht schrecklich brillant war. Andererseits gibt es zumindest eine Quellcodeverwaltung.
Wyatt Barnett

1
Ich bin ein GIT, der hart stirbt. Sobald eine Version der Site lokal ausgeführt wird, verwende ich GIT, um meine Änderungen zu verfolgen, und checke dann nur meinen GIT-Hauptzweig in VSS ein. Quellcodeverwaltung innerhalb der Quellcodeverwaltung.
OpenCoderX

Antworten:


5

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.


Wir haben einen Systemadministrator, der der Ansicht ist, dass er den Computer mit grundlegenden Netzwerkzugriffen, Benutzerrechten (Active Directory) konfiguriert und jede Software installiert. Zum Beispiel musste ich mit dem Netzwerkadministrator zusammenarbeiten, um Visual Source Safe und Visual Studio zu installieren, aber nach der Installation endet dort ihr Wissen. Es war nie in ihrem Zuständigkeitsbereich, diese Konfigurationen vorzunehmen.
OpenCoderX

1
Vielleicht bin ich zu verwöhnt - unser Systemadministrator kann sogar SQL-Abfragen ausführen, wenn er das Projekt veröffentlicht (ohne SQL zu kennen). In diesem Fall müssen Sie unbedingt die Dokumentation haben))
superM

In vielen Unternehmen, insbesondere in paranoiden oder inkompetent geführten Unternehmen, ist die "Kündigungsfrist" die Zeit, die benötigt wird, um vom Büro der Personalabteilung oder des Managers zu gehen und einen Rücktritt einzureichen, um kurz aus der Tür geführt zu werden.
Jfrankcarr

Ich denke, die Führung, die noch übrig war, gab einige Wochen im Voraus Bescheid, aber was er getan hat, um uns auf seine Abreise vorzubereiten, weiß ich nicht. Ich denke, sie haben meistens den Ersatz geschult, der in Ordnung war, aber die Maschine, die sie benutzen, von der Person eingerichtet hat, die gegangen ist. Ich hätte meine Nase ein bisschen mehr in die Situation stecken sollen, aber bis zu ihrer Abreise war die Programmierung für mich nur ein Hobby. Ich wurde zurückgenommen, als ich feststellte, dass unser neuer Entwickler genauso viel über das Einrichten eines neuen Systems weiß wie ich.
OpenCoderX

Dies wird für verschiedene Unternehmen unterschiedlich sein, aber überall, wo ich gearbeitet habe, musste der Maschinenkonfigurationsprozess als Treuhandanforderung dokumentiert werden.
JohnL

5

Bin ich falsch, wenn ich davon ausgehe, dass ein Prozess zur Integration und Konfiguration eines neuen Computers als Teil unseres Entwicklungs-Ökosystems existieren sollte?

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.

Bin ich ein wieherndes Baby und sollte ich den Prozess herausfinden und selbst ein Dokument erstellen?

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!


1

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.


1

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.


Ich habe mich oft gefragt, ob ich VMs machen soll, anstatt alles auf dem PC einzurichten. Haben Sie eine schöne, makellose VM für die Entwicklung und machen Sie sich keine Sorgen, dass die IT-Mitarbeiter ein Update erzwungen haben, um Ihr Entwicklungssystem zu vermasseln.
Joel Rondeau

Einmal habe ich ein C ++ - Programm debuggt, das mit vielen System-DLLs interagierte, als ein Antiviren-Update ausgeführt wurde. Es hat einige der DLLs geändert. Ich schätze, ich würde diesen Test nie wieder reproduzieren.
Tim Williscroft

0

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.