Wrzesień minął tak szybko! Nie wiem jak Was, ale mnie nadejście jesieni bardzo motywuje. Kojarzy mi się z rozpoczęciem szkoły, czuję, że jest to czas nowych porządków. Jesienną słotę można fajnie wykorzystać np. siadając z herbatą, kocem i książką. Dlatego też podrzucam Wam dziś kolejną recenzję. Pora powiedzieć kilka słów na temat książki Sandro Mancuso “Software Craftsman. Profesjonalizm, czysty kod i techniczna precyzja”.

Software Craftsmanship

Dla osób, którym nigdy nie obiło się o uszy pojęcie “programisty rzemieślnika” lub “software craftsmanship”, dedykuje kilka słów wstępu.

Rzemieślnicze podejście do programowania urodziło się w miarę równolegle do ruchu Agile. Zauważono wtedy potrzebę zmiany sposobu myślenia o tworzeniu software’u. Programistom przestało wystarczać tworzenie oprogramowania, ktore działa. Ważne zaczęło być również to jakiej jest jakości. Czy jest testowalne? Czy jest utrzymywalne? Czy kod jest zrozumiały dla innych?

W ten sposób powstało community skupiające ludzi, którzy nie tylko reagują na zmiany (w ramach koncepcji Agile), ale też chcą stale dodawać wartość do projektu. Swoje założenia spisali jako Manifest Software Craftsmanship.

Sandro Mancuso wyjaśnia w swojej książce w detalach, kim jest programista rzemieślnik. Opowiada również o swoich początkach w tej dziedzinie i o tym, jak wiele się od tego czasu nauczył.

Never stop learning

W koncept “programisty-rzemieślnika” zdecydowanie wpisuje się idea nieustannego uczenia się. Autor podkreśla, że KAŻDY jest odpowiedzialny za SWOJĄ karierę i rozwój. To nasza broszka, by być stale na czasie jeżeli chodzi o nowe technologie. Nie powinniśmy się zdawać na pracodawcę w kwestii np. szkoleń.

Dodatkowo - jako na bardzo rozwijające - wskazuje na własne projekty, programistyczne kata, pet projects czyli to wszystko, co powiększa nasze prywatne konto na githubie ;) Nie dość, że będzie się czym pochwalić kolejnemu pracodawcy to zyskujemy jeszcze doświadczenie, testując różne technologie w warunkach bojowych.

Sandro Mancuso radzi czytać - blogi, książki techniczne, w tym w szczególności, książki przełomowe. Dotyczą one zazwyczaj nie technologii, ponieważ te szybko stają się nieaktualne. Książki, które każdy programista powinnien przeczytać to te odnoszące się do rzemiosła, czyli mówiące o praktykach programistycznych oraz zasadach rządzących się światem IT.

Jak przekonać kierownika?

Wielu z nas, developerów, poszukuje argumentów, które przekonają managerów np. do koniecznej refaktoryzacji, potrzeby stosowania TDD czy poświęcenia czasu na programowanie w parach. Te nasze poszukiwania autor podsumowuje:

Odpowiedź jest prosta - nie przekonuj. Łatwiej uzyskasz przebaczenie niż pozwolenie. Po prostu rób swoje. Dlaczego kierownik miałby się interesować praktykami technicznymi? On chce tylko, żeby projekt był ukończony w terminie, budżet nie został przekroczony, nie było błędów i interesariusze oraz klienci byli zadowoleni.

Sandro MancusoSoftware Craftsman

W sumie, czemu nie?

Rekrutacja w IT

Świetnie, że autor poświęcił aż 3 rozdziały na ten temat. Mimo że podejście do rekrutacji w IT cały czas zmienia się na lepsze, to wciąż można spotkać rekrutujących, którzy przepytują kandydatów na okoliczność nazw konkretnych metod w danej bibliotece i innych informacji natury encyklopedycznej.

Mancuso w swojej książce określa to jako jeden z antywzorców rozmowy kwalifikacyjnej, wraz z np. pisaniem kodu na papierze (sic!), blokowaniem internetu czy zadawaniem pytań na które nie zna się odpowiedzi. W zamian podsuwa swoje sugestie na przeprowadzenie rekrutacji. Mnie najbardziej spodobała się koncepcja programowania w parach rekrutujący-kandydat. Pozwala ono na sprawdzenie delikwenta “w warunkach bojowych”. Książkę zdecydowanie warto przeczytać chociażby dla tego tematu.

Projektowi sceptycy

Punktem, który najbardziej zapadł mi w pamięć po przeczytaniu tej książki był rozdział mówiący o typach sceptyków, których możemy spotkać w projekcie. I tak, możemy przeczytać o sposobach na radzenie sobie z np. sceptykami irracjonalnymi, wypalonymi czy niedoinformowanymi. Uprzedzam! Dużo fajnych wskazówek odnośnie codziennej pracy w projekcie/grupie.

Gorąco polecam tę książkę wszystkim programistom! Można ją zakupić TUTAJ i oczywiście czekam na wasze opinie w komentarzach.

A jakie książki według Was każdy programista musi znać?