Sandro Mancuso: Software Craftsman – profesjonalizm, czysty kod i techniczna perfekcja

0
537
Jakiś czas temu zakupiłem zestaw książek branżowych i nie tylko. Było tam „Gotowanie dla geeków” czy „Mówiąc inaczej”. Te poszły na pierwszy ogień i być może kiedyś o którejś napiszę. Dziś jednak skończyłem lekturę książki autorstwa Sandro Mancuso – Software Craftsman i na niej chciałbym się skupić w tym wpisie.

W recenzjach, które czytałem, podkreśla się, że autor to młody, uzdolniony programista z Brazylii. Być może tak jest, nie słyszałem o nim wcześniej, ale na pewno jest on pasjonatem programowania i dobrym pisarzem. Wiem to, bo z jego książki aż bije pasja, która w nim siedzi.

I tutaj moja pierwsza krytyczna uwaga – nie przepadam za fanatykami. Skrajności są złe, a wydaje mi się, że p. Mancuso jest właśnie takim skrajnym fanatykiem tego, co nazywa „Software Craftsman”, a w szczególności praktyki TDD. Nie zrozum mnie źle. O „Rzemieślnictwie programowania” usłyszałem kilka dobrych lat temu (2011, a 14.03.2012 podpisałem nawet manifest :)) i od tego czasu bardzo się staram, by pracować zgodnie z jego wytycznymi, ale dzięki dużej ilości dyskusji i przemyśleń z kimś, kogo uważam za swojego osobistego mentora w tej dziedzinie, nie sądzę by kurczowe trzymanie się szczególnie metodyki TDD było właściwe.
Mancuso nie polemizuje nawet w tej kwestii – po prostu każdy, kto testów nie pisze jest be i tyle. Jest to jednak jego książka i czytając trzeba pamiętać (jak zresztą przy każdej lekturze branżowej), że nie można jej odbierać bezkrytycznie. Każdą tego typu autorytatywną uwagę należy przeanalizować i w miarę możliwości zakwestionować, odnosząc do własnych doświadczeń i przemyśleń. Bardzo znany jest związany z takim podejściem cytat: „Question authority”, o którym może nieczęsto pamiętam w normalnych interakcjach z ludźmi, ale który z kolei bardzo mocno cenię przy czytaniu książek.

Kolejna sprawa – układ książki. Bardzo podoba mi się to, że jest ona podzielona na krótkie rozdziały tematyczne, do których można wracać w razie potrzeby.
Nie ma też potrzeby czytania całej książki od deski do deski. Ja tak zrobiłem, ale z czystej ciekawości, bo po lekturze książek Martina, McConnella czy duetu Hunt&Thomas, niewiele więcej można z niektórych rozdziałów wynieść (choć na pewno fajnie jest spojrzeć na pewne rzeczy z innej perspektywy).
Są jednak rozdziały, które zawierają informacje i przemyślenia, z którymi jeszcze się nie spotkałem – Rekrutacja, Rozmowa kwalifikacyjna, Antywzorce rozmowy kwalifikacyjnej czy rozdział o karierze programistycznej są naprawdę ciekawe, dużo wnoszą i uzasadniają zakup tej książki – wg mnie każdy programista aspirujący do miana profesjonalisty powinien ją przeczytać (a może nawet kupić).

Ogólnie, porównując tę książkę z innymi traktującymi o rzemieślnictwie oprogramowania wydaje mi się, że tutaj mniej mówi się o konkretnych rzeczach, a więcej o postawie, myśleniu, zachowaniach co akurat dla mnie liczy się na plus – techniki i metody przemijają, a proaktywne podejście do swojej pracy zawsze w cenie, szczególnie dla pracodawcy.

Więcej raczej nic nie powiem – polecam tę książkę wszystkim programistom, a szczególnie tym, którzy myślą, że są naprawdę świetni. Zazwyczaj tylko oni tak sądzą i dzięki tej pozycji może będą w stanie trochę zmienić myślenie i zobaczyć jak naprawdę powinien zachowywać się profesjonalny programista – rzemieślnik*.

*W książce wspomniano, że to określenie często jest odrzucane i chyba się z tym zgadzam – szczególnie w języku polskim nie brzmi ono zbyt dobrze. Autor pisze jednak uniwersalną prawdę, wręcz truizm, że nieważne jak się nazywasz i z czym identyfikujesz, jeżeli tylko postępujesz profesjonalnie. Stąd, jeżeli Ty też z niechęcią patrzysz na tych wszystkich „Craftsmanów”, to niech Cię to nie zniechęci do sięgnięcia po tę książkę, na pewno nie pożałujesz.