Gra w programowanie - Motywacja i produktywność w jednym
Siedzę i wpatruję się skupiony w ekran. Jestem absolutnie pochłonięty tym, co robię. Nie wiem nawet, ile czasu minęło, od kiedy zacząłem. Godzina, dwie? Chyba straciłem poczucie rzeczywistości…
“Marcin, masz minutę?” — głos mojego kolegi, chociaż niezbyt głośny, brzmi dla mnie w tym momencie jak odgłos młota pneumatycznego albo startującego samolotu. A to dlatego, że dosłownie sekundę wcześniej byłem w zupełnie innym świecie. W świecie problemów do rozwiązania. Albo by być bardziej precyzyjnym — Problemu do rozwiązania. Ponieważ w tym momencie dla mnie istniał tylko jeden Problem. Ja i Problem — można powiedzieć, że nosiło to pewne znamiona romantycznego zbliżenia, bo czułem, że właśnie dobieram się swojemu Problemowi do tyłka. Już miałem wszystko poukładane w głowie, wystarczyło przelać moje myśli na kod. I właśnie wtedy głos kolegi…
Kolega zdecydował, że Mój Problem nie jest ani w ułamku tak ważny jak Jego Problem. I uznał, że może przerwać moje wysiłki. Z jego perspektywy, nic wielkiego. Zadał pytanie, odpowiedziałem, całość zajęła może pół minuty i wróciłem do pracy. Z mojego punktu widzenia, to było zdarzenie, które być może zdecydowało o tym, że nie udało mi się dowieźć ważnej funkcjonalności na czas.
Jak to możliwe, że tak banalne zdarzenie okazało się mieć tak doniosłe znaczenie dla mojej wydajności? I jak udało mi się użyć pewnej techniki, aby stać się nie tylko znacznie bardziej wydajnym, ale też czerpać dużo więcej radości ze swojej pracy?
Trochę wcześniej…
Siedzę i wpatruję się skupiony w ekran. Jestem absolutnie pochłonięty tym, co robię. Nie wiem nawet, ile czasu minęło, od kiedy zacząłem. Godzina, dwie? Chyba straciłem poczucie rzeczywistości…
“Marcin, masz minutę?” — aż podskakuję na krześle, słysząc te słowa. Odwracam się. “Ile już grasz? Wyłącz ten komputer i zajmij się lekcjami!” “Mamo! Kiedy tu weszłaś? Nie mogę teraz skończyć, walczę z końcowym bossem!” — patrzę błagalnym wzrokiem. “Dosyć gadania, wyłączaj!
Grałeś kiedyś w naprawdę wciągającą grę wideo? Pewnie tak. Kiedy jesteś zanurzony w grze, czas i świat dookoła przestaje istnieć. Jesteś skupiony i gotowy poświęcić wiele, by osiągnąć swoje cele. Niektórzy są w stanie nawet poświęcić niektóre potrzeby fizjologiczne… nie wchodźmy może w ten temat…
Cóż, granie pewnie nie jest najbardziej produktywną rzeczą, jaką możesz robić w swoim życiu (chyba że jesteś profesjonalnym, wygrywającym międzynarodowe turnieje gamerem, wtedy… może?). Jednak wciąż, mechanizm, któremu ulega gracz siedzący przed ekranem przez wiele godzin, jest naprawdę potężny i… użyteczny. Można go wykorzystać w wielu obszarach życia. Ten mechanizm został opisany jako Flow, czyli Przepływ.
Flow
Jeśli kiedykolwiek grałeś w jakąś grę przez cały dzień lub próbowałeś rozwiązać jakiś problem w pracy i po prostu straciłeś poczucie czasu albo na przykład układałeś puzzle i nawet się nie zorientowałeś, ile czasu minęło, prawdopodobnie doświadczyłeś stanu Flow. To stan, w którym jesteś naprawdę zanurzony w to, co robisz. W którym tracisz poczucie czasu i zapominasz o swoich codziennych problemach.
Pomysł pochodzi z książki Flow: Psychologia optymalnego doświadczenia, której autorem jest Mihaly Csikszentmihalyi. Opisuje on ten stan następująco:
Człowiek staje się tak zaangażowany w to, co robi, że aktywność staje się spontaniczna, prawie automatyczna. Przestaje być świadomy samego siebie jako osobnego bytu, czegoś oddzielnego od tego, co robi.
Dlaczego wspomniałem o grach wideo? Są one naprawdę dobre w stymulowaniu Przepływu. Naprawdę… cholernie dobre. Tak właściwie, to są one tworzone dokładnie w tym celu, by pozwalać nam wejść w ten stan.
Istnieją trzy najważniejsze składniki pozwalające na osiągnięcie Flow:
- Jasny cel
- Natychmiastowa informacja zwrotna
- Wyzwanie dostosowane do kompetencji
Jeśli jeszcze raz spojrzysz na gry komputerowe, łatwo zauważysz, że te trzy warunki są spełnione w każdej dobrej grze. To dlatego są one tak wciągające.
Masz jasny cel — rozgrywka narzuca Ci pewne zrozumiałe zadania do wykonania. Zabij potwora, znajdź pokemona, zdobądź miasto.
Gdy Ci się udaje, zazwyczaj od razu dostajesz o tym informację i jakąś formę nagrody za to osiągnięcie — przedmioty pozostawione przez potwora, punkty doświadczenia, pieniądze. To jest natychmiastowa informacja zwrotna.
Co więcej, gry zwykle starają się dopasować swoją trudność do gracza. Pomijając już poziomy trudności, zwykle zaczynamy rozgrywkę od samouczka, później dostajemy proste zadania. A podczas gdy uczysz się rozgrywki, wyzwania stawiane przed Tobą są coraz większe.

Potraktuj pracę jako grę!
Te same mechanizmy, które działają na nasz umysł doskonale, by utrzymać naszą uwagę przed monitorem, podczas grania w ulubioną grę, działają dokładnie tak samo w każdym momencie (o ile spełnione są wspomniane warunki).
Skoro gry są tak dobre w utrzymywaniu naszej uwagi, to czemu nie… potraktować naszej codziennej pracy jak gry!
Jasny cel
Ostatecznym celem gry jest pokonanie największego wroga, odnalezienie kogoś czy podbicie świata. Jednak nigdy gra nie rzuca nam tego wyzwania już na samym początku i nie zostawia z tym samych sobie.
W większości gier mamy do czynienia z czymś na kształt systemu misji. Musimy je “odhaczyć”, co prowadzi nas powoli do ostatecznego zadania. Przy okazji dostajemy też jakieś nagrody. Chęć uzyskania kolejnej nagrody trzyma nas przy ekranie, nawet jeśli robimy aktualnie coś bardzo nudnego.
Wykonywanie mniejszych zadań pozwala nam nie pogubić się w ogromie możliwości, cały czas mieć jakiś cel w zasięgu wzroku i móc się cieszyć z sukcesów od samego początku rozgrywki.

Podobnie jest w przypadku pracy, gdzie idealnie jest mieć niewielkie zadania, których wykonanie to bardziej kwestia godzin, niż dni. Taki drobny podział pozwala na uchwycenie całości tego, co mamy do zrobienia i koncentrację na rozwiązaniu obecnego problemu, co sprzyja wejściu w stan Flow.
Można stworzyć własną checklistę i odhaczać sobie poszczególne zadania.
Najlepiej jeśli jedno zadanie nie jest przewidziane na więcej niż godzinę, dwie. Wtedy w każdym momencie pracy mamy na horyzoncie osiągnięcie jakiegoś małego celu, co ogranicza ryzyko błądzenia bez celu — jednego z największych zabójców produktywności.
Natychmiastowa informacja zwrotna
Jesteśmy niecierpliwi i jeśli musimy czekać więcej niż kilka sekund na ocenę naszych starań, to zabija naszą produktywność, bo od razu nasza uwaga zaczyna odpływać.
Dlatego właśnie uwielbiam TDD. Piszę linię kodu, odpalam przygotowany wcześniej zestaw testów… i natychmiastowy werdykt: działa albo nie. Zielona ikonka obok nazwy testu w IntelliJ-u działa na mnie jak nagroda. Zupełnie jak punkty doświadczenia po zabiciu potwora. Strzał dopaminy, który daje mi motywację do dalszej pracy.


Trochę więcej o testowaniu możesz przeczytać również w moim wpisie: Więcej niż Given-When-Then
Wyzwanie
Banalne zadania skutecznie zabijają zapał do pracy. Wyzwanie sprawia, że mam chęć do zmierzenia się z nim. Niekiedy wyzwanie możemy sobie stworzyć sami. Można potraktować proste zadanie jako okazję, by dokonać dawno proszącego się refactoringu.
Programiści mają tendencję do narzekania na brak czasu na refactoring. Takie zadania to idealna okazja, by wykonać je błyskawicznie i mieć trochę czasu na zmianę, do której od dawna się przymierzaliśmy.
Co jest jednak istotne, wyzwanie nie może być zbyt duże. Problem pojawia się w momencie, gdy zaczynamy mieć poczucie, że nie jesteśmy wystarczająco kompetentni do wykonania zadania. Zabija to Flow jeszcze skuteczniej niż brak wyzwania.
Poszukiwania
Sposoby, które podałem działają doskonale dla mnie. Możliwe, że w przypadku niektórych z Was skuteczniejsze okażą się inne techniki. Możesz na przykład zapewnić sobie lepszą informację zwrotną przez używanie narzędzi do analizy jakości kodu, jak choćby Sonar.
Ostatni składnik
Wchodzenie w stan Przepływu jest niełatwe i może zająć Ci wiele minut, jednak utracenie go to kwestia paru sekund. Naszą uwagę atakują w każdej chwili tysiące bodźców.

Walka przeciwko rozpraszaczom jest naprawdę ciężka. Jeśli jednak nie jesteś w stanie utrzymać skupienia przez dwie godziny, prawdopodobnie jesteś zdolny do skupienia się przez 25 minut.
Technika pomodoro polega na nastawieniu minutnika na 25 minut. I przez te 25 minut pracujemy tylko nad jednym zadaniem.
Po 25 minutach nie zapomnij, żeby zatrzymać się i zrobić sobie przerwę. Ja używam minutnika na stronie tomato-timer.com.
Podejście do pracy jak do gry i wchodzenie w stan Flow nie tylko pozwala nam lepiej pracować. Dzięki temu zwyczajnie czerpiemy więcej radości z pracy.
Złóżmy wszystko w całość
Przypomnijmy jeszcze raz, aby zwiększyć swoje szanse na osiągnięcie Flow:
- Wyznacz sobie jasny cel i skup się tylko na nim
- Zapewnij sobie szybką informację zwrotna
- Dopasuj wyzwanie do swoich kompetencji
Do tego potrzebujemy okresu skupionej pracy, w czym doskonale pomaga Pomodoro. Ostatecznie nawet z szukania sposobów na osiągnięcie Flow można uczynić… grę.