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:
Czy mylę się, zakładając, że proces pokładowy i konfiguracja nowego komputera będą częścią naszego ekosystemu programistycznego?
Czy jestem cholernym dzieckiem i czy powinienem samodzielnie opracować proces i stworzyć dokument?
źródło
Odpowiedzi:
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.
źródło
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.
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!
źródło
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.
źródło
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).
źródło
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.
źródło