Czego młodszy programista powinien oczekiwać od swojego kierownika zespołu wyższego szczebla [zamknięte]

44

Zastrzeżenie: Wyrażone opinie są wyłącznie moje i nie wyrażają poglądów ani opinii mojego pracodawcy.

Pracuję dla małej firmy, w której niewiele osób jest programistami, inni QA / Test, a 1 to Menedżer. Dołączyłem do tej firmy 1,5 roku temu. 3 starszych programistów ma ponad 8 lat doświadczenia.

Są to spostrzeżenia, które poczyniłem na temat prowadzenia zespołu. (uważanie mnie za świeższego z mniejszym doświadczeniem w porównaniu do nich we wszystkich aspektach)

  1. Nigdy nie dyskutują 1: 1 lub nigdy nie biorą pod uwagę sugestii młodszych (zgadzam się, że to zależy od nich, czy je przyjmą, czy nie, przynajmniej powinni rozważyć opinię).
  2. Jako starszy lider zespołu mogą próbować przebudować bazę kodów przy użyciu nowych technologii (w tym czynnik wdrażania nowych technologii jest możliwy, a także inny programista i infrastruktura również gotowi), ale liderzy zespołów czują się mniej pewnie pracując z nowymi technologiami, ponieważ nie są aktualne. (powód, który mówię, nie wiedzą, jaki jest obecny trend programistyczny, * (takie jak popularne projekty open source, takie jak modernizr, bootstrap i wiele innych).
  3. W naszej bazie kodu powtarza się ponad 10000 linii, więc im powiedziałem DRY: Don't Repeat yourself. Odpowiedzieli: „To fascynujący artykuł, ale nigdy nie działa w praktyce”. Właśnie powiedziałem im, że jeśli nie zrobimy tego w 100% SUCHYM, możemy przynajmniej użyć interfejsów, ale również tego nie wziąłem pod uwagę. * (interfejsy można dodać dla nowych funkcji, nie dotykając poprzedniej bazy kodu, jeśli nie są gotowe do refaktoryzacji)
  4. Wszyscy starsi programiści wykonują konserwację i naprawy poprawek na gorąco. Resztę czasu spędzają na witrynach rozrywkowych. Chętnie kończą zadanie.
  5. Wprowadzenie nowej technologii jest złe? * (w tym współczynnik wykonalności można zrobić).
  6. Menedżer najmniej martwi się także o rzeczy, o których mówię.
  7. Junior oczekuje, że mogą nauczyć się wielu rzeczy od kierownictwa zespołu. * (nie prosząc o pomoc lub starszego kodowania dla nich).

Moje pytania to:

  1. Czy jestem zbyt agresywny w stosunku do proponowanych przeze mnie zmian?
  2. Czego mogę się spodziewać od starszych deweloperów, którzy mają ponad 8 lat doświadczenia?
  3. Czy mam rację, oczekując nauki i zdobywania doświadczenia w firmie?

Aktualizacja :

Dlaczego uważają, że DRY jest niepraktyczne: ponieważ nie chcą angażować się w koncepcje OOP. Są zadowoleni z powtarzania zadań.

Nowe technologie, które proponuję:

  1. Zastosowanie minimalizacji obrazów CSS, JS, SPrite
  2. Wykorzystanie interfejsów i .NET Framework 4, generics i wielu innych.
  3. Biblioteki po stronie klienta, takie jak modernizr, knockout js, bootstrap dla responsive,
Ravi Gadag
źródło
40
Tylko uwaga: lata doświadczenia nic nie znaczą. Jest takie powiedzenie: „niektórzy ludzie mają 10-letnie doświadczenie, niektórzy mają 1 rok powtarzany 10 razy” (parafraza). Opieraj swoje oczekiwania na ich umiejętnościach i wiedzy, a nie na tym, jak długo tam byli.
Anthony Pegram,
6
Ravi, chciałbyś wierzyć, że się uczą i rosną. Zdecydowanie zbyt powszechne jest to, że osiągnęli pewien poziom. Niezależnie od tego, czy wynika to z samozadowolenia, po prostu nie jest kwestionowany, czy też naprawdę osiągnęli swój limit, to zależy od osoby i sytuacji.
Anthony Pegram,
5
@Ravi twoja percepcja jest taka, że ​​kierują tobą zespół, ale jest całkiem możliwe, że ich percepcja jest taka, że ​​zarabiają dobre pieniądze, a ludzie nie mówią im, co mają robić, aby mogli robić, co chcą. Nie każdy chce ci pomóc tylko dlatego, że powinien, a wiele osób nie zadaje sobie trudu poprawy, jeśli może tego uniknąć, stając się liderem zespołu bez samodoskonalenia.
Jimmy Hoffa
14
Już jesteś daleko przed nimi i nie są zainteresowani podniesieniem się do pozycji, w której są gotowi do pracy z tobą. Zwolnij swoją firmę.
user16764
5
Zwykle jestem za nową technologią, która zapewnia czystszy sposób robienia czegoś. Należy jednak uważać, aby nie wprowadzać wielu nowych technologii tylko dlatego, że są one nowe i lśniące. Jeśli projekt dopiero się rozpoczyna lub potrzebuje nowej funkcjonalności lub refaktoryzacji, może być dobrą okazją do wprowadzenia czegoś nowego. Jeśli projekt jest stabilny (wymaga jedynie drobnych poprawek) lub jeśli się spóźnia, lepiej byłoby unikać wprowadzania nowych rzeczy.
marcus

Odpowiedzi:

30

Czy jestem zbyt agresywny w stosunku do proponowanych przeze mnie zmian?

Bez konkretów (jakie nowe technologie proponujesz, dlaczego je odrzucają, gdzie uważają, że DRY jest niepraktyczny i dlaczego itp.), Trudno jest ocenić wartość merytoryczną twoich propozycji i jest to ważne dla twojej agresywności. Jeśli chcesz, aby korzystali z nowego frameworka, ponieważ uważasz, że jest on nowy i fajny, to naciskanie bardziej niż lekko jest zbyt agresywne. Jeśli naprawdę wbijają tysiące linii kopiuj / wklej do bazy kodu (tj. Piszą bzdury), powiedziałbym, że większa agresywność jest uzasadniona.

Ale to zależy również od dynamiki interpersonalnej między tobą a nimi. Radzę zadać sobie pytanie „czy mogę wykazać, że moje sugestie przyniosą korzyść firmie?” Jeśli odpowiedź brzmi „tak”, to powiedziałbym, że masz licencję do wypchnięcia.

Czego mogę się spodziewać po wyższym potencjale deweloperskim, który ma ponad 8 lat?

To uruchomi gamut. Czasami spotkasz naprawdę ostrych ludzi, od których możesz się wiele nauczyć, zarówno pod względem nawigacji w biurze, jak i względów technicznych. Niestety, dostajesz również dużo tego . Nie brakuje osób, których ponad 8-letnie doświadczenie w zasadzie sprowadza się do zrobienia absolutnego minimum, aby się nie zwolnić. Jeśli znajdziesz mentora lub kogoś, kto jest naprawdę bystry, trzymaj się tego, jak możesz, ponieważ jest to mniej powszechne niż powinno być.

Czy mam rację, oczekując dobrej nauki od firmy?

Ludzie, z których można się uczyć, są tam i są w niektórych firmach. Wydaje się, że masz do czynienia z powszechnym dylematem, a parafrazując facetów z .NET Rocks, warto rozważyć: „Zmień swoją firmę ... lub zmień swoją firmę”.

Oznacza to, że jeśli wierzysz w niektóre podstawowe podejścia i zasady i konsekwentnie nie jesteś w stanie ich sprzedawać oraz zyskać swobodę robienia i uczenia się rzeczy, które chcesz robić i się uczyć, warto rozważyć poszukiwanie firmy, która byłaby lepsza pasuje do ciebie.

Erik Dietrich
źródło
1
Pokazałem demo wszystkich nowych rzeczy. wciąż są niewygodne. zobacz moją zaktualizowaną odpowiedź
Ravi Gadag
1
Wydaje mi się, że twoje pomysły byłyby najprawdopodobniej ulepszeniem tego, co istnieje. Następnie należy dowiedzieć się, dlaczego zostają odrzuceni. Nie zbudowałeś wystarczającej liczby przedstawicieli z seniorami? Są leniwi? Niezrozumienie? Czy mógłbyś robić lepsze sprawy, czy mógłbyś sobie wyobrazić po udowodnieniu siebie? Jeśli tak, wypatrywanie go może być dobrym doświadczeniem. Jeśli są po prostu leniwi i bezinteresowni, może nie.
Erik Dietrich,
1
Są bezinteresowni.
Ravi Gadag
6
@RaviG: Oczywiście, że są bezinteresowni. Jesteś świeżym nowym twórcą, chętnym do pomocy, z oczami znacznie większymi niż brzuch ... i próbujesz powiedzieć swoim twórcom, co ma robić. Wystarczająco źle, gdy zarząd ma codziennie nowy pomysł na zmianę całego produktu ... nowego faceta? pfft. Zrób coś.
Steven Evers,
19

Napiszę to z mojej perspektywy jako Starszy programista (lub wstawię inny fantazyjny tytuł, który ci się tu podoba), który często współpracuje z programistami Junior.

Prawdopodobnie jest to niedobór zarówno z przodu, jak i frontu Senior Developers.

Jedną rzeczą, której wielu programistów Junior nie rozumie, jest to, że (jako junior) naciskasz na stosowanie nowych technologii, nowych sposobów robienia rzeczy, informując zespół, że robią to źle itp. - Seniorzy w zespół zgłasza się do kierownictwa przy dostawie i jest nakłaniany przez kierownictwo do dostarczania nowych rzeczy tak szybko, jak to możliwe, aby firma mogła zarobić jak najwięcej pieniędzy (lub zapewnić najlepsze wyniki dla klienta / klienta).

Czasami wypróbowane i sprawdzone sposoby dostarczania po prostu przewyższają ryzyko wdrożenia [wstaw tutaj fajną technologię] . Napięte terminy, zbyt dużo pracy i obciążenie ciężarówką do uruchomienia oznacza, że ​​sposób, w jaki robiliśmy to od ponad 8 lat, jest tym, co robimy tym razem.

Musisz być w stanie wykazać zespołowi, że to, co proponujesz, na pewno przyniesie im korzyść na dłuższą metę. W przeciwnym razie nie otrzymasz wpisu od współpracowników i nie będą oni w stanie sprzedać go zespołowi zarządzającemu, aby uzyskać zgodę na jego uruchomienie.

Czy jestem zbyt agresywny w stosunku do proponowanych przeze mnie zmian?

Być może nie znając wszystkich okoliczności. Samo powiedzenie ludziom, że A jest lepsze niż B, więc powinniśmy używać A, nie ma większego znaczenia. Musisz iść i zrobić coś, aby pokazać, dlaczego tak jest lepiej. Nie musi to być duży, nawet mały komponent lub aplikacja, która pokazuje, że sugerowany sposób działania powinien być więcej niż wystarczający. Następnie musisz go przedstawić i być gotowym na przeciwstawienie się krytyce ze strony zespołu.

Nawet jako starszy programista muszę to zrobić, zanim będę w stanie przekonać moich kolegów, że nowy sposób robienia rzeczy jest lepszy.

Czego mogę się spodziewać od starszych deweloperów, którzy mają ponad 8 lat doświadczenia?

Jak powiedzieli inni, ponad 8 lat doświadczenia niekoniecznie oznacza, że ​​jesteś fantastyczny. Ale ogólnie rzecz biorąc, powinieneś być w stanie wiele się nauczyć od kogoś, kto był w pobliżu pułapek; możesz też być w stanie ich czegoś nauczyć.

Ludzie to ludzie i każdy ma ego (niektóre większe od innych) i nie ma nic gorszego niż nowy facet, który przychodzi i mówi ci, że źle wykonywałeś swoją pracę przez ostatnie 8 lat. Jednocześnie starszy programista (dobry) powinien być w stanie podjąć konstruktywną krytykę i wyartykułować powody swoich decyzji.

Czy mam rację, oczekując nauki i zdobywania doświadczenia w firmie?

Nieużywanie najnowszych i najlepszych technologii i funkcji nie oznacza, że ​​nie uczysz się i nie zdobywasz doświadczenia w swojej firmie. Doświadczenie jest doświadczeniem, czasem znajomość starego sposobu robienia czegoś może dać ci lepsze zrozumienie, dlaczego nowy sposób jest lepszy. Pomaga to również pokazać, dlaczego nowy sposób jest lepszy, ponieważ rozumiesz oba i możesz wypowiedzieć bardziej przekonujący argument, gdy próbujesz go sprzedać. Osobiście nie używam najnowszych i najlepszych rzeczy, w których obecnie pracuję - ale wciąż uczę się nowych rzeczy każdego dnia i nadal wygląda dobrze na moim CV.

Powiedziawszy to wszystko - jeśli firma naprawdę nie jest dobrze dopasowana, a wszystko inne zawiedzie, możesz poszukać nowego miejsca do pracy.

Deco
źródło
odnosząc się do twojego pierwszego punktu, myślę, że jest to luka w stosunku do starszych deweloperów. W jaki sposób młodszy programista może zrozumieć pełne implikacje ich nacisku na nową technologię, jeśli starszy programista nie przedstawi im tego? istnieje również równowaga w porządku, że musi być zachowana między przyklejania do niezawodnej technologii i pozwalając Junior deweloperów uczyć się nowych rzeczy (aby mieć pewność, że jest dużo nauki, które mogą zdarzyć się w sferze niezawodnego Tech)
Rudolf Olah
12

Potraktuj to jako ogromną szansę.

Promocje często nie pochodzą (i nie powinny) od liczby lat spędzonych w firmie. Masz naprawdę dobre pomysły, a Twoi przełożeni / koledzy nie chcą słuchać.

Oto strategia:

  1. Zrób coś niesamowitego
  2. Zbieraj twarde dane dotyczące tego, jak niesamowite jest (ten krok jest kluczem)
  3. Zademonstruj to za pomocą swoich danych dla wszystkich w Twojej firmie (właściciel / potencjalny klient / seniorzy / handlowcy - każdy, kogo możesz zdobyć)
  4. Zysk

I nie chcę profitbyć jakimś niejasnym krokiem „wygrywam”. Krok 4 polega na uzyskaniu jednego lub wszystkich następujących elementów:

  1. Lansowany
  2. Podwyżka
  3. Premia

Albo ze swoją firmą, albo nową, która może docenić twoje talenty i niesamowite wskaźniki, które masz w swoim CV.

Nazywam to „byciem niesamowitym” - i działa .

Anegdota: Nie jestem konsekwentnie wspaniały, ale staram się być i wykonałem kroki podane 5 razy (2 promocje, 3 nowe prace; wszystkie ze znacznym wzrostem wynagrodzeń).

Mając to na uwadze, prawdopodobnie powinienem bezpośrednio odpowiedzieć na twoje pytania:

Czy jestem zbyt agresywny w stosunku do proponowanych przeze mnie zmian?

Czy zrobiłeś już coś niesamowitego z danymi i przykładami tego, jak to jest niesamowite? Jest takie stare powiedzenie (może tandetne) ...

Ideas are like assholes; everyone's got one, and they all stink

Zrób coś.

Czego mogę się spodziewać od starszych deweloperów, którzy mają ponad 8 lat doświadczenia?

Poważnie? Nie powinieneś oczekiwać niczego. Ale spróbuj nauczyć się wszystkiego, co wiedzą. Zadawaj pytania, prywatnie przeglądaj ich prace, słuchaj, kiedy rozmawiają i krytycznie myśl o tym, co mówią. Są doświadczeniem w pudełku ... Eee ... Ciało. Spróbuj je otworzyć i uczyć się. Mój najlepszy przyjaciel jest genialnym programistą i aktywnie mówię mu, że zawsze staram się od niego uczyć jak najwięcej.

Czy mam rację, oczekując nauki i zdobywania doświadczenia w firmie?

Absolutnie nie. To nie znaczy, że nie możesz się uczyć, czego nie robić. Ludzie popełniają błędy, uczą się na błędach Twojej i Twojej firmy.

Steven Evers
źródło
3
Może to zaszkodzić, jeśli reszta drużyny nie jest na poziomie, który może rozpoznać twoją niesamowitość lub czuje się zagrożona.
user16764
@ user16764: Czy możesz bardziej sprecyzować wygląd tego scenariusza? Doświadczyłem obu odpowiedzi i nie wszystkie moje niesamowite rozwiązania zostały wybrane przez zespół, ale nigdy nie zrobiły tego „przeciwnie”.
Steven Evers
Próbowałem tego, gdy byłem w podobnej sytuacji do PO. Następnie zostałem poddany: a) „co robisz w tym drugim” punkcie kontroli co 15 minut, b) 5-minutowym rantom polegającym na krzyczeniu „NIE JESTEŚ Z NAMI!” raz po raz, c) kazano mi się zamknąć (a ściślej mówiąc, że „dostaję się na boczny tor”) za każdym razem, gdy powiedziałem jedno zdanie, oraz d) być zwolnionym z tego powodu, że „w kierunku, w którym zmierza firma zmienił się ". Fakt, że to, co zrobiłem, było niezbędne do dostawy, nie był kwestionowany, ale też nie został potwierdzony.
user16764
1
@ user16764: Czy zebrałeś twarde dane o tym, jak skuteczne było twoje rozwiązanie, i znalazłeś pracę w CV? (edytuj: btw, to całkiem nieźle, że ludzie to zrobili)
Steven Evers
1
@ user16764: Jeśli możesz obiektywnie, na podstawie twardych faktów, pokazać, że w tym konkretnym przypadku to, co zrobiłeś, było niesamowite, a następnie ludzie próbują nakłonić cię do zrobienia tego, co robią wszyscy inni, poważnie dostać nową pracę. Nie możesz przyciągnąć wszystkich innych do uczenia się przez całe życie i doskonałości, ale oni na pewno, jak cholera, mogą doprowadzić cię do czegoś wręcz przeciwnego.
Christopher Creutzig
4

Myślę, że musisz być kreatywny. Zacznij pytać o jakieś prośby o dodatkowe projekty, które twoi seniorzy odkładają. Pracując nad czymś niezależnie (lub jeszcze lepiej, poproś o to kolejnego młodszego programistę) i od samego początku możesz zastosować wiele nowych rzeczy. Nie zdziw się, jeśli się dowiesz, że to nie wszystko na lepsze.

Innym podejściem byłoby utworzenie własnej gałęzi kodu i przejście przez proces refaktoryzacji. Może nigdy nie wejdę do produkcji na podstawie tego, co powiedziałeś, ale przynajmniej poprawisz swój zestaw umiejętności.

Kto wie, może zobaczyć, w jaki sposób możesz ułatwić wszystkim pracę, i wykorzystają prawdziwe lenistwo w programowaniu.

Jeśli wszystko inne zawiedzie, umieść nowy zestaw umiejętności w swoim CV i zacznij szukać innej pracy.

JeffO
źródło
1

Jeśli ktoś pracuje jako programista przez ponad 8 lat, to nie znaczy, że jest dobrym programistą. Co, moim zdaniem, sprawia, że ​​dobry programista jest programistą? Chodzi o dzielenie się nie tylko doświadczeniami, ale także o uczenie się nowych myśli, technik, technologii itp. Będzie się ciągle poprawiać i ulepszać. Wielu tak zwanych „starszych” programistów jest ułożonych w stare wzorce programowania funkcyjnego z dawno minionych języków. Coś w rodzaju nowych koncepcji i pomysłów nie jest po prostu dla nich, ponieważ ich nie potrzebują. Dostali swoje „doświadczenie”.

Wola doskonalenia się i uczenia się jest o wiele ważniejsza niż lata doświadczeń. Młodszy programista, który chce się uczyć, jest znacznie lepszy dla każdej firmy niż stary „starszy” programista, który już „wszystko wie”.

Adroniusz
źródło
1

Czy pracujesz w mojej firmie?

Ale poważnie, wydaje się, że jest to dość powszechny wątek w wielu dużych firmach. Zmiana jest trudna i DROGA. Czasami tak naprawdę nie wiesz ile, dopóki nie będziesz w środku i nie będzie za późno, aby wrócić.

Na przykład moja firma wciąż migruje z ekranów komputerów mainframe opartych na kobolu do java. Trudno jest sprzedać kogoś na Spring lub JSF, kiedy nadal starają się dostosować jego technologię do standardów sprzed dziesięciu lat. Więc powiem wam, co zrobiłem, co odniosło pewien ograniczony sukces (ja też jestem jr dev). Bądź przykładem. Nie wystarczy, że znasz się na swojej najnowocześniejszej technologii, musisz to udowodnić. Kiedy wszyscy wygłupią się, przynieś książkę do przeczytania, jeśli masz przestoje. I spraw, aby jedna z tych technologii była zainteresowana wdrożeniem. Jeśli widzą, że czytasz to podczas oglądania youtube (szczerze zdziwiłeś, że twoja jednostka operacyjna tego nie łapie i ludzie zostają zwolnieni), będą bardziej skłonni nie tylko uwierzyć, że wiesz, o czym mówisz, ale może nawet zapytać, o co mówisz czytanie.

Jako przykład opowiem o moim doświadczeniu z moim starszym architektem. Sprytny facet, ale generalnie nie zainteresowany nowymi technologiami. Poszedłem i zapytałem go, jak zrobić coś w CVS (nasza kontrola wersji) i wspomniałem: „Och, przyzwyczaiłem się do korzystania z subversion, a robią to w ten sposób. Dzięki za pomoc”. Doprowadziło to do kilku rozmów na temat CVS i Anta vs. SVN i Mavena, co doprowadziło do tego, że pożyczył kilka książek z mojej biblioteki, aby to sprawdzić. Wynik końcowy: w tym roku przeprowadzimy się do nowych systemów. Kluczem do sukcesu jest bycie otwartym i pomocnym bez informowania, że ​​robią to źle. Bo przecież może istnieć wiele lepszych sposobów, ale jeśli działa poprawnie, to nie robią tego w niewłaściwy sposób. Każdy rodzaj braku szacunku w większości przypadków wyląduje w gorącej wodzie, więc uważaj na to.

Jeśli po prostu nie są otwarci, pamiętaj, że jesteś na wielkim polu, na które jest duże zapotrzebowanie. Jeśli twój dociekliwy i szybki uczeń ZNAJDZIESZ inną pracę, prawdopodobnie taką, która spodoba ci się o wiele więcej. Co jest dla mnie tak samo ważne jak pieniądze. Pamiętaj, aby wspomnieć w każdym wywiadzie: „Och, używacie technologii xxx? To niesamowite, zawsze chciałem z niej korzystać i próbowałem w mojej starej firmie”. Ludzie kochają, kiedy masz entuzjazm do tego, co robią.

Sedaition
źródło
0

Myślę, że masz rację w swojej agresywności. To wielka przyjemność pracować z ludźmi z pasją i wielka kara za pracę z umarłymi umysłowo. 8 lat doświadczenia nic nie znaczy. Oczywiście możesz nie mieć racji. Często nowe technologie są ściśle związane z marketingiem i nie zawsze są lepsze. Ale jeśli nie masz racji, seniorzy powinni wyjaśnić ci, gdzie się mylicie. W przeciwnym razie nie uzyskasz żadnych korzyści z pracy. Może jesteś młody i gorący. Jeśli tak, to twoja zaleta. Nie marnuj czasu na pracę, w której nie możesz się rozwijać. Troska o znalezienie nowej pracy, w której możesz omówić swoje rozwiązania i uzyskać opinie od innych.

wieczność
źródło