{"id":572,"date":"2020-04-17T09:20:44","date_gmt":"2020-04-17T09:20:44","guid":{"rendered":"https:\/\/kalkus.dev\/?p=572"},"modified":"2023-08-24T23:25:31","modified_gmt":"2023-08-24T23:25:31","slug":"greenfield-seniorow","status":"publish","type":"post","link":"https:\/\/kalkus.dev\/blog\/2020\/04\/17\/greenfield-seniorow\/","title":{"rendered":"Greenfield senior\u00f3w"},"content":{"rendered":"\n<p>Masz do wydania milion dolar\u00f3w i pomys\u0142 na produkt. Co robisz?<\/p>\n\n\n\n<p>Rekrutujesz najlepszych ludzi i wierzysz, \u017ce ich do\u015bwiadczenie sprawi, \u017ce powsta\u0142y zesp\u00f3\u0142 efektywnie wytworzy oprogramowanie wysokiej jako\u015bci, prawda?<\/p>\n\n\n\n<p>Tymczasem&#8230;<\/p>\n\n\n\n<p>Przychodzisz po trzech miesi\u0105cach i widzisz, \u017ce:<\/p>\n\n\n\n<ul><li>pierwszy miesi\u0105c min\u0105\u0142 na dyskusjach o strategii branchowania, architekturze test\u00f3w, deploymentu, aplikacji, wyborze chmury, stosu technologicznego, narz\u0119dzi CI\/CD, wyborze lintera i standardzie formatowania kodu oraz kilku innych podobnych tematach<\/li><li>p\u00f3\u0142tora miesi\u0105ca zaj\u0119\u0142a implementacja infrastruktury w chmurze, automatycznych deployment\u00f3w, architektury aplikacji oraz refinement task\u00f3w<\/li><li>ostatnie dwa tygodnie dostarczy\u0142y nag\u0142\u00f3wek i stopk\u0119 oraz logowanie i rejestracj\u0119 u\u017cytkownika<\/li><\/ul>\n\n\n\n<p>Czujesz jak nadci\u015bnienie t\u0119tnicze napiera na \u015bcianki twoich t\u0119tnic, twoje nerki a\u017c sw\u0119dz\u0105 od produkcji adrenaliny, a szkliwo z\u0119b\u00f3w trzeszczy od napi\u0119cia nerwowego. Dowiadujesz si\u0119 jednak r\u00f3wnie\u017c, \u017ce:<\/p>\n\n\n\n<ul><li>Maciej odchodzi, bo nie zgadza si\u0119 z Piotrem w sprawie wybranej infrastruktury aplikacji<\/li><li>Bartek od dw\u00f3ch tygodni prawie si\u0119 nie odzywa\u0142 i nikt do ko\u0144ca nie wie, co robi, ale podobno konfiguruje chmur\u0119<\/li><li>Po\u0142ow\u0119 kodu napisa\u0142 Piotrek<\/li><li>Wojtka nikt nie lubi, bo nie przepuszcza pull request\u00f3w i ka\u017ce poprawia\u0107<\/li><li>Marek chce by\u0107 team leaderem mimo, \u017ce ustalili\u015bcie, \u017ce nie b\u0119dzie team leadera<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"666\" height=\"375\" src=\"https:\/\/kalkus.dev\/wp-content\/uploads\/2020\/04\/senior-destructor.jpg\" alt=\"\" class=\"wp-image-574\" srcset=\"https:\/\/kalkus.dev\/blog\/wp-content\/uploads\/2020\/04\/senior-destructor.jpg 666w, https:\/\/kalkus.dev\/blog\/wp-content\/uploads\/2020\/04\/senior-destructor-300x169.jpg 300w\" sizes=\"(max-width: 666px) 100vw, 666px\" \/><\/figure><\/div>\n\n\n\n<p>Wracasz do domu, otwierasz 18 letniego Glenfiddicha i z ka\u017cdym \u0142ykem coraz bardziej utwierdzasz si\u0119 w przekonaniu, \u017ce IT to bagno.<\/p>\n\n\n\n<p><strong>Co posz\u0142o nie tak?<\/strong><\/p>\n\n\n\n<p>Oczywi\u015bcie opisana sytuacja jest przerysowana, wiele w niej jednak prawdy. Problemy s\u0105 dwa \u2013 greenfield i seniority.<\/p>\n\n\n\n<p>Greenfield to projekt nowy, \u015bwie\u017cy, dziewiczy \u2013 taki, kt\u00f3ry buduje si\u0119 od zera, maj\u0105c swobod\u0119 wyboru technologii, praktyk, architektury, praktycznie wszystkiego. Jest to marzenie wielu programist\u00f3w zamkni\u0119tych w klatkach utrzymania starych system\u00f3w legacy. &nbsp;<\/p>\n\n\n\n<p>Wysokie seniority jest dobre, warto\u015bciowe, bezcenne omal, jednak\u017ce we wszystkim potrzebny jest balans, a tak\u017ce dobro nigdy nie jest czyste &#8211; zawsze ma w sobie jak\u0105\u015b skaz\u0119. Skaz\u0105 senior developera jest ego. Wielu do\u015bwiadczonych programist\u00f3w popada w prze\u015bwiadczenie, \u017ce tyle ju\u017c widzieli i z\u0119by na tym fachu zjedli, \u017ce s\u0105dz\u0105, i\u017c maj\u0105 racj\u0119. Prawda jest jednak taka, \u017ce ka\u017cdy si\u0119 czasami myli, a tak\u017ce, \u017ce wiele \u015bwiatopogl\u0105d\u00f3w w IT nie ma znaczenia \u2013 lub ma, ale zysk jest mniejszy, ni\u017c koszt braku decyzji.<\/p>\n\n\n\n<p>Zebranie wielu senior\u00f3w w projekcie typu greenfield jest ryzykownym przedsi\u0119wzi\u0119ciem. Mo\u017cliwo\u015b\u0107 wyboru technologii i architektury w nieunikniony spos\u00f3b tworzy kocio\u0142 dyskusji w pierwszej fazie projektu. Im wi\u0119cej senior\u00f3w, tym bardziej za\u017carta ta dyskusja b\u0119dzie. Juniorzy lub midowie raczej si\u0119 dostosuj\u0105 \u2013 seniorzy zwykle b\u0119d\u0105 uparcie broni\u0107 swojej racji i do\u015bwiadczenia. To oczywi\u015bcie zrozumia\u0142e, ale w przypadku takiego rodzaju projektu \u2013 zgubne.<\/p>\n\n\n\n<p>Dodatkowym \u017ar\u00f3d\u0142em problemu jest \u201esamoorganizuj\u0105cy si\u0119 zesp\u00f3\u0142\u201d. Gdy brak namaszczonego lidera, pojawia si\u0119 walka o w\u0142adz\u0119. Kiedy brak potulnych owiec w stadzie, bo wybrali\u015bmy same stare wygi \u2013 mamy problem.<\/p>\n\n\n\n<p>W opinii autora greenfield senior\u00f3w to synonim pora\u017cki. Kompletuj\u0105c zesp\u00f3\u0142 do projektu tworzonego od zera warto go zbalansowa\u0107 i nie ulega\u0107 pokusie wyboru jedynie najlepszych. Dobrym pomys\u0142em jest r\u00f3wnie\u017c selekcja oficjalnego lidera \u2013 przyspieszy to budowanie si\u0119 struktury hierarchicznej, zmniejszy walk\u0119 o w\u0142adz\u0119 i nada jasno zdefiniowane odpowiedzialno\u015bci cz\u0142onkom zespo\u0142u.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Masz do wydania milion dolar\u00f3w i pomys\u0142 na produkt. Co robisz? Rekrutujesz najlepszych ludzi i wierzysz, \u017ce ich do\u015bwiadczenie sprawi, \u017ce powsta\u0142y zesp\u00f3\u0142 efektywnie wytworzy oprogramowanie wysokiej jako\u015bci, prawda? Tymczasem&#8230; Przychodzisz po trzech miesi\u0105cach i widzisz, \u017ce: pierwszy miesi\u0105c min\u0105\u0142 na dyskusjach o strategii branchowania, architekturze test\u00f3w, deploymentu, aplikacji, wyborze chmury, stosu technologicznego, narz\u0119dzi CI\/CD, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":575,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[103,204],"tags":[111,106,104,16,112],"_links":{"self":[{"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/posts\/572"}],"collection":[{"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/comments?post=572"}],"version-history":[{"count":4,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/posts\/572\/revisions"}],"predecessor-version":[{"id":594,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/posts\/572\/revisions\/594"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/media\/575"}],"wp:attachment":[{"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/media?parent=572"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/categories?post=572"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/tags?post=572"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}