poniedziałek, 30 września 2013

Jak wywołać funkcję "Eureka"

Jeśli założymy, że informatycy to pracownicy fizyczni wtedy faktycznie nagradzanie za ilość linii kodu ma sens - bo nagradzany jest fizyczny wysiłek mięśni zginacza palca środkowego i sąsiednich. Ale ponieważ (mam niesamowicie ogromną nadzieję!!!) większość populacji rozumie już, że to jest bzdura i informatyk/programista to pracownik o charakterze intelektualno-kreatywnym, którego praca polega na rozwiązywaniu problemów - toteż ma sens największy aby skupić się właśnie na tym - problemach (i rozwiązaniach).

Problemy (i rozwiązania)

Okazuje się, że problemy możemy rozwiązać na dwa sposoby :

  • Ewolucyjny/Analityczny - do rozwiązania dochodzimy przyrostowo. Mając elementy A,B i C tworzymy liniowo różne kombinacje aż na coś natrafimy. Przypomina to trochę próbę wcelowania po pijaku właściwym kluczem do zamka w drzwiach
  • Rewolucyjny/Kreatywny - mając elementy A,B i C nagle (ni z tego ni z owego) zauważamy pewną naturę rzeczy - element A można podzielić na D i E i zestawić z B tak, że powstanie nieoczekiwana kombinacja (słynny eksperyment ze świeczką)

I co z tego? Podział jak podział... A jednak okazuje się, że w dużej mierze wiadomo co tam się pod czaszką w momencie "Eureka" dzieje

(I tutaj małe ostrzeżenie - jeśli czytelnik wyznaje klasyczny tu i ówdzie pogląd, że programistę trzeba zajechać aby "zoptymalizować" jego produktywność to niech przestanie czytać i pójdzie pooglądać Kubę Wojewódzkiego czy coś w tym stylu bo to co napiszę poniżej nie przypasuje mu do światopoglądu :( )

Neurologia olśnienia

(zrodlo : http://openi.nlm.nih.gov/detailedresult.php?img=387268_pbio.0020097.g002&req=4

Bohaterem historyjki jest niejaki Mark Jung-Beeman - neurolog z ważnego uniwersytetu w USA, którego nazwa fajnie by brzmiała, dodała powagi tekstowi ale nikt i tak je nie zapamieta. Jako spec od prawej półkuli mózgowej pewnego dnia sam przeżył olśnienie (plus masa wiedzy i paredziesiąt lat doświadczenia) iż skomplikowana natura języka wymusza jego procesowanie przez obydwie półkulę a nie tylko lewą - zwaną analityczną.

Beeman zaprojektował eksperyment, który polegał na tym aby znaleźć związek pomiędzy grupą wyrazów. Zakładał, że dla prostej grupy algorytm rozwiązywania będzie miał charakter analityczny ale już dla niecodziennego zestawu mózg będzie musiał zastosować jakąś sztuczkę. (Np zestaw {droga,przystanek, pasażer} - dosyć prosto - autobus | ale już dla {książka,spodnie,oklaski} - tak łatwo związku znaleźć się nie da - mól - zwłaszcza przy ograniczonym czasie)

A że na szczęście technologia jest coraz lepsza to można wykonywać takie fajne foty mózgu(fMRI), z kolorowaniem fragmentów pracujących. Plan był taki, że ludzie będą rozwiązywali zagadki siiedząc w komorze do robienia skanów. Niestety fMRI ma kilka sekund opóźnienia przez co nie udawało się zarejestrować "Eureki". Wtedy Beeman skumał się z kolesiem zwanym John Kounios, który to eksperymentował z inną technologią badania mózgu - EEG. Ta technologia dawała natychmiastowy wynik ale bez informacji, który rejon mózgu działał.

Postanowili połączyć te dwie technologie a wynik widzimy na obrazku trzy akapity powyżej:

Eksperyment

Chwile przed olśnieniem wyglądają tak :
  1. Faza przygotowawcza - wysoka aktywność płata czołowego. Moc obliczeniowa przekazana jest na szukanie rozwiązania problemu. Zmysły wydają się być uciszone (a przynajmniej obszary mózgu odpowiedzialne za ich obsługę - umysł nie chce być rozpraszany)
  2. Faza szukania - początkowo skupienie jest utrzymane. Aktywna jest lewa półkula (ośrodek mowy) ale gdy przez kilka sekund nie udaje się nagle wykres EEG wykazuje duża aktywność fal gamma (25-100Hz). W teorii falę gamma w naszym mózgu towarzyszą powstawaniu nowych sieci neuronalnych. I Wułala - właśnie został rozbudowany nasz mózg i siedzimy tak zastanawiając się "dlaczego wcześniej na to nie wpadliśmy" - przecież to (teraz) takie oczywiste!

Co się Co się co się stało

Badacze zauważyli to co widać na obrazku - aktywność w prawej półkuli. W teorii prawa półkula lepiej łączy różne koncepcje ale robi to mniej dokładnie niż półkula lewa. Na początku mózg skupia się na problemie ale później musi przerwać tę uwagę aby dać działać prawej półkuli.

Jakieś dziwne umysły mogłyby powyższy akapić odczytać w sposób - "aha czyli należy rozpraszać programistów" Nie, ku*wa nieee. Poniższy filmik odpowie dokładniej na to pytanie:

A to dlatego, że zanim pojawi się krótka aktywność gamma scalająca sieci neuronowe - swoją obecność zaznacza inna mózgowa "fala". Mózg działa w częstotliwości alfa (8-12HZ) w stanie relaksu. Medytacja, trans, relaks, spacer do Żabki - to wtedy mózg jest w stanie skanować pamięć w celu znalezienia kreatywnego rozwiązania. Hen hen czasu temu czytałem, że przy tej częstotliwości najefektywniej zachodzi wymiana informacji pomiędzy półkulami jakkolwiek teraz nie chce mi się szukać badań.

Swoje trzy grosze dołożył tutaj niejaki Joy Bhattacharya (a psychologist at Goldsmiths, University of London - kolejna fajna nic nie znacząca nazwa uniwersytetu). W trakcie swoich badań zaobserwował na wykresie EEG wzrost natężenia fal alfa na 8 sekund przed "olśnieniem". Kilka fajnych cytatów z tych badań:

"unless subjects have sufficient alpha-wave activity they won’t be able to make use of hints the researchers give them."

To poniżej jest zajebiste!

"If you’re in an environment that forces you to produce and produce, and you feel very stressed, then you’re not going to have any insights."
"If you want to encourage insights, then you’vegot to also encourage people to relax.

Cholera znowu coś co stoi w sprzeczności ze szkołą zarządzania "optymalizacji użycia klawiatury". Czyżby jednak wyciskanie ludzi i szlifowanie dedlajnów mogło nie być najlepszym środkiem do zwiększenia produktywności w IT? Za każdym razem gdy znajduję takie badanie boję się, że gdzieś tam w krainie wyssanych z dupy harmnonogramów ginie gantowa wróżka

Ciekawy przypadek

Tak dla przypomnienia - istnieje jeszcze częstotliwość beta (16-20hz). W tym stanie mózg działa w trakcie "nie-relaksacji" i wyostrzonego skupienia. Jakkolwiek tutaj na ciekawy przypadek natrafił Kounios (to ten od EGG) w trakcie swoich badań. Otóż pewnego dnia uczestniczył w nich mistrz ZEN (to taka forma medytacji). Koleś nie był w stanie rozwiązać żadnych z puzzli - aż za nadto panował nad swoim umysłem w pełni skupiając się na problemie.

I nagle - w chwili pewnej - ZEN koleś zamienił się w prawdziwą maszynę do kreatywnego rozwiązywania zagadek. Generalnie tak zajebiście panował nad umysłem, że był w stanie skupić się na tym aby na niczym się nie skupiać. (To jest generalnie jedno z fajnych ćwiczeń w medytacji. Spróbujcie zamknąć oczy i nie myśleć o niczym - na samym początku można w tym stanie przesiedzieć maks kilka-kilkanaście sekund.

Do wspaniałych rzeczy jakie może dać medytacja w IT jeszcze kiedyś wrócimy.

Pracuje/niepracuje

Jestem na siłce i nagle do głowy przychodzi mi pewne rozwiązanie problemu z pracy. Najczęściej są to małe rzeczy związane designem komponentów/klas/funkcji w aplikacji ale czasami zdarzają się rzeczy relatywnie "przełomowe" jak np. ostatnio pomysł na wyciągnięcie części funkcjonalności do generowania raportów wewnętrznych do osobnej aplikacji co znacznie usprawniło rilisy (niby takie oczywiste a jednak przez ponad rok żaden mózg od pacyfiku poprzez stawy Jana w Łodzi o tym nie pomyślał). Początkowo myślałem, że to kwestia ukrwienia móżgu w trakcie ćwiczeń ale teraz widzę ogromny wpływ "stanu psychologicznego"

I teraz pytanie - jak to liczyć do czasu pracy? Rozwiązuje problemy z pracy to jestem w pracy? A jeśli siedzę przy klawiaturze i zastanawiam się czy zamknąłem drzwi od domu - to jest w pracy ale nie w pracy? I jak w kontekście tych rozważań ma się to zalecenie aby siedzieć 8 godzin przy klawiaturze? I czy czytniki przy drzwiach mają sens czy może raczej jakieś skanery mózgu?

Czy jeśli coś cokolwiek co napisałem powyżej ma sens to czy "optymalizacja czasu przy klawiaturze" driven development ma jakiś sen? Czy logowanie godzin i inne takie mają jakiś sens jeśli takie zbiory jak {"umysł","kreatywność","olśnienie","rozwiązanie"} {"liniowość","przewidywalność","plan","determinism"} lubią być zajebiście rozłączne?

Oczywiście cały czas gdzieś tam istnieje frakcja, według której jakiś zajebisty koleś w zajebiście brzmiącej roli wszystko wymyśli a małp.. znaczy programiści maja nie myśleć tylko robić. No cóż, był kiedyś taki odcinek przygód Tytusa gdzieś pewnej grupie ziomków wlali dosłownie olej do głowy - polecam lniany tłoczony na zimno - podobno ma dużo omega-3 .

Eureka i scala

Ostatnio mam relatywnie często olśnienia w trakcie rozkminy koncepcji ze scali. Covariance i Contravariance zczaiłem pomiędzy seriami na mięsień dwugłowy ramienia (zwany na dyskach osiedlowych "Bajcem"). Natomiast olśnienie odnośnie ostatniego zadania drugiego tygodnia kursu funkcyjnej scali (implementacja mapowania na symbolicznej reprezentacji zbiorów) przyszła z falą teścia po treningu nóg.

A no i kiedyś jak biegałem z ulotkami to nagle zaczaiłem jak powstaje drganie w układzie kondensator-cewka.

LINKI

niedziela, 15 września 2013

Jak stres w IT zabija kreatywność

Jak poruszyć anty-mainstreamowy temat i nie doprowadzić do jałowego trollowania?

Na przykład stwierdzenie "warto prowadzić zdrowy tryb życia" ma ogromny "potencjał strollowania" (np. "można żyć bez papierosów - tylko po co?" czy coś w tym stylu). Dużo trudniej trollować fakt - "mięśnie składają się z włókien białych i czerwonych" - chociaż może jakiś mistrz ciętej riposty i tutaj się wykaże.

Podobnie taka oto teza "stres w każdej postaci szkodzi produktywności w IT" może łatwo przerodzić się w trollo dyskusje ot chociażby poprzez stwierdzenie - "o nie nie, ja mam doświadczenie i jak raz przycisnąłem ludzi to produkt był w dwa tygodnie gotowy". No i zaczyna się problem ponieważ nasze subiektywne opinie i wspomnienia zazwyczaj mają mało wspólnego z rzeczywistością - i na ten temat są tysiące stron literatury naukowej.

Znacznie lepiej przenieść dyskusję na poziom bardziej ...mechaniczny.

Jak stres wyłącza neurogenezę

Bodziec

Najpierw pojawia się bodziec dla rozpoczęcia procesu - zagrożenie. Generalnie my - jako ludzie - mamy taki oficjalny "zbiór rzeczy stresowych" jak np. "to uczucie kiedy biegnie na ciebie coś dużego z 20 centymetrowymi kłami" czy też głośny dźwięk lub nagła utrata równowagi. Oczywiście każdy człowiek poprzez swoje niepowtarzalne życie tworzy wariację tego zbioru i tak np. hycel może się uodpornić na warczenie psa a ktoś inny nabędzie strachu przed zamkniętymi pomieszczeniami (czyli np. idziesz o dwunastej do sklepu i boisz się, że będzie zamknięty)

Są dwa bardzo interesujące bodźce korporacyjne do których powrócimy później.

Kortykotropina (ACTH)

O tym punkcie wspominam w zasadzie tylko dlatego, że słowo "Kortykotropina" zajebiście nadaje się do ćwiczenia wysławiania się. Sam mam wadę wymowy, więc mi pomaga - także wszyscy na trzy- cztery

  • Kortykotropina
  • Kortykotropina
  • Kortykotropina

Kortykotropina syntetyzowana przez przysadkę mózgową wali w nadnercza co zmusza je do produkcji hormonu stresu - kortyzolu (a nednercze to tutaj --> Nadnercze)

Tryb - "walcz lub uciekaj"

Kortyzol to taki globalny sygnał dla organizmu "Mamy kłopoty - koniec zabawy".

Kortyzol zatrzymuje "development organizmu". Mięśnie przechodzą w stan katabolizmu (rozpad), spowolnione zostaje działanie układu odpornościowego (nie czas na zwalczanie wirusów - za chwile coś może nam odrąbać głowę.

Bardzo ciekawe rzeczy dzieją się gdy kortyzol uderza w mózg - ciekawe zwłaszcza dla zawodów wymagających kreatywności

Zakręt zębaty i neurogeneza

Zakręt zębaty (Dentate_gyrus) to zajebisty kawałeczek mózgu. Do niedawna (przynajmniej relatywnego niedawna) uważano, że mózg rozwija się tylko w dzieciństwie i jeśli rodzicie spieprzą nam ten okres życia to już nie ma ratunku. Okazuje się, że proces tworzenia nowych neuronów,połączeń i struktur jest kontynuowany nawet w dorosłym mózgu a jedną z centralnych rol w tym procesie pełni właśnie zakręt zębaty.

"Zakręt zębaty" generuje nowe neurony i wspomaga tworzenie nowych struktur na potrzeby tworzenia nowych wspomnień związanych z eksploracją nowych środowisk czy też odnajdywaniem nowych zależności pomiędzy starymi koncepcjami - kreatywność? Brzmi jak kreatywność. A co z tym obszarem mózgu robi kortyzol? --- W Y Ł Ą C Z A !----

Tak oto doszliśmy do tego jak stres wyłącza kreatywność. Oczywiście nie mam swojego laboratorium i to co tutaj napisałem to moja własna interpretacja przeglądu literatury fachowej. Ale jeśli to prawda to powyższe dane rzucają nowe światło na psudo-techniki managerskie pod tytułem "wywrę na nich presję kłamiąc, że deadline jest dwa tygodnie wcześniej" (a słyszałem o takich). Oczywiście jest jeszcze jedno ale - czy programowanie to bardziej praca kreatywna czy mechaniczna?

Oczywiście, że kreatywna...

... a wcześniejsze pytanie było tylko retoryczne. Niestety nadal na rynku istnieją ludzie wierzący w industrialny podział na tych co myślą i na tych co robią. Właśnie taki totalny fail jak waterfall zakładał, że mądrzy ludzie zaprojektują a programiści "przeklepią". Cóż, jeśli jeszcze gdzieś jakiś beton w to wierzy to powyższe go nie przekona.

Natomiast jeśli ktoś uważa, że projekt IT to epickie zmagania z niezwykłą złożonością i że bez względu na metodykę i rolę w projekcie, każdy poprzez kontakt z innym wycinkiem tej złożoności jest w stanie użyć swojej kreatywnej mocy aby poprzez wartościowy feedback i pro aktywną postawę usprawnić stan projektu - wtedy witam w krainie mądrości i rozumu.

a i jeszcze jedno...

Oksytocyna

Oksytocyna to antagonista kortyzolu. To jest w sumie temat na osobny wpis ale tutaj wspomnę, że oksytocyna to tzw. "hormon więzi międzyludzkiej" - a nawet nie tylko międzyludzkiej. Dlatego właśnie gdy czujemy stres i ktoś okaże nam wsparcie to wtedy tak jakby czujemy się bezpieczniej. A jeśli komuś potrzeba bardziej naukowego przykładu - młode szczury oddzielone od matek w ciągu 48 godzin tracą dwa razy więcej komórek mózgowych w korze mózgu niż te nie oddzielone.

Korporacyjne źródła stresu

Dedlajn dedlajnem ale są dwie inne ciekawe kwestie, które mogą wpłynąć na nasz poziom stresu i naszą produktywność :

  1. Co ma wspólnego : wyprzedaż w MediaMarkt, ostatnie wolne miejsce w autobusie i dwie babcie, ostatni spadochron w spadającym samolocie i korporacyjny system bonusowy oparty o krzywą Gaussa? - są to ograniczone zasoby
  2. Czy jeśli macie znerwicowanego przełożonego, którego w kuchni mianowali odpowiednikiem męskiej części ciała i taki oto ktoś stoi wam za plecami to czujecie się bardziej czy mniej kreatywnie? W nasŧępnym odcinku(lub odcinkach) opowiemy sobie o teorii osobowości A i B - a także czy sama obecność przełożonego, lidera czy autorytetu może wzmocnić stres i wyłączyć kreatywność

A na koniec kilka linków oraz doskonale zagrany fragment filmu - gdzie możecie sobie zobaczyć jak płynnie zmienia się centrum "statusu i siły" poprzez zachowanie i jak wpływa ono na procesy osób uczestniczących w scence (procesy oczywiście udawane przez aktorów ale właśnie za to trzepią tyle kasy, że tak dobrze to udają)