Kawy się napij :)
Poza tym dużo przerw. I niech te przerwy będą rozrywkowe, pozwalające na jakieś rozproszenie myśli, tak żebyś nie myślał o tasku. I wystarczająco długie, a nie na zasadzie "3 minuty do kibla i znowu koduję", bo to żadna przerwa. Jak dla mnie porządna przerwa to przerwa tak długa i tak rozrywkowa, że aż sam poczujesz "zew pracy". Coś w stylu "oo, jak sobie odpocząłem, czas do roboty, tracę czas a tu wzywa praca".
Ja kiedyś popełniałem często ten błąd, że robiłem za mało przerw i w rezultacie się męczyłem i stresowałem. I efektywność mi spadała, bo kodowałem ostatkiem sił. I patrzyłem się tępo w IDE.
brak skupienia
Możesz podzielić zadania na jak najmniejsze, nie robić całego zadania(zadanie = "ficzer", "task", "issue", "ticket", "user story" itp.) naraz, a zajmować się jednym problemem (a jeden "ticket" w issue trackerze to może być np. z 10 róznych problemów do rozwiązania w implementacji).
I dzieląc tak duży problem na małe pod-problemiki, które jesteś w stanie rozwiązać przykładowo w 40 minut (czy ile tam wynosi twój attention span), jesteś w stanie je potem rozwiązać krok po kroku.
Przy czym niekoniecznie musisz od razu usiąść, złapać duże zadanie i wypisać tych 10 czy ileś podproblemów w listę. Czasami po prostu robisz "kolejną rzecz", która cię jakoś przybliży do celu a potem jak zrobisz tę rzecz, to myślisz co dalej.
Chociaż oczywiście warto mieć też jakiś holistyczną wizję, więc warto trochę pomyśleć i mieć ogólną wizję co chcesz zrobić, ew. już jakieś konkretne pomysły implementacyjne. Tym niemniej nawet jak rozkminisz problem, to i tak będziesz go implementować krok po kroku, bo człowiek jest istotą jednozadaniową.
W każdym razie małe konkretne problemy do rozwiązania o wiele mniej stresują niż jeden włochaty problem, do którego nie wiadomo jak się zabrać.
Można też stosować TDD przy okazji, które ci też pozwoli się skupić na bardzo małych rzeczach (np. spełnienie asercji) i nagradza cię tym, że testy przejdą. Taki achievement. Poczucie ciągłych osiągnięć.
i wręcz usiedzieć przed biurkiem.
Nikt ci nie każe siedzieć przed biurkiem cały czas. Pracę kreatywną, koncepcyjną można wykonywać wszędzie, w kiblu nawet albo chodząc po pomieszczeniu i patrząc się w okno. Albo rysując rozwiązanie na kartce. A nawet jak robimy coś, co wymaga używania komputera przez cały czas, to i tak można zrobić sobie przerwę.
odcinać się od otoczenia słuchawkami z odpowiednią muzyką - na prawdę ważny jest dobór muzyki.
Ja tam odkryłem, że ciężko mi się często skupić z muzyką ze słowami, więc do kodowania wolę albo nie puszczać w ogóle muzyki, albo jakiś ambient, psybient (np. Carbon Based Lifeforms) czy coś podobnego bez słów.
napięcie spowodowane stresem
Czasem jest też tak, że stresuje się człowiek nadaremno (np. próbując zrozumieć zamotany kod modułu), a wystarczy spytać drugiego programisty, który dłużej jest w projekcie, "w jaki sposób byś to rozwiązał".