Wszyscy w zawodzie zaczynaliśmy podobnie: nie wiedząc nic. Każdy z nas jest teraz na innym poziomie: jedni nadal nie wiedzą nic, inni mało, jeszcze inni dużo… ale nikt nie wie wszystkiego. Z biegiem lat kształtujemy sobie opinie na sposoby tworzenia oprogramowania – w końcu pochłania to sporą część naszego życia. A dróg do osiągnięcia celu – praktycznie nieskończenie wiele.
Jeden będzie zwolennikiem podejścia “100% Microsoft”. Inny wręcz przeciwnie: tzw. ruch alt.net nieustannie skupia się na poszukiwaniu lepszych alternatyw. W miarę krystalizowania się naszych poglądów jesteśmy w stanie zaklasyfikować samych siebie do tej czy innej grupy. I co dalej? Nawet geniusz nie wymyśli wszystkiego sam. Potrzebny jest przewodnik – ktoś, kto podpowie na jaki trend skierować wzrok, po którą książkę sięgnąć, jaką biblioteką się zainteresować. Po prostu: gdzie podreptać w celu dalszego rozwoju.
Wybranie takiego Pana Miyagi, tudzież kilku Panów Miyagów, jest niesamowicie ważne. Nie do końca chodzi o jakiegoś Jacykowa, który powie “tej wiosny załóż różową przepaskę na biodra, zaczep kajdanki o przegrodę nosową a wchodząc do baru zamów whisky ze zsiadłym mlekiem z piersi Cyganki i rodzynkami – też z piersi Cyganki – a będziesz cool“. W światku naszym znajdziemy pełno autorytetów mających faktyczny wpływ na losy technologii i decydujących de facto o przyszłości niektórych jej aspektów. Jeśli wiemy mniej więcej co nam odpowiada, co naszym zdaniem się sprawdza – warto być na bieżąco z przemyśleniami Wielkich Mózgów w tej dziedzinie.
Przykładów może być cała masa. A to Udi Dahan. A to Greg Young. A to Ayende Rahien. A to Uncle Bob. To moi;). Tak naprawdę wiele można powiedzieć o programiście widząc listę jego guru. Brak takiej listy niekoniecznie musi oznaczać coś złego, ale… lepiej takich mieć niż nie mieć. Z ich wielkiego doświadczenia, błyskotliwych pomysłów, nieszablonowego podejścia do pracy można czerpać garściami.
ALE! Dochodzimy do części drugiej. Zdecydowanie nie można nieustannie, chciwie ściągać ozorem miodu z ich gorących warg i bezkrytycznie łykać wszystkiego, jak to mój ziom zwykł mawiać, jak świnia obiery. Trzeba brać z nich przykład i… MYŚLEĆ. Nie mogę napisać inaczej, w końcu tagline tego bloga to: “Think for Yourself. Question authority.”:).
Każdy pogląd, każdą opinię, da się skrytykować bądź pochwalić. I to właśnie MY powinniśmy wyrobić sobie zdanie na jej temat. Postępowanie w taki a nie inny sposób posiadając wyłącznie argument “BO TAK” albo “właściwie to nie wiem” jako uzasadnienie nie świadczy o nas pozytywnie. Nieważne z jak genialnej głowy wyciekła dana myśl, dany pomysł – zawsze można spojrzeć na nią z różnych perspektyw.
Kluczowe wydaje mi się posiadanie realnej odpowiedzi na pytanie: “dlaczego tak pracujesz?“. Nie ma nic złego w naśladowaniu cudzych praktyk. Ba, każdy kogoś naśladuje, w końcu nie ma sensu wymyślanie wszystkiego od zera. Jednak ślepe przyjmowanie danej opinii za aksjomat to złe wyjście, niezależnie od tego kto jest jej źródłem.
Od dawna pielęgnuję przyzwyczajenie analizowania zalet i wad stosowanych przez siebie rozwiązań. Nawet jeśli się sprawdzają – w następnym projekcie nie kopiuję bezmyślnie czy to kodu, czy to praktyk, tylko dlatego że “działają”. Staram się znaleźć ich słabe punkty i iteracyjnie ulepszać warsztat. Skoro postępuję tak nawet względem własnych przyzwyczajeń, to czy nie warto równie ostro spoglądać na porady płynące z zewnątrz? Może uda nam się usprawnić proponowane podejście?
Challenge accepted! Rozbijmy na czynniki pierwsze i złóżmy z powrotem koncepcje płynące z programistycznego Olimpu. To, że Ayende stworzył każdy chyba rodzaj softu jaki można sobie wymyślić nie oznacza, że mamy wpadać w szał syndromu Not Invented Here. To, że jedyną słuszną wartością określająca pokrycie kodu testami jednostkowymi według Uncle Boba jest 100% nie oznacza, że mamy nagle rzucać wszystko i spędzić kolejne tygodnie na pisaniu bezsensownych testów (o czym pisałem więcej w poście “Co testować, a czego nie testować?“). I tak dalej, i tak dalej.
Miejmy wzory do śledzenia i naśladowania. Pomysły trzeba skądś czerpać, sami wszystkiego nie wymyślimy. Ale nie dajmy się zwariować. Nie bądźmy czyjąś bezmyślną kalką, tępym wyrobnikiem który jedyne co potrafi to “do as he’s told“. Praca nasza jest tak elastyczna, że wszędzie można zostawić swój charakterystyczny ślad. Ślad mówiący: “JA tu byłem. To jest MOJE. Bo MYŚLĘ i mam swoje zdanie.“.
A kim są Wasi guru?