Jak uratować młody i umierający projekt?


12

Wysyłam to anonimowo, ponieważ nie chcę wpakować się w potencjalne kłopoty.
Mam duży problem.
Niedawno dołączyłem do zespołu, który ma mniej niż rok. Jestem tu od miesiąca, w którym rozpoczął się projekt. Struktura firmy wygląda następująco:

  • Właściciel (nietechniczny)
    • Kierownik projektu (nietechniczny)
      • Główny programista (techniczny, ale kiepski)

Ten projekt to strona internetowa wykorzystująca ASP.Net, dla której Lead Developer zaprojektował okropną architekturę. Musisz mi wierzyć na słowo, ale w zasadzie sposób, w jaki musimy budować strony internetowe, daje nam ponad 3-minutowe czasy ładowania na jednej stronie internetowej przez VPN w trybie debugowania.

Stało się tak, że inni współpracownicy zgodzili się, że spędzają więcej dnia na oczekiwaniu na załadowanie stron niż na faktyczny rozwój.

Teraz jest duży problem. Project Manager nie zna technologii i przyznaje się do tego. Stwierdził on w szczególności, że ufa wiodącemu programistowi w dokonywaniu właściwych wyborów dotyczących architektury aplikacji.

Nikt w zespole nie wie, jaka byłaby opinia Właścicieli, ale wszyscy boją się robić fale w tej gospodarce (szczególnie ja).

Co byś zrobił?


1
Jakie jest tło wiodącego programisty? Jeśli nie przyjmie dobrze krytyki, skusiłbym się na skok ze statku.
JB King

13
3+ minuty !! : O Trudno mi spać w nocy, jeśli jedna z naszych aplikacji internetowych trwa dłużej niż 300 ms ...
Darknight

9
Moje pytanie brzmiałoby: czy masz projekt, który jesteś certyfikowany, by to poprawić? Czy próbowałeś przedstawić ten projekt Leadowi?
SoylentGray

6
@Darknight: Nie jestem pewien, czy załadowanie strony zajmie ponad 3 minuty, nawet jeśli spróbuję. W Sleep()każdym razie nie bez połączeń!
Carson63000,

1
Z ciekawości, jak długo trwa ładowanie pojedynczej strony internetowej nie w trybie debugowania i nie przez VPN?
Matt Freake

Odpowiedzi:


31

Problem ten można wykazać kierownikowi projektu w bardzo nietechnicznych aspektach. Umieść swoją witrynę w oknie przeglądarki przed premierem i poproś go, aby się nią bawił. Po załadowaniu około dwóch stron główny programista powinien zostać wywołany na dywanie, jeśli wszystko jest tak źle, jak mówisz.

PM może nie mieć specjalistycznej wiedzy programistycznej, aby zrozumieć, dlaczego jest źle, ale może się przekonać, że jest to zwykły użytkownik witryny. Inne witryny wyświetlające podobne informacje ładują się w ułamku Twojego czasu, a Twoja ładuje się przez sieć lokalną z serwera w następnym pokoju.

Jeśli to nie poleci, idź do właściciela. Właściciel jest facetem od pieniędzy, ale bardzo szybko zobaczy tę powolną stronę internetową, której nikt nie odwiedza == żadnych pieniędzy. Przygotuj tę samą demonstrację, a zanim załaduje się pierwsza strona, powinien zadzwonić ZARÓWNO na PM, jak i Ołów na swoim znacznie bogatszym dywanie.

Jeśli martwisz się, że jeden facet robi fale, to niech więcej niż jeden programista wyrazi swoje obawy. Szczerze mówiąc, w firmie tak płaskiej, jak twoja, jeśli opracowywany przez ciebie produkt jest bombą, nie masz pracy, bez względu na to, czy mówisz, czy milczysz. Patrząc na to w ten sposób, nie masz nic do stracenia oprócz kilku dodatkowych tygodni lub miesięcy w firmie. Jeśli to jest problem, umów się na kilka „wizyt u dentysty” i poszukaj nowych miejsc pracy przed ujawnieniem swoich obaw, więc jeśli stracisz tę pracę, zacznij w następny poniedziałek.


4
+1 Za radę, a także za „jeśli opracowywany przez ciebie produkt jest bombą, nie masz pracy, bez względu na to, czy mówisz, czy milczysz”.
Marjan Venema,

19

Zakładając, że twoje stwierdzenia są dokładne, masz Głównego Dewelopera, który jest niekompetentny i Kierownika Projektu, który jest niekompetentny (przynajmniej w takim stopniu, w jakim nie jest w stanie ocenić umiejętności zespołu). W porządku. Masz dokładnie takie same opcje jak programiści w każdym zespole na całym świecie.

  1. Pracujesz bez dbania o zdrowie firmy.

  2. Poszukaj pracy gdzie indziej.

  3. Przedstaw rozsądne sugestie kierownikowi, premierowi i właścicielowi i miej nadzieję, że zostaną przyjęte.

Możesz wykonać dowolną kombinację powyższych jednocześnie.

Jeśli chcesz agresywnie ubezpieczyć zdrowie projektu, będziesz musiał współpracować z innymi programistami, aby w wolnym czasie opracować nowe ramy i pokazać reszcie zespołu, dlaczego jest on lepszy, a stara praca powinna być porzuconym na korzyść tego.


8

Pracowałem w podobnej sytuacji, w której główny programista, który był faktycznie partnerem w firmie, stworzył „rdzeń” oprogramowania, z wyjątkiem bliskiego przyjaciela, który bezpośrednio z nim współpracował, innym programistom nie pozwolono dotknąć rdzeń.

„Potęgi, które są” również tworzyły reguły, takie jak każdy moduł, może mieć tylko jedną tabelę bazy danych, ponieważ w ten sposób jest czystsza. W związku z tym istniejące listy rozwijane zostały utworzone poprzez wybranie „DISTINCT” z tabel w bazie danych, zamiast posiadania oddzielnej tabeli.

Było wiele złych poprawek, ponieważ zespół wdrażający musiał wykonać zadanie, a produkt nie działałby od razu po wyjęciu z pudełka. Te poprawki powodowały tyle problemów, ile naprawiono i zostały dostosowane (zhakowane) dla każdej instalacji.

Moje podejście polegało na wzięciu jednej małej części specyfikacji, której rdzeń nie obsługiwał, i napisaniu dla niej małej, dobrej, ogólnej poprawki. Coś, co zadowoliło zespół wdrożeniowy, ale nie było tak groźne jak „Musimy całkowicie zmienić nasze myślenie”. Z powodu animozji między zespołem wdrożeniowym a głównymi programistami zajęło miesiące, aby przekonać zespół wdrożeniowy, że moje podejście było lepsze niż ich włamania. Ale kiedy tylko zobaczyli, że ich wysłucham i wprowadzę dodatkowe korekty, aby ich wesprzeć, byli zachwyceni i po mojej stronie. Główny deweloper zaakceptował łatkę dopiero po upływie miesiąca, ale kiedy to zrobił, naprawdę otworzył komunikację między nami wszystkimi na temat lepszych sposobów projektowania innych części systemu.

Nigdy nie jest to krótka droga do zmiany myślenia ludzi, szczególnie jeśli musisz utrzymywać z nimi cywilne relacje. Ale jeśli podejdziesz do tego dobrze, możesz zyskać szacunek bez obrażania swojego szefa.

Mam nadzieję, że to pomaga!


7

Bardzo prosta odpowiedź i rozwiązanie. Wygląda na to, że wszyscy zdają sobie sprawę z problemu. W związku z tym omawianie problemu nie ma dla nikogo wartości. W rzeczywistości sprawia, że ​​wyglądasz jak złodziej. Jeśli chcesz dodać wartość, musisz wskazać rozwiązanie i opracować uzasadnienie biznesowe związane z przejściem do rozwiązania. Następnie możesz wskazać problem za pomocą odpowiedniego rozwiązania. Wersja demonstracyjna może również przejść długą drogę do udowodnienia swojego rozwiązania. Oczywiście może to oznaczać wykonywanie pracy we własnym czasie, ale wszystko zależy od tego, jak ważne jest dla Ciebie.


1
+1 za pomysł demo. Niektóre osoby mają bardzo trudny okres, wyobrażając sobie, że można to zrobić lepiej, o ile nie zostaną przedstawione niepodważalne dowody.
Karl Bielefeldt

2

Przede wszystkim zdecydowanie zalecam sprawdzenie swoich faktów, ponieważ jest to problem architektury aplikacji, a nie coś w konfiguracji VPN. Widziałem, że źle skonfigurowane sieci VPN powodują dokładnie ten problem. Czy wiesz na pewno, że aplikacja działa tak wolno w biurze?

Jeśli wykluczyłeś sieć, wybrałbym sugestię KiethS i poproszę PM o podciągnięcie strony.


1

To brzmi jak biznes, a przynajmniej projekt wkrótce się skończy. Krótko mówiąc, rzuciłem palenie, starałem się jak najdalej od niego zdystansować, np. zgłosić się na ochotnika / poprosić o pracę przy innych projektach. Mamy nadzieję, że z czasem będziesz spędzać mniej czasu na tej katastrofie, a więcej na innych projektach, które mają szansę na działanie. Nie chcesz być uważany za „faceta, który pracował nad projektem, który nie działał”. Chodzi o ochronę Twojej reputacji.


0

Czy właściciel chce dobrego produktu, czy nie? Podejrzewam, że odpowiedź brzmi „tak” ... i dlatego musisz się odezwać. Musisz udokumentować obecną architekturę, a następnie (z dobrymi danymi imperialnymi) pokazać, w jaki sposób produkt nie spełnia właściwych oczekiwań dotyczących wydajności. Mówisz, że wszyscy twoi współpracownicy wiedzą, że działa źle - cóż ... co z klientem? Co oni mówią? Użyj narzędzia pomiaru wydajności i określ, co zajmuje tak długo. Wiele narzędzi sprowadza się nawet do pokazania, jak długo trwa każde wywołanie funkcji. Na podstawie wszystkich tych danych powinieneś mieć wystarczającą ilość amunicji, aby porozmawiać z kierownikiem projektu i technicznym przewodnikiem na temat tego, dlaczego rzeczy nie są takie, jak powinny i jak może być konieczne poważne refaktoryzowanie, aby przyspieszyć działanie produktu.

Następnie (tylko po rozmowie z premierem i szefem) MUSI to wystarczyć, aby zacząć wprowadzać zmiany. Jeśli PM nie jest w tym momencie przekonany, musisz zdecydować, czy to naprawdę miejsce, w którym chcesz być. Jeśli tak, to być może spotkanie z właścicielem. Jeśli nie, przygotuj to CV.

Upewnij się, że dokumentujesz wszystko na każdym etapie.


0

Pod względem technicznym zgadzam się z powyższymi sugestiami. Z drugiej strony wydaje mi się, że jest to raczej kwestia relacji niż kwestia techniczna.

Jeśli chcesz pójść gładką drogą, odpowiednim wyborem będzie rozmowa z głównym deweloperem. Ale nie rozmawiałbym w biurze. Wypicie kawy na zewnątrz sprawi, że będzie to trochę nieformalne i bardziej zrelaksowane.

Jeśli to nie zadziała, możesz spróbować porozmawiać z premierem, a następnie z właścicielem.

Jeśli nic nie działa, proponuję poszukać nowej pracy.


0

Uczciwość - i tyle taktu, na ile możesz.

Zacznij od wiodącego programisty i rozwijaj się, jeśli musisz. Spróbuj zaangażować lepsze strony ich osobowości - Jeśli poprowadzisz deweloperów lubi rozwiązywać problemy / lubi oszczędzać dzień / lubi być wydajny / itp. Sformułuj problem w tej kwestii - Nie zaszkodzi wskazać przypadki, w których w przeszłości odnosiły sukcesy jako dodatkowa motywacja.

Jeśli nie robisz fal, prawdopodobnie nie żyjesz w wodzie.


0

Czy możliwe byłoby przywrócenie problemów do poziomu, który jest mierzalny i nietechniczny, aby kierownik projektu i właściciel mogli zrozumieć.

Na przykład wspomniałeś o wolnym czasie ładowania wynoszącym 3+ min. Zakładam, że gdzieś w specyfikacji istnieje wymóg wydajności, coś tak prostego jak „strona do załadowania w ciągu 1 sekundy”. Coś takiego jest mierzalne i nie można go obalić. Jeśli podstawową przyczyną tego problemu jest podejrzana architektura, kierownik projektu i / lub właściciel powinni wkroczyć, aby wymusić pewne zmiany.

Jeśli nie, oznacza to, że masz systematyczny problem w swojej firmie, w którym początkowa analiza została przeprowadzona źle i nie ma wystarczającej liczby procesów, aby wychwycić tego rodzaju problemy. Rozważ skaczący statek!


0

Prawdziwi mężczyźni mówią bez urazy i emocji. To jest podstęp.

Jedynym słusznym powodem, dla którego ktoś może się z tobą spotkać za to, że się odzywasz, jest to, że czujesz się urażony:

LIDER DEWELOPER NIE MA ŻADNEGO POJAZDU. Wiedziałem, że tak się stanie, ale nikt mnie nie słuchał.

natomiast

Model kodu jest nieprawidłowy, ponieważ jest trudny do utrzymania i działa powoli. Musimy być strategiczni w tej sprawie i rozwiązać te dwa problemy.

Pierwsza z nich to bitwa o zniszczenie, druga to bitwa o pokój, a na dłuższą metę zyskasz szacunek, jaki dana osoba zyskuje za uczciwość.

Jeśli kierownik projektu potraktuje to jako awangardę, co z pewnością może wziąć pod uwagę, że może zostać zwolniony, to po prostu powiedz:

Nie pociągaj mnie do odpowiedzialności za rzeczy, których nie byłem odpowiedzialny za wdrożenie. Jestem po prostu szczera.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.