Jak zerwać z rolą opiekuna kodu? [Zamknięte]

13

W moich ostatnich trzech pracach byłem opiekunem kodu. We wszystkich trzech przypadkach zostałem zatrudniony po tym, jak większość kodu projektu została już napisana.

Jestem programistą samoukiem. Zanim zacząłem swoją pierwszą pracę zawodową, miałem za sobą kilkanaście projektów, które rozpocząłem i pomyślnie wysłałem.

Pisanie nowego kodu i utrzymywanie istniejącego kodu to dwa zupełnie różne zadania. To jak porównywanie inżyniera lotniczego z mechanikiem lotniczym.

Jest to szczególnie do bani, gdy jesteś mechanikiem samolotowym pracującym na samolocie zaprojektowanym przez inżyniera, który nie próbował inżynierii samolotu, aby był w jakikolwiek sposób logiczny lub łatwy w utrzymaniu.

Zaczynam mieć ochotę być w pobliżu, kiedy projekt zaczyna się, musisz być jednym z tych wyjątkowych ludzi, którzy jakoś przekroczyli resztę ludzi w dziedzinie informatyki. Co trzeba zrobić, aby znaleźć się na tej pozycji?

Mam wrażenie, że na to pytanie nie ma tak naprawdę łatwej odpowiedzi, ale czy ktoś mógłby dać mi jakieś spostrzeżenia? Czy byłeś kiedyś na parterze nowego projektu? Co zajęło ci dotarcie?

nbv4
źródło
Czy ubiegasz się o pracę Code Maintainer?
James
@James wszystkie zadania to zadania związane z utrzymywaniem kodu, a przynajmniej wszystkie z nich, z którymi się spotykam ...
nbv4,
Nie zniechęcaj się. W technologii nic nie jest trwałe. Możesz poczuć się jak mechanik kontra inżynier. Ale myślę, że istnieje wiele firm z samoukami liderów i pszczół robotniczych z zaawansowanymi stopniami naukowymi. Status, wiedza i wysiłek, aby spełnić formalne wykształcenie, powinny mieć pewną nagrodę, ale czy twoja odpowiedź brzmi „co ostatnio dla mnie zrobiłeś?” jest lepszy, idzie długą drogę.
DeveloperDon

Odpowiedzi:

6

Utrzymanie oznacza różne rzeczy dla różnych ludzi i powstaje z różnych powodów.

  • W najgorszym przypadku początkowy system został pospiesznie poskładany, początkowy zespół wziął kredyt za całość. Postępowali zgodnie z zasadą 80/20, więc chociaż może istnieć minimalny opłacalny produkt, który można sprzedać, wielu klientów potrzebuje wielu poprawek i drobnych ulepszeń. Pozostało wiele problemów, ale niewiele chwały. Masz najcięższą pracę i jest niewdzięczna. Mam nadzieję, że to nie twoja sytuacja.
  • Lepiej jest, gdy wykazałeś, że jesteś ostrożny ze swoją pracą i możesz ufać, że wprowadzi zmiany w produkcie polowym bez jego zepsucia. Pozostające problemy są zbyt trudne dla osób, które wspólnie opracowały oryginalny system. Może nie udało im się zbudować systemu, aby przetrwać, a ty jesteś, być może jako ich zamiennik, aby naprawić problemy i uratować klientów, projekt i zyski.
  • Bardzo prawdopodobny przypadek, 60% kosztów projektu powstaje podczas konserwacji. Być może nadszedł czas, być może twoja organizacja rozdziela między nowy rozwój i utrzymanie, ale jesteś w 3/5 większości, ponieważ wielu z nas zajmuje się utrzymaniem.

Oto kilka rzeczy do wypróbowania:

  • Wykonuj świetną robotę, miej świetne podejście, bądź liderem pomysłów.
  • W miarę możliwości pracuj w zespołach, a nie sam.
  • Ucz się nowszych języków.
  • Naucz się nowszych platform.
  • Prośba o pracę nad mniejszymi programami, może nawet dotyczyć mniejszych firm.
  • Zdobądź umiejętności i zaangażuj się w dokumentację. Kiedy projekty się rozpoczynają, nawet w epoce po wodospadzie, potrzebują dużo pisemnej koordynacji w celu opracowania mapy, udokumentowania, oceny i wyjaśnienia wymagań.
  • Rozpoczynanie projektów w rękach ludzi, którzy nie doceniają zarządzania wymaganiami, szacowania i oceny ryzyka, jest niebezpieczne, więc ucz się i ćwicz te umiejętności tak bardzo, jak to możliwe.
  • Uzyskaj bardziej formalne szkolenie lub certyfikaty. Może to zwiększyć twój status i uczynić cię bardziej atrakcyjnym wyborem, gdy tworzone są zespoły do ​​nowych projektów programistycznych.
  • Załóż firmę lub konsultacje z boku. Daje to kreatywny rynek docelowy, umożliwiający wybór ulubionego rodzaju pracy, i pozwala lepiej zrozumieć, jak to jest zacząć bez kodu i dokumentacji.
  • Zbliż się do swojego szefa i ludzi, którzy planują nowe projekty.
  • I odwrotnie, jeśli jesteś bardzo blisko testerów i kontroli jakości, ich dane wyjściowe często stanowią wkład w utrzymanie, więc zgadnij, z kim twój szef uważa, że ​​naprawdę dobrze współpracujesz?
  • Zdobądź jak najwięcej przyjaciół i zdobądź szacunek jak największej liczby deweloperów greenfield.
  • Nowi programiści są w stanie robić ludzie, więc bądź ostrożny, jeśli chodzi o jakąkolwiek nutkę krytyki lub negatywności. Daj im swoje pomysły bez winy i osądu. Twoje pomysły nie wymagają przedstawiania, po prostu powiedz je. Nigdy nie mów, że robiliśmy to w ten sposób, albo to nie działa, spróbuj tego. Nigdy nie mów, nie wiem, ale to może zadziałać. Po prostu powiedz pomysł. Lub lepiej, pokaż to.
  • Znajdź i skorzystaj z okazji, aby zbudować proof-of-concept, który może przekształcić się w nowy projekt.
  • Uważaj, kto przypisuje ci pracę. Zwykle powinien to być ktoś z twojego łańcucha dowodzenia. Jeśli to twoi rówieśnicy, cofnij się trochę. Jeśli jest to ktoś, kogo nadzorujesz, musi istnieć dobry powód, dla którego kontrola odwraca. Jeśli jest to kontrola jakości lub test, upewnij się, że ma to znaczenie dla łańcucha dowodzenia i nie jest zaplanowane w sposób, który opóźnia pracę obiecaną wcześniej.
  • Strzeż się doskonałości. Nowy rozwój jest często zarezerwowany dla szybkich ludzi, nawet jeśli spojrzą sobie w oczy i nie rzucą kropek.
  • Poświęć czas na naukę i ćwiczenie wczesnych umiejętności projektowych odpowiednich dla twojej linii rozwoju. Może to obejmować: tworzenie repozytoriów źródłowych, definiowanie środowiska kompilacji, konfigurowanie stałego serwera integracyjnego, ścisłą współpracę z zespołem sprzętowym w celu tworzenia nowych płyt z pakietami obsługi płyt lub pisanie mocy podczas autotestów. Może nawet pomóc wiedzieć, jak pracować z zakupami, aby kupować nowe narzędzia programistyczne, szkolenia i sprzęt COTS.
  • Upewnij się, że kontynuujesz przed zamknięciem projektu konserwacji, być może kupując swoje umiejętności wewnętrznie wśród kierowników zespołów, a może kierowników, lub zewnętrznie.
  • Płynnie posługuj się każdą znaną technologią i poznaj wiele technologii.

Rola konserwacyjna może zostać wykorzystana na kilka sposobów.

  • Możesz potencjalnie pracować nad każdym projektem, który tworzy grupa, a nawet firma.
  • Jeśli nowe prace rozwojowe i konserwacyjne zostaną rozdzielone, możesz potencjalnie podążać ścieżką mniej konkurencyjnego przywództwa. Ołów w nowych projektach jest bardzo pożądany, ale ołowiu może być dostępny na żądanie. Jeśli masz do tego zachęty i mentoring, członkowie tego zespołu mogą to docenić bardziej.
  • Jeśli projekt jest w trakcie konserwacji, istnieje większe prawdopodobieństwo interakcji z klientami. Źle potraktowane, to kończy karierę. Właściwie potraktowany, zyskuje pozytywną uwagę poza rozwojem, który trudno znaleźć bez bycia menedżerem.

Powiedziawszy to wszystko, jestem kontrprzykładem, a nie wzorem do naśladowania. Duża część tej perspektywy pochodzi z doświadczenia i obserwacji.

Istnieje wiele nowych programów, które wciąż wymagają napisania.
Bądź gotowy, a wkrótce będziesz pracował nad jednym zaskakująco.

DeveloperDon
źródło
4

Mam dla ciebie złe wieści: wiele aplikacji, których potrzebuje ludzkość, jest już napisanych, po prostu należy je dostosować do ciągle zmieniającego się środowiska.

Pewnego dnia zostaniesz poproszony o napisanie nowej części systemu, na przykład nowego modułu, i będziesz mógł wykorzystać swoją wiedzę na temat rozwoju zielonych pól.

Do tego czasu możesz spróbować nauczyć się refaktoryzacji starszych aplikacji do czyszczenia modułów.

Dobry tekst to „ Praca ze starszymi aplikacjami ” i „ Refaktoryzacja do wzorców ”. Jeśli nie przeczytałeś oryginalnego Refaktoryzacji (Fowler), zrób to. I naucz się programowania opartego na testach (TDD), zawsze pomaga.

Jeśli pracujesz z PHP, napisałem praktyczny artykuł, ten kod nadal działa ...

Baw się dobrze!

Aadaam
źródło
1

Najłatwiejszym sposobem na ucieczkę jest całkowita zmiana stylu programowania, a także dodanie nowych umiejętności w tym samym czasie. Na przykład możesz spróbować zostać naukowcem. To może nie być prestiżowa praca na pierwszy rok, a na pewno nie jest tak dobrze płatna jak normalne prace programistyczne (w pierwszym roku, jeśli jesteś pracownikiem naukowym / badawczym w zespole uniwersytetu - oczywiście, ponieważ starszy badacz jest ładny w dużej mierze zgodne z resztą branży), ale z pewnością sprawi, że twoje umiejętności będą pracować nad najtrudniejszymi problemami, jakie możesz dziś znaleźć. Po takiej pracy możesz łatwo skoczyć na lepszą pozycję, pod warunkiem, że masz kilka ciekawych projektów do pokazania następnemu szefowi.

paxRoman
źródło