kluczem do skutecznego tworzenia oprogramowania jest współpraca.
żadna grupa osób nie może osiągnąć tak wiele, jak zespół, który jest w stanie naprawdę współpracować.
oznacza to naukę poruszania się po różnych typach osobowości, zrozumienie własnych mocnych stron (i słabych stron) i odkładanie nieporozumień na bok, aby pracować nad wspólnym celem.
ale aby to zrobić, musisz mieć pewien wgląd w typy ludzi, z którymi pracujesz. Potrzebujesz empatii dla ich doświadczeń – i praktycznej wiedzy o tym, jak pasują do ogólnej dynamiki zespołu.
w świecie tworzenia oprogramowania istnieje kilka typowych typów programistów, na które masz prawie pewność (jeśli jeszcze tego nie zrobiłeś). Podczas gdy żadna jednostka nie jest karykaturą w rzeczywistości, zrozumienie myśli i motywacji osób w Twoim zespole może pomóc Ci nauczyć się efektywniej współpracować.
w przypadku kierowników działu inżynierii kluczowe znaczenie ma również określenie względnych mocnych stron, umiejętności i tendencji członków zespołu. Pozwala to skuteczniej zarządzać osobami, a także myśleć strategicznie o tym, jak umieścić ludzi w stanie odnieść sukces.
przyjrzyjmy się najczęstszym typom inżynierów i rolom, które najlepiej nadają się do gry w zespole.
zagłębiając się w każdy z tych archetypów deweloperów, możemy dobrze zrozumieć, jaką rolę najlepiej nadają się do gry w zespole.
Kreator–lub doświadczony weteran zespołu–prawdopodobnie najlepiej nadaje się do prowadzenia głównych projektów i udzielania wskazówek młodszym programistom. Chociaż zazwyczaj są bardzo utalentowani i kompetentni, ich wieloletnie doświadczenie może doprowadzić ich do niewykonania długotrwałych praktyk i uniknięcia zmian lub „innowacji”.
po drugiej stronie spektrum Nieskończony Optymalizator prawdopodobnie będzie w ciągłym pogoni za najnowszym i najlepszym sposobem robienia rzeczy. Odkrycia te mogą pomóc zespołowi stać się bardziej wydajnym i efektywnym, ale dążenie do ciągłego doskonalenia może sprawić, że będą mniej niezawodni w międzyczasie.
większość zespołu programistów składa się prawdopodobnie z sumiennych programistów. Ci inżynierowie są niezawodni i konsekwentni, ale jest mało prawdopodobne, aby wprowadzić nowe pomysły lub posunąć się o krok dalej, aby upewnić się, że projekt jest sukcesem.
deweloperzy znani jako Superbohaterowie kontrastują z pilnymi koderami, ponieważ charakteryzują się intensywnymi wybuchami produktywności. Niestety, nikt nie jest w stanie utrzymać produkcji w nieskończoność, co oznacza, że ważne jest, aby zarządzać swoim czasem i energią. Kluczem jest wykorzystanie ich skrajnych tendencji tylko w krytycznym momencie, gdy jest to najbardziej potrzebne i najmniej narażone na zagrożenie jakości i spójności pracy zespołu.
niektórzy programiści pracują najlepiej w izolacji i bez większego nadzoru lub zarządzania. Uważamy tych twórców Za odizolowanych artystów. Często są one kojarzone z mistrzowstwem na poziomie geniusza, ale mogą zbytnio przemyśleć lub skomplikować projekty, które nie wymagają intensywnej, skoncentrowanej myśli.
większość zespołów polega na pewnych programistach, którzy mają niesamowitą zdolność do znalezienia idealnego rozwiązania i dokładnie we właściwym czasie–sprzęgła. Ci Programiści wydają się być niewiarygodnie niezawodni w czasie kryzysu, ale mogą naprawdę rozwijać się pod wysokim poziomem presji. Podobnie jak superbohaterowie, ważne jest, aby byli zaangażowani w projekty, w których mogą wnieść największą wartość.
wreszcie mamy programistów, którzy są uważani za ból głowy. Są to zazwyczaj młodsi inżynierowie, którzy czasami mogą popełniać błędy lub spowalniać projekty. Ale nie wszystko jest stracone. Dzięki odpowiedniemu zarządzaniu i wskazówkom programiści, którzy zaczynają jako problemowi, często mogą się doskonalić i rozwijać, aby stać się krytycznymi i wiarygodnymi członkami zespołu.
żaden z tych archetypów nie jest koniecznie „najlepszy”. W rzeczywistości większość zespołów będzie–i prawdopodobnie powinna-składać się z dość wyrównanej mieszanki. Oznacza to, że zespoły będą miały programistów, którzy oferują szereg komplementarnych mocnych i słabych stron, które mogą być połączone przez skuteczne przywództwo.
kluczem jest zrozumienie indywidualnych stylów i nawyków każdego programisty, aby ich wkład był maksymalizowany, a zespół–jako całość–mógł wykonać najlepszą możliwą pracę.
najlepsi menedżerowie to wiedzą i rozumieją.
zamiast egzekwować surowe, jednostronne oczekiwania wobec każdego typu dewelopera, Wielki lider oceni każdą osobę jako osobę, aby określić, jakie warunki muszą się rozwijać.
z odpowiednimi ludźmi w odpowiednich rolach, każdy będzie mógł działać lepiej.