niedziela, 20 listopada 2011

"A Refaktoring zrobimy później"

Co mają wspólnego rzodkiewki,czekolada i programowanie?
Zanim odpowiemy sobie na to fascynujące pytanie zróbmy krótką symulację poprawy błędu z punktu widzenia programisty.


W systemie jest błąd.


Aby go znaleźć składamy w głowie kawałki logiki niczym puzzle tak aby uzyskać pełny obraz układanki.
Znaleźliśmy.
Wygląda na to że błąd jest tylko małym objawem ogólnie zjebanego kawałka logiki systemowej. Trzeba go teraz jakoś naprawić.
Może wystarczy szybki hak?.

W zależności od poziomu motywacji (wzbogaconej o własne poczucie jakości i solidności oraz zmieszanej z rozsądkiem i przewidywaniem ryzyka) jakim nas uraczyła korporacja , możemy chcieć zastosować coś porządniejszego niż zwykła plastelinowa łatka, która za 5 minut się odklei.

Ale co jest złego w takiej łatce?
Rezultat będzie osiągnięty, manager szczęśliwy a statystyki wypicowane.
Zrobić to dobrze czy zrobić to szybko?
W zasięgu jest szybka gratyfikacja ale jednocześnie pojawia się świadomość konsekwencji takiego kroku.
Może jednak łątka i szybki rezultat?
Nie, nie można zostawić takiego zjebatorstwa.
A może jednak


Kiedyś widziałem prezentację (psychologiczną), która takie dialogi nazywała dialogami dziecko-rodzic . Dziecko chce zaspokoić swoje potrzeby natychmiast zaś rodzic zważa na wszelkie konsekwencje. Jaki to wszystko ma wpływ na programowanie. Ano ma wpływ kurewsko duży. Czas na rzodkiewki.


Wyczerpanie EGO



Eksperymentów było kilka a więcej szczegółów można znaleźć pod frazą "ego depletion" lub szukając nazwisk "Roy Baumeister" czy "Mark Muraven".

Skupmy się na jednym z nich.


Badanych podzielono na grupy. Każda z osób biorących udział w eksperymencie wpuszczana byłą do pomieszczenia gdzie czekały na nią dwa talerze : jeden z rzodkiewkami zaś drugi z czekoladą. Każdy z uczestników opuścił jeden posiłek toteż czuł pewien głód. Teraz : pierwsza grupa mogła skosztować słodkich czekoladek zaś drugą poproszono o to aby zwalczyła instynkty, opanowała chęci i zamiast czekoladek skupiła się na rzodkiewkach.

Dlaczego tak bardzo lubimy czekoladki? Ano dzięki węglowodanom prostym, które natychmiast dostarczają energię do organizmu. Miało to sens eony temu jak zwierz był szybki a kolacja niepewna. W dobie ogólnoświatowego śmietnika gastronomicznego cały ten mechanizm prowadzi do czegoś co nazywa się "plagą otyłości".

Rzodkiewki cukrów chyba nie mają. Zdrowe bo zdrowe ale energii tak szybko nie dostarczą zwłaszcza kiedy żołądek zaczyna trawić cię od środka.

Gdy badacze przestali pastwić się na badanymi nastał czas na druga część eksperymentu. Każdy z badanych dostał do rozwiązania specjalnie spreparowaną łamigłówkę. Tak spreparowana aby nie dało się jej rozwiązać. To co było istotne to jak długo każdy z badanych będzie próbował ową układankę rozwiązać zanim się podda. Teraz zgadnijcie kto wytrwał dłużej.

Czekoladki wygrały. Naukowcy obwieścili istnienie formy wyczerpywalnej energii, która wydaje się zmniejszać za każdym razem gdy nasz świadomy umysł jest poddawany wysiłkowi.
Energię tę można rozumieć jako pewną abstrakcję ukrywającą cała masę procesów hormonalnych i psychologicznych dziejących się w umyśle.


Zesramy się a nie "zrefaktoryzujemy."


Zerknijmy teraz na analogie. Wprowadzenie dowolnej zmiany w kodzie składa się z wieloetpaowej układanki: naprzemienne składanie aktualnej logiki w głowie, tworzenie nowej układanki na potrzeby zmiany, a wszystko to w kontekście ciągłego dylematu czy zrobić to szybko (czekoladki) czy dobrze (rzodkiewki).


Co się teraz stanie jeśli postanowimy najpierw zrobić projekt "żeby działał" a "poprawimy później". System będzie jednym wielkim zbiorem poplątanych układanek.

Po pierwsze :

Złożenie zjebanej układanki wyczerpie ego przez co poddamy się szybciej przy układaniu następnych co zaowocuje kolejna zjebaną architekturą.

Po drugie :

Wydłuży się czas po którym zobaczymy jakikolwiek funkcjonalny efekt. Wydłuży się czas po którym nakarmimy się radosnym uczuciem zamiany potencjalnej energii kodu w energie funkcjonalności.
A jak jest się głodnym to co? to czekoladkę.


Tym skromnym postem autor chciał pewnym środowiskom zabrać pozorne poczucie kontroli nad jakością projektu wyrażane w słowach "zróbmy teraz co chce biznes a poprawimy później".
Oczywiście biorąc pod uwagę odpowiednio duże środki finansowe może to się zdarzyć tak samo jak przy odpowiednich środkach finansowych Widzew Łódź może wygrać ligę mistrzów. Trzeba tylko zbudować nową drużynę.



http://en.wikipedia.org/wiki/Ego_depletion