3 kwietnia 2017

Moje podwórko

Spójrz na ten wykres, który wziąłem z bloga Petera Knego.


Peter pokazywał zależność pomiędzy wiekiem a reputacją na StackOverflow. Powiązanie jest niewątpliwe. Jak dotychczas im starszy programista, tym lepsza reputacja. On pokazuje także, na poniższym grafie, że powodem tego powiązania jest to, że starsi programiści odpowiadają na dużo więcej pytań niż ci młodsi.


Poniższy tekst jest luźnym tłumaczeniem wpisu bloga Roberta Cecila "Wujka Boba" Martina ze strony :
http://blog.cleancoder.com/uncle-bob/2014/06/20/MyLawn.html
Proszę o komentarze, jeżeli ta luźność jest zbyt daleko posunięta.




A więc wydaje się, że im starszy programista, tym ma więcej wiedzy. Co więcej, ta wiedza nie przeterminowuje się. Więc Ci programiści nie mają jednego roku doświadczenia powtarzanego w kółko.

To ciekawe; to, co przykuło moją uwagę szczególnie, to kształt rozkładu wieku na pierwszym grafie. Jeżeli ten graf jest prawdziwy, to większość programistów ma mniej niż 28 lat. Większość programistów ma mniej niż 6 lat doświadczenia! Możliwe następstwa tego jeżą włosy na głowie! Kto uczy młodych programistów, którzy dopiero wchodzą do zawodu? Gdzie są seniorzy, którzy doradzają młodym? Czy branża programowania to logiczny odpowiednik Władcy Much? Wszyscy są dziećmi? Żadnych dorosłych?

Może to jest dobre. Przecież, Mark Zuckerberg powiedział [1]: "Młodzi programiści są ponadprzeciętni". Może miał na myśli to, że potrafią pracować zwariowaną liczbę godzin bez przerwy. Młodzi programiści mają masę dzikiej energii o wysokim natężeniu, powodującej wydostawanie się ogromnej ilości kodu z każdego otworu w ich ciele. Więc, może jest więcej młodych programistów, dlatego, że młodzi programiści są lepsi; a energia i zdolności starszych programistów odpływają po przekroczeniu trzydziestki. Może programowanie to zabawa dla osób młodych i starsi ludzie już nie mogą grać w tę grę tak efektywnie.



Graf Petera sugeruje coś odwrotnego. Im starszy programista, tym na więcej pytań potrafi odpowiedzieć - i potrafi poświęcić więcej czasu na odpowiadanie. Skutek jest taki, że starszych programistów cechuje mniejszy pośpiech, ponieważ mają więcej wiedzy i umiejętności. Kod nie wyłazi z każdego otworu ich ciała, ponieważ oni potrafią rozwiązywać problemy spokojnie, szybko i łatwo z użyciem mniejszej ilości kodu.

Ale jeżeli starsi programiści są lepsi, to gdzie oni wszyscy się podziali? Dlaczego połowa programistów na świecie ma poniżej 30 lat? Czy starsi programiści odeszli? Czy przenieśli się do zarządzania? Czy się wypalili i zostali rolnikami na farmach kurczaków? Dlaczego rozkład wieku spada tak szybko po trzydziestce?

W rzeczywistości większość programistów jest nadal tutaj i nadal programuje. Problem nie jest w tym, że starzy programiści odchodzą. Problem jest w tym, że liczba programistów rośnie z ogromną prędkością każdego roku.

Mam 61 lat. Nadal piszę kod. Kocham pisać kod. Jestem w tym bardzo, bardzo dobry. Więc dlaczego nie ma więcej 61-letnich programistów? Ponieważ, 40 lat temu, w 1974, kiedy miałem 21 lat, nie było wielu programistów w ogóle.

Zakładam, że w tej chwili na świecie jest 22 milionów programistów[2]. Jeden na 300 ludzi jest programistą. W Stanach Zjednoczonych to blisko 1 procent ogółu. Ale w roku 1974 liczba programistów na świecie była o rzędy wielkości mniejsza i prawdopodobnie wynosiła mniej niż 100 tys.[3] To oznacza, że przez ostatnie 40 lat ta liczba wzrosła 220 razy. To wzrost rzędu 14.5% na rok i podwojenie liczby raz na pięć lat.

Jeżeli wskaźniki liczby programistów podwajają się po każdych pięciu latach, to oznacza, że większość programistów była zatrudniona w ciągu ostatnich pięciu lat, więc około połowa programistów będzie mieć mniej niż 28 lat. Połowa tych ponad 28 będzie mieć mniej niż 33. Połowa tych ponad 33 będzie mieć mniej niż 38 i tak dalej. Mniej niż 0.5% programistów będzie mieć 60 lat i więcej. Więc większość z nas, starych programistów, nadal pisze kod. Jest tak, że nigdy nie było nas zbyt wielu.

Co to oznacza dla naszej branży?

Może nie jest tak źle jak we Władcy Much, ale fakt, że ci młodsi dramatycznie przeważają liczebnie tych starszych jest niepokojący. Tak długo jak ten trend będzie się utrzymywać[4] nie wystarczy nauczycieli, wzorców osobowych i przywódców. To oznacza, że większość zespołów programistycznych pozostanie bez kierowania, bez nadzorowania i bez doświadczenia. To znaczy, że większość firm programistycznych będzie musiała na nowo powtarzać lekcje sprzed pięciu lat. To znaczy, że branża jako całość, zdominowana przez początkujących istnieje w stanie ciągłej niedojrzałości.

I, znowu, to jest prawda tak długo, jak utrzyma się wzrost wykładniczy. Czas może uleczyć ten problem.

Zapraszam na Moje Podwórko


Wiem. Wiem. Wielu z Was wywraca teraz oczy i szepcze do siebie: "Ej, gówniarze, spieprzać z mojego podwórka". Ale, nie. Ja chcę mieć te dzieci na swoim podwórku. Ja chcę uczyć tylu młodych programistów, ilu tylko potrafię. Chcę pomóc Im ominąć pułapki i dziury, w które wpadłem 35 lat temu. I chcę, aby wszyscy 60-, 50-, 40- letni programiści uczyli i prowadzili innych, ile tylko się da. Ci starsi goście powinni brać nowszych programistów pod swoje skrzydła i uczyć ich jak się lata na poważnie.

Jeśli mam rację, to liczba programistów podwaja się raz na 5 lat, wtedy jeden na szesnastu deweloperów ma 40 lat lub więcej. To całkiem wysoki stosunek uczniów do nauczycieli; ale to jest do przerobienia. Część starszych powinna programować w parach, zamiast programować samemu. Powinni brać mniej osobistych zadań, by móc wspierać innych w ich zadaniach. Powinni stanowić wzory do naśladowania, powinni być przewodnikami zespołów, a nie jako menedżerami. Pomyśl o nich jako o Kapralach, a nie Porucznikach; dowódców grup, a nie dowódców batalionów. Powinni dowodzić zespołami w okopach i na linii frontu.

I powinni być opłacani bardzo dobrze, ponieważ mają ogromną siłę sprawczą.

Jeden doświadczony programista czterdziestolatek może mieć głęboki wpływ na zespół z tuzinem lub więcej dwudziestolatków. Jako przewodnik, ten programista może pokazywać zespołowi reguły, wzorce, praktyki i etykę. Ten przewodnik może złagodzić i powściągnąć młodzieńczy zapał, który prowadzi do przedwczesnych decyzji dotyczących frameworków i architektur. Ten przewodnik może zaszczepić wartości refaktoryzacji i czystego kodu, jako przeciwwagę dla młodzieńczego podniecenia podczas "ważneżedziała". Taki lider może zachęcać zespół do ciężkiej pracy przez osiem godzin, i po tym czasie może także zachęcać do wyjścia z pracy, aby zapewnić świeżość umysłu następnego dnia. To mogłoby zapobiec wypaleniu, zapobiec rozgoryczeniu, poczuciu, że godziny spędzone w pracy nie oznaczają rzeczywistej pracy i zapobiec temu podstępnemu przeświadczeniu własnej niezastępowalności, fałszywie pojętego heroizmu. Taki przewodnik może patrzeć na kilka miesięcy do przodu, wiedzieć zagrożenia i pułapki, które czyhają na horyzoncie i tak skierować zespół, aby uniknąć tych problemów.

Ale najważniejsze ze wszystkiego jest to, że taki lider może szkolić nowych liderów szybciej i z mniejszą ilością ofiar w ludziach niż "Uniwersytet Życia imienia Kopa w Tyłek".

Więc, tak, ci liderzy powinni być bardzo dobrze opłacani. Powinni być opłacani na tym samym poziomie co dyrektorzy, ponieważ mogą dostarczyć podobną wartość.

Idealna Strategia Zatrudniania


Jest takie przeświadczenie w branży, że lepiej zatrudnić młodych programistów, ponieważ są tani, pełni energii, i tworzą więcej kodu niż starsi programiści. Ale jak pokazało powyższe rozważanie to bardzo głupie stanowisko. Wierzę, że to przeświadczenie jest odpowiedzialne za wiele porażek w branży oprogramowania - szczególnie na polu startupów.

Dla mnie idealny stosunek juniorów do seniorów to około pięć do jednego.  Biorąc pod uwagę dane demograficzne, to bardzo trudne do osiągnięcia. Większość firm programistycznych, czy wydziałów IT nie osiągnie więcej niż 16:1. Jednakże, firmy programistyczne i wydziały IT, szczególnie startupy, powinny dążyć do utrzymania tego wskaźnika na najwyższym możliwym poziomie.

[1] Byłem w stanie znaleźć kilka źródeł tego cytatu, ale żadne z nich nie było pewnym źródłem, więc to może być Legenda Miejska.
[2] Estymacja oparta na tych badaniach.
[3] To moje przypuszczenia. Nie byłem w stanie tego zweryfikować. Mogę się mylić o około 10 razy w obie strony.
[4] Może to zwalniać. Aktualne przewidywania wynoszą 8% wzrostu na rok. Ale gospodarka była ospała przez ostatnie pięć lat. Gwałtowny wzrost gospodarczy może z łatwością podnieść wysoko ten czynnik .


Poniższy tekst jest luźnym tłumaczeniem wpisu bloga Roberta Cecila "Wujka Boba" Martina ze strony :
http://blog.cleancoder.com/uncle-bob/2014/06/20/MyLawn.html
Proszę o komentarze, jeżeli ta luźność jest zbyt daleko posunięta.



Brak komentarzy:

Prześlij komentarz

Podstawy Programowania Funkcyjnego Epizod 3

Czy wszystkie Zasady Się Zmieniają? Kiedy tylko zaczynamy używać nowego paradygmatu , porównujemy z nim na...