Jak zarządzasz projektami pozostawionymi przez innych pracowników? [Zamknięte]

15

Zdarza się, że ktoś nagle opuszcza firmę. Teraz jego praca musi zostać ukończona, a ty jesteś jej przydzielony. Nie mając pojęcia, o co mu chodzi (czy było to zrobione w 90%, czy w 9%), jak sobie radzisz z resztkami?

  1. Czy mam zacząć od zera? Co jeśli zrobiono to w 90%?
  2. Czy mam spróbować zrozumieć, co on zrobił? Co jeśli to tylko nonsens?
Shirish11
źródło
10
+1, by przeciwdziałać niezasłużonemu głosowaniu IMHO. Myślę, że jest to dość przyzwoite, prawdziwe i możliwe do odpowiedzi pytanie, które jest tutaj na temat. Przykro mi, że ta strona staje się coraz bardziej wroga i niecierpliwa, podążając ścieżką samego SO :-(
Péter Török
2
@ PéterTörök Myślę, że zbliżają się głosy, ponieważ każdy może napisać odpowiedź, która ma związek z wieloma najlepszymi praktykami podczas pracy z kodem innych osób. Dotychczasowe odpowiedzi są doskonałe BTW, ale widzę, że generuje 50 kiepskich odpowiedzi.
wałek klonowy
Potrzebuję tylko przyzwoitej strategii, ponieważ kiedy pojawiają się takie sytuacje, wszyscy są po prostu spieprzeni .
Shirish11
2
@maple_shaft, IMHO to może dotyczyć praktycznie dowolnego pytania na tej stronie ;-)
Péter Török
W rozsądnym towarzystwie osoba odchodząca codziennie informowałaby w trybie gotowości o swoich postępach, a poza tym jego zadania i tak byłyby podzielone na rozsądne części.
MSalters

Odpowiedzi:

7

Aby dowiedzieć się, co robić, musisz wiedzieć, co masz i jak jest w dobrym stanie.

Zacznij więc od szybkiego przejrzenia wszystkich źródeł i zobacz, co masz. Jeśli jest to wyraźnie jasne, najłatwiej jest po prostu dokończyć to, czego brakuje. Wykonaj testy jednostkowe, aby dowiedzieć się, co działa, a co nie.

Jeśli nie jest to wyraźnie jasne, zacznij zastanawiać się, co działa z nowymi testami jednostkowymi. Jeśli jest to niemożliwe, poinformuj swojego lidera zespołu, że masz problem i że możesz nie być w stanie go rozwiązać. Następnie może zdecydować, czy pozostawione dzieło i tak powinno zostać uratowane, czy też jest po prostu źle i trzeba je ponownie wykonać.


źródło
Ustalenie, jakie są wymagania, byłoby również ważne, aby dowiedzieć się, czego brakuje?
Svish
7

Oprócz tego, co napisali inni, proponuję porozmawiać z każdym, kto miał bezpośredni kontakt z facetem. Rozumiem z twojego opisu, że pracował sam, czy nadal musiał komuś raportować? I może być personel QA, który przetestował to, co wyprodukował ... Osoby te powinny (normalnie) mieć przynajmniej ogólne pojęcie o tym, jak daleko facet posunął się ze swoim projektem przed wyjazdem. Chyba że dostarczone przez niego informacje / produkty okazały się całkowicie niewiarygodne, przyczyniając się do jego zwolnienia.

Przedyskutuj to ze swoim menedżerem i przydziel przedział czasowy dla początkowej eksploracji / testowania resztek kodu oraz zrozumienia specyfikacji i wymagań. Może to być z grubsza dzień dla projektu w skali kilku osobo-miesięcznych miesięcy, a najwyżej tydzień dla projektu obejmującego pracę przez jeden lub więcej osób rocznie itp.

Po tej wstępnej eksploracji powinieneś z grubsza oszacować

  • co produkt ma zrobić,
  • co może teraz zrobić i jak dobrze,
  • ile czasu i ryzyka zajmie przepisanie od zera,
  • ile czasu i ryzyka zajmie ukończenie tego, co już zrobiono.

Następnie możesz ponownie usiąść ze swoim przełożonym, aby podjąć decyzję.

Péter Török
źródło
Próba nawiązania kontaktu z facetem wydaje się być wykluczona, bo po prostu znikają.
Shirish11
1
Chciałem skontaktować się z kierownikiem projektu faceta lub kimś w podobnej roli, który nadzorował jego pracę.
Péter Török
menedżerowie nie są w pełni świadomi tego, co faktycznie dzieje się w części kodującej.
Shirish11
1
@ Shirish11, oczywiście, że nie, ale każdy kierownik projektu warty swojej soli powinien być co najmniej z grubsza poinformowany o tym, jak daleko obecnie członkowie jego zespołu wykonują dane zadanie / projekt.
Péter Török
6

Z mojego doświadczenia wynika, że ​​nie jest to rzadka sytuacja. Niestety, naprawdę masz tutaj dwa problemy :

1) Resztki tego projektu 2) Powody, dla których wpadłeś w ten bałagan w pierwszej kolejności

W przypadku (1) należy wziąć pod uwagę rozmiar / złożoność projektu. Jeśli jest to tydzień pracy, prawdopodobnie musisz zacząć wszystko od nowa. Jeśli jest to praca warta roku, być może będziesz musiał zobaczyć, co możesz uratować z istniejącego kodu.

Tak czy inaczej, musisz natychmiast podjąć następujące kroki:

a) Poinformuj swoich menedżerów, że masz duży problem

b) Uzyskaj specyfikację projektu i dokładnie zrozum, co musisz osiągnąć - lub porozmawiaj ze sponsorami projektu, jeśli nie ma specyfikacji.

c) Porozmawiaj z menedżerów / klientów itd i dowiedzieć się, czy ktoś ma / mają myśli dowolny pojęcia, co stan realizacji projektu.

Gdy to zrobisz, będziesz w stanie rozpocząć badanie kodu / wypracowanie strategii.

(Nie sądzę, aby testy jednostkowe bardzo ci pomogły - mogą ci powiedzieć, czy napisane funkcje rzeczywiście działają, ale nie mówią ci, jakie funkcje powinny tam być.)

To, czego nie chciałbym dalej, to przegląd architektury istniejącego kodu i tego, jak to odwzorowuje na problem zdefiniowany w specyfikacji. Następnie sprawdź, jakie są podskładniki każdego z tych głównych komponentów i zobacz, jak pasują do dużego obrazu. Dzięki temu dowiesz się (z grubsza), jakich elementów brakuje.

Kiedy już wiesz, co istnieje, musisz zacząć sprawdzać istniejący kod, aby zobaczyć, czy robi to, co powinien.

Po wykonaniu tego wszystkiego będziesz w stanie oszacować, ile pracy pozostało do zrobienia.

Jeśli chodzi o część (2), Twoja firma może potrzebować przyjrzeć się polityce zatrudnienia / polityce zatrzymania pracowników, znaleźć sposoby na rozliczenie programistów z odpowiedzialności za postęp.

Wreszcie, należy również rozważyć, jak można temu zapobiec do firmy powinien pan zostawić w pośpiechu.

Kramii
źródło
+1 za uzyskanie specyfikacji. Czasami jedyne miejsce, w którym istniało, znajduje się w głowie dewelopera i ludzi, którzy poprosili go o jego zbudowanie.
Spencer Rathbun
5

Zdecydowanie musisz spróbować uruchomić oprogramowanie, aby zobaczyć, co działa, a co nie.

Następnie musisz rozważyć, jaka dokumentacja pozostała. Czy są jakieś pisemne wymagania? Czy istnieją konkretne zadania - czy zadania są w jakiś sposób śledzone? Czy ktoś to testował - jeśli tak, będzie wiedział, co zostało zrobione, a co nie.

Myślę, że plan działania byłby następujący:

  1. Zaznacz, które wymagania zostały spełnione (przez szybki przegląd systemu, tak jak zrobiłby to tester)

  2. Spójrz na kod - czy potrafisz go zrozumieć? Czy to dobrze napisane?

Oczywiście, jeśli zrobiono to w 90%, a kod jest dobrze napisany, po prostu go ukończyłeś.

David_001
źródło
1
Zacząłem pisać odpowiedź z dokładnie tym samym (słowem po słowie) pierwszym zdaniem, co twoje. To tylko zdrowy rozsądek. Drugie pytanie brzmiałoby - dlaczego menedżerowie / osoby odpowiedzialne nie wiedzą, ile poczyniono postępów?
Anonimowy
@Anonimowi menedżerowie nie pracują bezpośrednio nad projektem, więc powiedziano im tylko o ich postępach. Gdyby ta osoba wiedziała, że ​​wyjeżdżają, prawdopodobnie po prostu wydmuchnęła dym ze złości, lenistwa lub głupoty. Byłem w takiej sytuacji już wcześniej i nie jest to zabawne, ponieważ kiedy kierownictwo zdaje sobie sprawę, że okłamano ich w około 90%, przypomina im to, jak małą kontrolę mają naprawdę przez większość czasu.
wałek klonowy
@maple_shaft - W takim przypadku menedżerowie, o których mowa, nie wykonują poprawnie swojej pracy. Ich zadaniem jest zarządzanie zespołem, aby osiągnąć określony cel. Jeśli nie śledzą odpowiednio postępów i nie delegują zadań, po co są?
Anonimowy
1
@ Anonimowy - bardzo długo pracowałeś jako programista ;-)? Z biegiem lat moja opinia o dobrym menadżerze spadła na osobę, która mi przeszkadza i czasami usuwa blokady .
wałek klonowy
1
@maple_shaft - Lol, to wystarczy. Oczywiście ten styl zarządzania nie sprawdził się w firmie op. :-p
Anonimowy
3

Nie wspomniano jeszcze.

Spróbuj skontaktować się z facetem, który odszedł. To nie jest możliwe w każdym przypadku. Ale jeśli jest zdrowy i przynajmniej trochę polubił swoją pracę, pomoże i da ci uczciwą odpowiedź na temat postępów i brakujących części. I mógłby ci wyjaśnić duży obraz.

matcauthon
źródło
+1: Jeśli to możliwe, jest to prawdopodobnie najprostsze i najskuteczniejsze rozwiązanie.
Leo
1

Gratulacje, to Twoja szansa, aby zabłysnąć i wywrzeć naprawdę pozytywne wrażenie na swoich szefach. To, co tu masz, to bezcenna okazja. Więc co musisz zrobić i jak?

Najpierw zdobądź kod. Być może nie sprawdził wszystkiego (facet, który nam to zrobił, nie zrobił), więc ktoś z prawami administratora ściągnie go ze swojego komputera i sprawdzi.

Następna triage problemu. Weź pod uwagę wymagania i zanotuj, które części mają napisany kod, a które nie. To jest przybliżona lista tego, co nie zostało ukończone. Będzie rosnąć, gdy będziesz robić następny krok. Następnie przejrzyj kod i oceń go, uruchom i zobacz, co aktualnie działa, a co wydaje się nie działać, mimo że kod jest napisany. Dodaj niedziałające części do listy. Poszukaj testów jednostkowych (zdziwiłbym się, gdybyś je znalazł, ludzie, którzy ratują się przed terminem, ponieważ wiedzą, że nie zdają egzaminu). Teraz przynajmniej dobrze wiesz, jak źle jest. Przejrzyj również wymagania i zobacz, na jakie pytania potrzebujesz odpowiedzi. Często zdarza się, że niepowodzenia projektu są wynikiem złych wymagań i programisty, który nie chce (z wielu powodów) zadawać dalszych pytań.

Teraz tworzysz swój plan projektu. Zacznij od listy pytań, które masz na podstawie wymagań (napisz je formalnie w dokumencie), a następnie wypisz listę rzeczy, które musisz zrobić, aby ukończyć pracę. Oszacuj, ile czasu to zajmie. Ustal, czy to, co obecnie istnieje, jest możliwe do odzyskania (a jeśli nie, przygotuj się, aby uzasadnić, dlaczego nie).

Teraz spotkaj się z kierownikiem projektu (i szefem, jeśli są to dwie różne osoby) i przekaż mu złe wieści. (Prawie zawsze są to złe wieści, gdy ktoś nagle odchodzi, a ty musisz odebrać od miejsca, w którym zostało przerwane, dobrzy programiści nie pozostawiają ludzi na lodzie - przynajmniej wychodzą z listą tego, co zrobili i co pozostało do zrobienia Wyjątkiem może być sytuacja, gdy ktoś opuścił Cię z powodu problemów zdrowotnych.) W dyskusji możesz uzyskać odpowiedzi, których potrzebujesz, a ty i szef rządu możecie nieco przerobić plan projektu.

Kontynuuj spotkanie, wysyłając do premiera i innych kluczowych interesariuszy (premier określi, kto), kopię twoich pytań, na które należy odpowiedzieć, oraz opracowany plan projektu.

Teraz masz wszystko, czego potrzebujesz, aby rozpocząć właściwe kodowanie, więc zabierz się do pracy.

W międzyczasie prawdopodobnie zostałeś wyciągnięty z czegoś innego, aby uratować ten projekt. Upewnij się, że twoja praca jest w formie, aby ktoś inny mógł ją odebrać lub odebrać po zakończeniu projektu. Oznacza to te same typy rzeczy, dokument, w którym mówisz, co jest zrobione, a nie jest, i rejestrację całego kodu źródłowego (niekoniecznie do pnia, jeśli nie jest zrobione, ale gdzieś, gdzie ktoś inny może uzyskać do niego dostęp .

Jeśli nie zostałeś odciągnięty z dotychczasowej pracy, musisz ustalić z szefem, ile czasu w dniu roboczym poświęcisz na każdą z nich. To jeden z tych momentów, w których nadgodziny mogą być potrzebne i zostaną docenione. Im bardziej zbliża się do faktycznego terminu, tym bardziej desperackie zarządzanie może być w stanie wypracować wynagrodzenie za nadgodziny lub dużą premię, jeśli termin jest bliski. Jeśli ta praca znacznie opóźni drugą pracę, musisz upewnić się, że interesariusze tego projektu są tego świadomi.

Gdy uda Ci się uratować projekt, pochwal się tym podczas następnej oceny wydajności.

HLGEM
źródło