Kila dni temu przeczytałem artykuł na jednym z serwisów gazety na temat tego, dlaczego nie potrafimy biegać maratonów (czy jakoś tak).

Ogólnie autor podawał kilka informacji, które są jasne i zrozumiałe – brak przygotowania, zły rozkład sił itp. itd. do tego autor oczywiście dawał porady, i jedna z nich uderzyła mnie prosto w twarz typową polskością – jak wiesz, że nie dobiegniesz do mety w określonym przez siebie czasie (ale wiesz, że dobiegniesz), zrezygnuj a potem (jak wystarczająco odpoczniesz), spróbuj ponownie.

Ktoś ogląda mecze piłkarskie? Ile razy nasza super reprezentacja „rezygnowała”, dawała sobie czas na wypoczynek i próbowała ponownie? Wydaje mi się, że tak od połowy lat osiemdziesiątych to widzimy.

Jeżeli zaś, uprawialiście wcześniej jakieś sporty i braliście udział w zawodach, to jak oglądacie mecz siatkówki czy też kogoś od nas w grającego w tenisa, to pewnie sami zauważacie kiedy oni rezygnują – to naprawdę widać, po twarzach, sposobie trzymania ramion, po piłkach jakie zagrywają. I niezależnie jak bardzo będziecie teraz ich dopingować, oni się poddali (i wy raczej z dopingiem powoli też się poddajecie – ps.: Irlandczycy się nie poddali, dawali z siebie wszystko) – oczywiście są momenty powstania jak to w każdym Rocky było, ale są one sporadyczne.

Tak naprawdę rada sama w sobie nie jest zła – jest wkurzająca itp. ale uogólniając ją (lub może: ja rozumiem, że to miał autor na myśli, ale trochę ją przeinaczył, lub mam nadzieję, że autor miał to namyśli bo jak nie to nic dziwnego, że nasz sport kuleje), można powiedzieć: kiedy widzisz, że do niczego nie dojdziesz ciągnąc to co robisz, to przestań, zastanów się, przeanalizuj i spróbuj ponownie, trochę inaczej. Jednak nawet z tak przeredagowaną myślą jest z nią ogromny problem. Skoro nastawisz się na to, że jeżeli zajdzie taka sytuacja, postąpisz tak jak ona radzi, to już jesteś na przegrywającej (jeszcze nie przegranej) pozycji.

Problem polega na tym, że nasz ukochany (dla niektórych, smaczny) mózg ma swoje dziwne drogi chadzania. Jeżeli tylko zaczniemy myśleć o tym, że osiągniemy porażkę, to on nastawi nas tak, że ją pewnie osiągniemy – w końcu o tym myśleliśmy, i to pewnie intensywniej niż byśmy chcieli.

Ja miałem takie szczęście, że kiedy trenowałem trafiłem na trenera, który będąc Polakiem, miał myślenie ludzi z „zachodu”. Jedną z podstawowych rzeczy jaką nauczył on mnie i moich znajomych z kluby, było to, że jedyne o czym myślisz przed startem i w trakcie to twój cel, wizualizujesz go sobie, powtarzasz w głowie parę razy a następnie do niego dążysz. Niezależnie od tego czy aktualnie znajdujesz się na ostatniej pozycji, jesteś w środku czy na czele. Nie ma znaczenia.

Jeżeli się podjąłeś czegoś, skończ to. Trudno, nie osiągniesz pierwszej pozycji. Tym razem nie uda Ci się dobiec do mety w czasie 3h 15min, zrobisz to w 4h. ok, trudno. Jednak nie poddałeś się i dobiegłeś. Ukończyłeś coś co zacząłeś. Następnym razem, wykorzystasz zdobytą wiedzę by dobiec szybciej. I znów, skoro widzisz, że dobiegniesz w 3h 40min a celujesz w 3h 15, to warto się poddać?

Jak sądzicie, co jest lepszym uczuciem – poddanie się kompletne (zejście z boiska w pierwszych pięciu minutach drugiej połowy) czy walka do końca?

Z mojego doświadczenia, dużo bardziej bolało (i wkurzało) mnie poddanie się, niż przegrana. Przy przegranej mogłem wyciągnąć jakieś wnioski. Przy poddaniu się, jedynie to, żem idiota i marnuje swój i innych czas (i przeważnie różnego typu zasoby). Przy określaniu znaczenia słowa poddanie się bardzo ważny jest kontekst sprawy – jeżeli celem jest przebiegnięcie maratonu a nam się nie udało tego zrobić to wcale nie oznacza, że się poddaliśmy. Jednak, jeżeli po pierwszych 2km maratonu mówimy „to nie ma sensu”, to się poddajemy, po co więc w ogóle na niego poszliśmy?

Przypomina mi to sytuację mojego znajomego, który „ukończył” dwa kierunki studiów: na jednym kierunku nie oddał 10 zdjęć, bo i po co, a na drugim nie napisał 15 stron tekstu opisującego jego algorytm – łącznie 6 lat nauki i to płatnej. Do mety zostało mu jedynie 2-3 tygodnie ekstra pracy. Głupota?

Popatrzmy na to z punktu naszej pracy, programowania. Podejmujemy się wyzwania. Zaczynamy pracę, jednak zauważamy, że nie wyrobimy się z odgórnie ustalonym terminem. Mamy, też w planach za 2 miesiące kolejny projekt, który będzie wymagał trochę więcej naszego czasu. To co robimy? Piszemy do klienta w połowie projektu: „Cześć, sorki, ale ja odpadam, nie ma sensu bo widzę, że się z tym nie wyrobię, dozo!

W ten sposób raczej w życiu niczego nie osiągniemy. Nie liczy się to jak pracujemy przez dwa miesiące, liczy się to, co dostarczymy po dwóch miesiącach. Nie będziemy pamiętani „To ten zajebisty gościu co ostatnie 2 miesiące pisał kod”, raczej „To ten, co wypuścił X, Y, Z” lub „To ten co wziął projekt i odszedł w jego połowie olewając kompletnie nas, powiedz to Kowalskiemu bo chyba próbuje go zatrudnić

Im więcej będziemy mieli w naszym doświadczeniu poddawania się, tym bardziej będziemy skołowani. Ja pamiętam wszystkie swoje pomysły, które zarzuciłem w trakcie pisania – poddałem się, nie chciało mi się ich kończyć, tłumaczyłem to brakiem czasu itp. Nie są to pomysły, które zarzuciłem bo stwierdziłem, że nie ma co ich kończyć – jest coś co już istnieje i to mi całkowicie wystarcza.

To, że dostarczanie softu jest ważniejsze od jego pisania, można zobaczyć chociażby po takich inicjatywach jak konferencja We Actually Build Stuff, czy też po postach Roba.

Zresztą IMO, jedynym sposobem na to by sprawdzić czy programista jest wydajny, jest analiza jego historii dostarczania produktów – nie koniecznie w czasie i w budżecie (chyba nie znam nikogo kto by miał w 100% tutaj skuteczność), ale zostały one dostarczone. Co z tego że projekt jest good enough, albo jeszcze nie jest good enough? Został dostarczony, teraz można go rozwijać dalej, sprawdzić co działa a co nie, co się sprawdza a co nie i dalej kontynuować pracę, dostarczając kolejną wersję lub porzucić pomysł jako nie sprawdzający się.

Nie zależnie od wyniku, przekraczanie linii końcowej daje zawsze satysfakcję – udało się! Nie tak dobrze jakbym chciał, ale się udało! Małymi kroczkami, budujemy u siebie przyzwyczajanie do kończenia tego co zaczęliśmy. Im więcej takich pomniejszych przekroczeń zrobimy, tym bardziej na kolejnej linii końcowej będzie nam zależało.

Im więcej ich przekroczymy tym większą szansę mamy na sukces w tym co robimy – w końcu nie każdy pomysł jest kolejnym twitterem/fb/ms/apple/37signals/whatever. Jednak dostarczanie umożliwi nam przybliżenie się do sukcesu. W którymś momencie trafimy na to coś co albo się sprzeda, albo będzie popularne albo po prostu nam się przyda w życiu codziennym.

Więc olejcie radę poddania się, i skończcie to co zaczęliście. Zobaczycie, dużo lepiej się poczujecie. Dostarczanie jest super! Nawet jeżeli jest to gówniany kawałek kodu robiący automatyczny resize obrazków, czy sciągający wszystkie komiksy dilberta z sieci. Jak tylko coś dostarczycie od razu poczujecie się lepiej!

Sam teraz zmagam się z moim własnym projektem, i szczerze gdyby nie ten artykuł na gazecie to pewnie bym go zarzucił i następnie klną na siebie przez kilka tygodni :) A tak to zebrałem się w sobie i w ostatni weekend napisałem core całej aplikacji – mojego własnego bloga. Czemu własnego? To już inna historia, ale ważne jest to, że zabrałem się za to i zrobię wszystko by udało mi się to skończyć. A ten post będzie mi o tym na pewno przypominał – a o to dowód tego, że brnę ku końcu (filtrowanie po tagach):

new-blog

Mam nadzieję, że tak jak mi art. z gazety pomógł się z mobilizować, tak wam pomoże ten post! :) Jak nie to dajcie znać dlaczego :) może coś źle lub nietrafnie ująłem? Podobnie jak autor tego artykułu na gazecie? :)

A wy jak, dużo macie pomysłów porozpoczynanych, ale nigdy nie skończonych? Może nawet nie pomysłów, można to też porównać do książek: ile macie rozpoczętych książek które chcecie wciąż dokończyć czytać? Czy też zaczęliście kilka lat temu planować wyjazd do stanów na road trip i wciąż tego nie skończyliście?

Jak wy przykładacie wagę do dostarczana produktu? Przekraczania linii końcowej? Jest to dla was ważne? Czy ważniejsze jest to, że przez X tygodni pisaliście kod, który nie zostanie skończony?

3 KOMENTARZE

  1. Właśnie zdałem sobie sprawę, że do moje podejście do developmentu w dużym stopniu różni się od podejścia do tzw. "spraw codziennych". Podczas kiedy w tych drugich być może zbyt często się poddaję, tak przy tworzeniu oprogramowania rzadko myślę o rezygnacji… co najwyżej o zaoraniu tego co zrobiłem i zaczęciu od nowa, po to, by zrobić coś inaczej/lepiej. Nawet w przypadku starych, "zawieszonych" projektów, liczę, że kiedyś do nich wrócę. Jeśli już rezygnuję to głównie wtedy, kiedy wiem, że produkt nad którym pracuję nie będzie miał zastosowania. Na przykład jeśli klient zrezygnował / zmienił zdanie / zmieniły się wymagania itp. (w przypadku projektów komercyjnych), lub, gdy np. znalazłem coś lepszego (jeśli piszę dla siebie). To chyba dlatego, że dla dużą część satysfakcji z tworzenia oprogramowania daje właśnie to, że będzie ono do czegoś przydatne, a mówiąc bardziej ogólnie, że poprzez nasz produkt realizowany będzie jakiś cel (choćby miał to być jedynie test nowej technologii / funkcjonalności).

  2. Ano to wszystko prawda, ale mi udało się zwalczyć wyrzuty sumienia związane z "poddaniem się" właśnie w kontekście dev. Czasami po prostu widzę że nie ma sensu czegoś ciągnąć, więc przestaję to robić i nie mam potem przeświadczenia że "się poddałem". Mam przeświadczenie że podjąłem mądrą decyzję: nie marnuję na to więcej czasu więc mogę się zająć czymś innym.
    Ważniejsze to jest moim zdaniem właśnie w życiu codziennym: stawianie sobie celów (nawet prostych/szybkich/łatwych) i ich realizacja. Pomaga to bardzo w zgodnej "egzystencji ze samym sobą".

Comments are closed.