Przywództwo nie widzi wartości w standardowym procesie konfiguracji maszyny i nowej orientacji programisty

9

Około 3 miesiące temu nasz główny programista i projektant stron internetowych (ta sama osoba) opuścił firmę, przyczyną były zielone pastwiska. Dobre dla nich mówię. Mój problem polega na tym, że jego dział był całkowicie nieudokumentowany. Od czasu odejścia lidera sytuacja była trudna, istnieje duża wiedza zarówno teoretyczna, z której korzystamy przy cytowaniu nowych projektów, jak i wiedza techniczna / wdrożeniowa na temat naszych istniejących produktów, które utraciliśmy w wyniku jego odejścia. Moją normalną rolą jest menedżer produktu (dla samych naszych produktów) i analityk biznesowy przy niektórych naszych konsultacjach opartych na projektach. Przez ostatni rok nauczyłem się kodować i starając się iść naprzód „ podjąłem się zadania skonfigurowania mojego laptopa jako maszyny programistycznej z nadzieją na implementację niektórych łatwiejszych żądań funkcji i naprawienie niektórych błędów typu „bez zastanowienia”, które są zgłaszane do naszego systemu sprzedaży biletów. Ale nikt nie wie, jak wziąć świeżą maszynę z systemem Windows i skonfigurować ją tak, aby działała bezproblemowo z naszymi aplikacjami produkcyjnymi.

Poprosiłem mojego szefa, który nadal pozostaje w kontakcie z programistą, który odszedł, prosząc go o udokumentowanie i utworzenie procesu na pokładzie nowego programisty, instalacji oprogramowania, wymaganych pakietów, procesu wdrożenia na serwerach aplikacji produkcyjnych itp. Żadne z to istnieje, a ja obracam kółkami, próbując sprawić, aby komputer działał jako funkcjonalna maszyna programistyczna. Wydaje się jednak, że nie rozumie potrzeby istnienia takiego procesu. Najwyraźniej nowy programista, który zastąpił tego, który odszedł, korzysta z komputera wstępnie skonfigurowanego dla naszego środowiska, więc nawet nowy programista nie mógłby skonfigurować nowego komputera, gdybyśmy dodali innego programistę.

Moje pytanie składa się z dwóch części:

  1. Czy mylę się, zakładając, że proces pokładowy i konfiguracja nowego komputera będą częścią naszego ekosystemu programistycznego?

  2. Czy jestem cholernym dzieckiem i czy powinienem samodzielnie opracować proces i stworzyć dokument?

OpenCoderX
źródło
1
Wiele z tego zależy od zastosowanej technologii i innych szczegółów. W niektórych stosach technologii można znaleźć najważniejsze zależności, które należy zainstalować w kilku plikach konfiguracyjnych, w innych przypadkach należy to udokumentować. Myślę, że programista, który teraz współpracuje z systemem, powinien wiedzieć najlepiej, jakie informacje są absolutnie kluczowe.
thorsten müller
2
To powinna być lekcja życia. Przygotowanie rzeczy to połowa pracy, upewnienie się, że wszystko się nie zawali, kiedy odejdziesz, to druga połowa.
MrFox,
Zaczyna mnie to frustrować, staram się być proaktywny, ale brakuje mi pewnych problemów z konfiguracją (opublikuję konkretne błędy przy przepełnieniu) Stos jest następujący: MS SQL server, Visual Studio 2008, Visual Source Safe, IIS 7, kod aplikacji ASP.NET.
OpenCoderX
1
Visual Source Safe eh? Jeśli tak jest, podejrzewam, że cokolwiek zrobił poprzedni facet, nie było strasznie genialne. Z drugiej strony przynajmniej kontrola źródła.
Wyatt Barnett
1
Jestem GIT ciężko umrzeć. Gdy otrzymam wersję strony działającą lokalnie, użyję GIT do śledzenia moich zmian, a następnie zamelduję tylko moją główną gałąź GIT w VSS. Kontrola źródła w ramach kontroli źródła.
OpenCoderX

Odpowiedzi:

5

Przede wszystkim dziwne jest, że programista musi skonfigurować środowisko pracy. To zadanie jest zwykle dla administratorów systemu. Biorąc pod uwagę, że nie należy tego w ogóle robić, masz prawo oczekiwać, że ktoś zrobi to za Ciebie.

W większości (jeśli nie we wszystkich) firmach obowiązuje okres wypowiedzenia. Zazwyczaj waha się od tygodnia do miesiąca. Ale w każdym razie czas ten wystarczy, aby osoba odchodząca pomogła firmie _ sporządzić dokumentację, dodać komentarze do kodu, udokumentować architekturę itp. Obawiam się, że jest już za późno, aby to zrobić, ale nie zapomnij o tym następnym razem ktoś wyjdzie.

Masz absolutną rację, oczekując, że powinien istnieć proces tworzenia nowego środowiska. W rzeczywistości, jeśli Twoja firma będzie się rozwijać i będziesz mieć więcej programistów, napotkasz ten sam problem - może to być poważny argument przekonujący szefa. Możesz nawet użyć tego argumentu, aby przekonać kierownictwo do zatrudnienia administratora systemu do takich zadań (zakładam, że nie masz takiego, ponieważ napotykasz problem). Oprócz ustawienia środowiska programistycznego, jeśli masz nowy komputer, musi on zostać zintegrowany z siecią lokalną itp.

superM
źródło
Mamy administratora systemu, a ich pozycja polega na tym, że konfigurują maszynę z podstawowym dostępem do sieci, prawami użytkownika (Active Directory) i instalują dowolne oprogramowanie. Na przykład musiałem współpracować z administratorem sieci, aby zainstalować Visual Source Safe i Visual Studio, ale po instalacji, to tam kończy się ich wiedza. Ich konfiguracja nigdy nie była w ich gestii.
OpenCoderX
1
Być może jestem zbyt zepsuty _ nasz administrator sys może nawet wykonywać zapytania SQL podczas publikowania projektu (bez znajomości SQL)). W takim przypadku zdecydowanie musisz mieć dokumentację))
superM
W wielu firmach, szczególnie tych paranoicznych lub niekompetentnie zarządzanych, „okres wypowiedzenia” to czas potrzebny na przejście z działu kadr lub biura kierownika, aby złożyć rezygnację i zostać eskortowanym na zewnątrz.
jfrankcarr
Myślę, że trop, który opuścił, dał kilkutygodniowe powiadomienie, ale nie wiem, jakie rzeczy zrobił, aby przygotować nas do swojego odejścia. Myślę, że głównie przeszkolili zastępcę, który był w porządku, ale maszynę, której używają, skonfigurowała osoba, która odeszła. Powinienem był trochę zatknąć nos w tej sytuacji, ale do czasu, gdy programowanie ich odejścia było dla mnie tylko hobby. Zostałem zabrany z powrotem, kiedy odkryłem, że nasz nowy programista wie tyle samo, co ja o konfigurowaniu nowego systemu.
OpenCoderX
Będzie to różne dla różnych firm, ale wszędzie tam, gdzie pracowałem, proces konfiguracji maszyny musiał zostać udokumentowany jako wymaganie depozytowe.
JohnL
5

Czy mylę się, zakładając, że proces pokładowy i konfiguracja nowego komputera będą częścią naszego ekosystemu programistycznego?

Nie. Posiadanie tych procesów pozwoli uniknąć problemów, które już napotkałeś. W niektórych większych organizacjach istnieje standardowy obraz dysku pokazujący, jak powinna wyglądać maszyna programisty. Gdy zatrudniony jest nowy programista, dostępny komputer z odpowiednią specyfikacją sprzętową jest czyszczony i ponownie obrazowany przy użyciu tego obrazu dysku „programisty”. Po standardowej liście kontrolnej (czasem obejmuje instalację oprogramowania do przetwarzania obrazu dla niektórych narzędzi niewymienionych w obrazie) technicy robią to, aby upewnić się, że wszystkie maszyny programistów zaczynają w ten sam sposób (użytkownicy mogą je modyfikować i modyfikować po otrzymaniu im - na własne ryzyko!).

Podobnie niektóre aplikacje o niezwykle złożonej konfiguracji mają dokumenty wyjaśniające nowym programistom, jak sprawdzić kod, skonfigurować serwer oraz zbudować i lokalnie wdrożyć aplikację. Jedna aplikacja ma nawet skrypt instalacyjny tylko dla stacji roboczych, aby ułatwić ten proces.

Czy jestem cholernym dzieckiem i czy powinienem samodzielnie opracować proces i stworzyć dokument?

Jesteś, ale tylko trochę. Trzeba powiedzieć, że wszystko to powinno być udokumentowane dawno temu, a programista, który odszedł, powinien dokonać pełnego transferu wiedzy do swoich dni wymiany (lub tygodni, jeśli to możliwe), zanim odejdą. Wygląda na to, że nic takiego się nie wydarzyło.

Co teraz? Wątpię, czy programista, który odszedł, będzie bardzo pomocny. Mają już nową pracę i kto wie, czym się zajmują w swoim życiu. Wątpię, by istniały podstawy prawne, które mógłby wykorzystać twój kierownik, aby zmusić ich do pomocy. Byłoby miło, gdyby poświęcili kilka godzin na udzielenie odpowiedzi na niektóre pytania, ale nie licz na to. Wygląda na to, że utknąłeś w obliczaniu większości z tego dla siebie. Daje to możliwość dokładnego udokumentowania właściwego procesu i jego poprawnego wykonania. Ci, którzy pójdą za tobą, podziękują ci za to! Powodzenia!

FrustratedWithFormsDesigner
źródło
1

Po pierwsze, musisz wyjść z Visual SourceSafe. Myślę, że należy to powiedzieć. Przynajmniej przejdź do TFS. I są też inne opcje.

Teraz to już nie wchodzi w grę. Myślę, że jest to przypadek „jeśli chcesz, aby wszystko zostało zrobione dobrze”. Twoim ostatecznym celem powinno być umożliwienie deweloperowi włączenia świeżo zainstalowanej maszyny do połączenia ze źródłem, uzyskania najnowszej wersji, naciśnięcia klawisza f5 (lub czegokolwiek, czego używasz do swojego uruchomić skrót do aplikacji) i mieć działającą aplikację.

Jedną z opcji jest zbudowanie od podstaw środowiska pracy i wykorzystanie go jako podstawowego obrazu programisty. Gdy na pokładzie pojawi się programista, wystarczy wdrożyć ten obraz na jego komputerze i powinien on działać.

Istnieje kilka książek na temat tego, jak przenieść środowisko w bardziej bezproblemowy tryb. Sam lubię ciągłą dostawę i ciągłą integrację z serii Fowler, ale istnieją inne opcje.

Michael Brown
źródło
1

Kiedy zaczynałem swoją obecną pracę, mieliśmy udokumentowaną procedurę konfiguracji komputera programisty.

Postępowałem zgodnie z tą procedurą sam, zdecydowanie unikając „pomocy” istniejącego zespołu.

(Wiedza musi być zawarta w dokumencie, a nie dewelopera, który był najdłużej).

Procedurę oznaczyłem zmianami w czerwonej linii, gdy była niepoprawna lub niekompletna, a tydzień później miałem dwie rzeczy: procedurę, która zadziałała i działający komputer programistyczny.

Po awarii dysku twardego rok później odbudowanie zajęło 2 dni.

Powiedz swojemu szefowi: jeśli dysk twardy ulegnie awarii na tym komputerze, nie nastąpi rozwój!

Uznałem, że 2 dni to strata dwóch dni ....

Teraz używamy maszyn wirtualnych z obrazami dysków do każdego projektu programistycznego.

Konfiguracja polega na skopiowaniu obrazu maszyny wirtualnej na komputer docelowy i uruchomieniu go. Kliknij ikonę „runme”, którą klikniesz. Pyta ona o twoją nazwę użytkownika, a następnie zmienia nazwę użytkownika używaną do uzyskania dostępu do kodu źródłowego na własny. Zmienia również pole autora pustego dokumentu IDE na twoje imię.

(Napisałem runme za około 2 godziny, jesteśmy programistami, programujemy nasze problemy)

Nasze komputery PC dla programistów są standardowymi maszynami z wyjątkiem serwera VM.

Używamy virtualboksa, który nie jest drogi.

Korzystanie z maszyn wirtualnych sprawia, że ​​wymiana maszyny to 20-minutowa praca . To zadanie byłoby szybsze, gdybyśmy mieli gigabitowy Ethernet do skopiowania maszyny wirtualnej.

Pełne ujawnienie: jestem liderem zespołu, w którym pracuję, a moje kierownictwo daje mi swobodę (-ish).

Tim Williscroft
źródło
Często zastanawiałem się nad robieniem maszyn wirtualnych zamiast konfigurowania wszystkiego na komputerze. Miej ładną, nieskazitelną maszynę wirtualną do programowania i nie martw się, że informatycy zmusili aktualizację do zepsucia twojego systemu programistycznego.
Joel Rondeau
Kiedyś debugowałem program C ++ oddziałujący z wieloma bibliotekami DLL systemu, gdy uruchomiona została aktualizacja antywirusa. Zmieniło niektóre biblioteki DLL. Zgaduję, że nigdy więcej nie powtórzę tego testu.
Tim Williscroft,
0

Powinna być dokumentacja mówiąca, jakie oprogramowanie jest wymagane do skompilowania i uruchomienia aplikacji.

Powinna również znajdować się dokumentacja określająca wymagania klienta w celu uruchomienia aplikacji.

To nie jest ta sama lista.

Gdyby Twoja firma zatrudniła nowego programistę, jak długo można by oczekiwać, że zaczną kodować? Dzień? Tydzień? Bez wiedzy na temat oprogramowania wymaganego do skompilowania kodu może to być proces prób i błędów, który może chwilę potrwać. Ale powinno to być coś, co należy zrobić raz.

Moje pytanie brzmi: co robi nowy programista? To powinna być jego praca, nie twoja. On zastępuje drugiego faceta. Tak, to do bani, że wszedł do środowiska bez dokumentacji, ale jego zadaniem powinno być dokumentowanie rzeczy. Pozwól mu usiąść, dowiedzieć się, jakie jest środowisko programistyczne i go udokumentować. Poproś go, aby wymyślił i udokumentował, co jest wymagane do uruchomienia aplikacji na kliencie.

Jeśli chodzi o kontakt ze starym deweloperem, nie zrobiłbym tego. IMHO, jeśli programista opuści firmę bez dokumentacji lub transferu wiedzy, ma nadzieję, że zostanie wezwany do wykonania jakiejś pracy z szybkością konsultacji. Jest to nieprofesjonalne i nie powinno być nagradzane. Tak, może minąć trochę czasu, zanim sami to rozwiążemy, ale Ty / zespół nauczysz się czegoś w tym procesie, a opracowana dokumentacja będzie aktualna i aktualna.

Tyanna
źródło