Pytanie:
Jak młodszy programista powinien podejmować krytyczne decyzje jako jedyny programista w dużym projekcie?
Anon
2017-09-05 15:17:55 UTC
view on stackexchange narkive permalink

Jestem 2-letnim doświadczonym programistą internetowym, głównie pracowałem nad backendem (API, logika java itp.) i pracuję jako konsultant.

Od 2 miesięcy zostałem wysłany do do pracy nad ich front-endem przy użyciu frameworka, w którym nie jestem kompletnym nowicjuszem, ale w zasadzie nie jestem ekspertem.

Projekt jest duży, ale szacuję, że mój kod jest na poziomie „juniora”.

Tutaj pojawia się problem, o ile jestem jedynym programistą front-end w tej grupie, wszystkie krytyczne decyzje dotyczące tego projektu są odroczone do mnie (wybór wzorca kodu, tworzenie instancji nowych bibliotek lub importowanie niektórych kod z zewnętrznego źródła lub tak dalej).

Jak powiedziałem wcześniej, kod nie jest trudny, ale uważam, że tego rodzaju decyzje są zbyt ważne, aby odłożyć je do osoby młodszej w tej strukturze, ze względu na oprogramowanie jest bardzo duże i obsługuje poufne dane dużej firmy.

Zwróć uwagę, że rozmawiałem już z moim szefem, który w zasadzie powiedział mi: „pracuj tak, jak chcesz i jak chcesz, ale projekt musi być gotowe w dniu XXX "

Mój obawiam się, że mogę kod produktu, który działa TERAZ, ale JUTRO będzie miał błędy lub coś podobnego z powodu mojego braku doświadczenia, a jako konsultant zostawiam obok siebie złą reputację.

Jak to zrobić Radzę sobie z tą sytuacją? Co mam zrobić?

Czy próbowałeś powiedzieć im, że nie czujesz się komfortowo podejmując te decyzje?
jak pisałem w pytaniu, taka była odpowiedź: po prostu pracuj jak chcesz i jak chcesz, ale projekt musi być gotowy na datę XXX
Zapytaj, czy w Twojej firmie są osoby starsze, dla których Ty też możesz uzyskać porady.Osobiście próbowałem kiedyś skłonić kogoś bardziej eksperta do sprawdzenia wszystkich moich decyzji, ale często tak się nie stało.
Nie jestem pewien, dlaczego uważasz, że decyzje dotyczące frameworków / bibliotek ** front-end ** są takie ważne?Oczywiście, jeśli jesteś jedynym deweloperem front-end w grupie, będziesz go utrzymywać i równie dobrze możesz wybrać coś, z czym czujesz się komfortowo
@Daniel, co byłoby prawdą, gdybym nie był konsultantem, z całym prawdopodobieństwem opuszczę tego klienta za 2 miesiące
Jako programista jesteś tam, aby wykonać pracę: dostarczyć działający produkt.Robisz to najlepiej jak potrafisz.Firma dostaje to, za co płaci.Jeśli płacą za młodszego programistę, otrzymują pracę na niższym poziomie.
@PieterB to prawda, ale staram się też wymyślić, jak rozwiązać tę sytuację, aby nie spalić mostów wokół mnie
@anon, który mi się podoba, dlaczego zadałeś to pytanie.Pokazujesz, że chcesz wykonywać najlepszą pracę, jaką możesz.To miłe podejście, aby zawsze szukać najlepszego sposobu robienia rzeczy, bez względu na etap swojej kariery.
Cztery odpowiedzi:
user44108
2017-09-05 15:50:42 UTC
view on stackexchange narkive permalink

Nie jesteś już Juniorem - jesteś Senior.

Gratulacje z powodu awansu!

Jeśli jeszcze nie był, podziel zadania projektowe na małe kawałki pracy. Przeanalizuj każdy z nich i oceń, czy rozumiesz wystarczająco dużo, aby go w pełni zrozumieć, ile czasu ci to zajmie. Weź te szacunki czasowe i dodaj co najmniej 50%.

Jeśli te szacunki nie mieszczą się w wymaganym terminie, musisz potraktować to jako ryzyko - albo potrzebujesz pomocy, albo coś musi być usunięty z projektu.

Musisz także podnieść ryzyko w przypadku każdego zadania, którego nie jesteś pewien. Dostaniesz więcej punktów za myślenie przyszłościowe i bycie uczciwym niż ukrywanie wszystkiego i niepowodzenie na końcu.

Jeśli potrzebujesz pomocy, zbuduj rozsądny powód biznesowy i poproś o pomoc.

Potraktuj to jako wspaniałe doświadczenie edukacyjne, niewielu juniorów ma taką możliwość.

nie sądzę, żebym miał awans, ponieważ moje wynagrodzenie niewiele się zmieniło i nikt mnie nie zauważył ... teraz poważnie, o ile uważam, że jest to wspaniałe doświadczenie edukacyjne, nie chcę palić mostów dla biednychpracy i jestem prawie pewien, że kiedy skończę tę aktualizację oprogramowania, zmienię klienta, więc nie mam czasu na studiowanie oprogramowania, jak sugerowałeś
@Anon,, to nie masz wystarczająco dużo czasu na ukończenie projektu.Musisz podnieść to jako ryzyko i przeprowadzić szczerą rozmowę z klientem na temat wydłużenia harmonogramu, zmniejszenia zakresu lub uzyskania pomocy.Nie możesz zrobić tego, co nie jest możliwe.
cdkMoose
2017-09-05 20:26:43 UTC
view on stackexchange narkive permalink

Jako jedyny programista front-end możesz być najbliżej eksperta. Ekspertyza jest względna, więc nawet jeśli czujesz, że nie wiesz tak dużo, być może będziesz musiał posiadać rozwiązanie. Od konsultantów oczekuje się, że będą w stanie rozwiązywać problemy i może to być Twoja okazja, aby zabłysnąć.

Daj z siebie wszystko, korzystając z umiejętności i wiedzy, które posiadasz. Poszukaj informacji na temat struktury i najlepszych praktyk korzystania z niej. Jeśli framework jest w ogóle używany, powinno być wiele badań, które możesz przeprowadzić w Internecie, albo od dostawcy, grupy roboczej lub jakiejś witryny, takiej jak StackOverflow.

Upewnij się, że udokumentowałeś swoje badania i jak doszedłeś do decyzji, które musiałeś podjąć. Udostępnij tę dokumentację swojemu przełożonemu technicznemu i / lub administracyjnemu, aby wiedział, co zrobiłeś i mógł zarządzać ryzykiem.

Jeśli po badaniu uważasz, że istnieje ryzyko związane z harmonogramem, poinformuj go o tym wcześniej. sytuacja się pogarsza. Skorzystaj z przeprowadzonych badań, aby przedstawić harmonogram, który możesz utworzyć, i pozostaw to im, aby następnie zarządzali harmonogramami projektu na wyższym poziomie.

Jasper
2019-03-18 09:15:12 UTC
view on stackexchange narkive permalink

Obawiam się, że mogę [stworzyć] kod, który działa TERAZ, ale JUTRO będzie zawierać błędy lub coś podobnego z powodu mojego braku doświadczenia [.]

Tak, będziesz pisać błędy. Naprawisz znalezione błędy. Jestem pewien, że już tego doświadczyłeś.

Możesz zmniejszyć to ryzyko, budując zestaw testów automatycznych. Nie musi to być wyrafinowany zestaw testów zapewniający 100% pokrycia. Musi tylko być w stanie wychwycić błędy, które już znalazłeś, abyś wiedział, że się nie poślizgnąłeś i nie popełnisz ponownie tego samego błędu. Jeśli obejmuje również standardowe szczęśliwe ścieżki, zaoszczędzi ci to trochę zakłopotania.

Jeśli czujesz się komfortowo z uprzężą testową na poziomie interfejsu użytkownika, taką jak Selenium lub Coded UI Tests firmy Microsoft, świetny. Ale możesz uzyskać przyzwoite pokrycie testami jedną warstwę w dół w systemie, sprawdzając, czy model generuje rozsądne dane wyjściowe, biorąc pod uwagę rodzaje danych wejściowych, których oczekujesz od interfejsu użytkownika.

The Quantum Physicist
2017-09-05 20:39:45 UTC
view on stackexchange narkive permalink

Będziesz musiał przejść przez złe projekty, aby osiągnąć dobre. To jest kluczowy punkt tego problemu, z którym musisz żyć.

Teraz: czy „zły” kod spali mosty? Mało prawdopodobne. Nigdy nie widziałem, żeby to się stało. Co gorsza, zostaniesz poproszony o podanie powodu takiego postępowania i możesz to uzasadnić.

W branży programistycznej wszyscy rozumiemy ograniczenia i motywy jakiegoś złego kodu. W przyszłości nauczysz się:

Idealny kod nie istnieje.

Kod z czasem traci jakość, a historia programistów można zobaczyć w kodzie i pogarsza się, dopóki koszt utrzymania programu nie stanie się wyższy niż napisanie nowego, czyli wtedy, gdy ludzie to robią.

Jak możesz pomóc w podejmowaniu najlepszych decyzji? Jeśli naprawdę zależy Ci na tym, aby Twój kod był jak najlepszy (zakładając, że nie wpłynie to na ograniczenia czasowe, ale tak czy inaczej). Odpowiedź jest prosta. Spójrz na przykłady online i dyskusje na ten temat ... WIELE z nich! Spróbuj postępować zgodnie z konsensusem na wielu forach.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...