Mindfulness

Jag zappade förbi ett program på TV igår som bestod av utdrag ur föreläsningar om hjärnan. Bland annat var det ett avsnitt med Åsa Nilsonne om mindfulness.

Enligt Åsa finns det tre grundstenar i mindfulness; medveten närvaro, medkänsla och att ta ansvar för sina handlingar i nuet. Jag började fundera lite runt hur det här passar ihop med programmering och utveckling. Det som framför allt fångade min uppmärksamhet var ett resonemanget runt att ta ansvar för sina handlingar i nuet. Det hela gick ut på att vi kan egentligen inte förändra vår historia eller kontrollera vår framtid utan bara nuet. Det är här och nu som vi kan påverka på riktigt och att vi måste ta ansvar för hur vi väljer att agera i nuet. Om vi vill förändra något hos oss själva så är det nu vi kan göra det, väljer vi att skjuta upp det tills i morgon har faktiskt inget förändrats.

När jag hörde det här associerade jag till utvecklare som inte tar ansvar för sin kod här och nu. Som inte skriver unit-tester, som inte refaktoriserar, som skriver allmänt slaskig kod osv. Jag tror det handlar mycket om att ta ansvar för nuet och insikten att det förändrar både historien och framtiden. Nuet är trots allt morgondagens historia och genom att göra rätt idag skapar vi förutsättningar för att kunna förändra vår kod i framtiden. Det verkar vara någon form av mognadsfråga; en del inser att problemet inte är att skriva kod som gör det den ska rent logiskt, det svåra är alla de andra egenskaperna.

Om mindfulness leder till att man mår bättre och är nöjdare med livet, skulle man kanske kunna tänka sig att vårt sätt att skriva kod också påverkar hur vi mår? Jag tycker i alla fall att det känns bättre att koda ordentligt.

 

 

 

Har halva befolkningen fel?

Självorganiserande team och teamarbete är något som är näst in till självskrivna byggstenar när man pratar om agila arbetssätt. Själv brukar också jag predika det självorganiserande teamets lov. Halleluja!

Men så en dag såg jag ett TED-talk av Susan Cain: ”The power of introverts”. Det handlar om att mellan 1/3 och hälften av befolkningen befinner sig på den introverta halvan av en skala som går mellan introvert och extrovert. En introvert person är inte blyg, hämmad eller liknande, utan fungerar bättre och får fler av sina kickar i sitt eget tankelandskap, till skillnad till extroverta personer som hellre vill interagera med andra. Susan säger att normen idag är att personer förutsätts vara extroverta och att vi skapar utbildning, öppna kontorslandskap osv baserat på denna norm, fast det passar en stor del av befolkningen dåligt. Introverta personer gör alltså ett bättre jobb om de får sitta och fundera i lugn och ro på sin kammare.

Intressant blir det om man applicerar den här kunskapen på våra agila metoder. Vad i våra arbetssätt passar introverta personer sämre? Spontant dyker saker som team, sprintplaneringar osv som vi gör tillammans, upp i mitt huvud. Är det så att scrum tex, egentligen bara fungerar bra på den halva av befolkningen som är extroverta? Är det i så fall bra att tvinga in de introverta personerna i det arbetssättet? Ska bara extroverta personer vara med och jobba agilt? Kan vi hitta ett annat sätt att arbeta som passar alla bättre eller borde vi hitta en speciell arbetsmetod för introverta personer?

Många frågor och få svar. Jag tycker dock det är intressant och det skulle kunna förklara varför en del personer faktiskt inte tycker att det här med scrum är något vidare, eller att en del team verkar ha svårt att lyfta? Det här är ett område som kräver mer grävande!

Fokusera på mål istället för problem

Jag var på konferensen Agila Sverige nyligen. En av många intressanta diskussioner som dök upp handlade om att fokusera på rätt saker; mål (eller möjligheter om man så vill) istället för problem. Joakim Ohlrogge (@johlrogge) var inne på spåret att undvika alla former av negativa konstruktioner, både i hur man arbetar, kod osv. Lite exempel på rätt och fel

  • Hjälpa fattiga bönder i sydamerika att konvertera sin odling från coca-plantor till kaffe är ett bra sätt att stoppa knarkflödet till USA. Att bomba odlingarna med avlövningsmedel är dåligt.
  • Patterns är bra, anti-patterns är dåligt.
  • hasElements() är rätt, !isEmpty() är fel
  • Var nyligen på Post-hotellet i Göteborg. Där finns det gott om skyltar som säger vad man inte får göra men klart färre som säger vad som är OK. Fel!

Han menade kort sagt är det bättre att förstärka det positiva än att stoppa det negativa. Allt blir roligare, det går fortare mot målet och det blir bättre.

Jag kan inte annat än hålla med. Jag får lite olika associationer runt det här.
Först tänker jag på impro-teater där man pratar om att inte blockera. Där handlar det mycket om att se till att allt man gör ska leda vidare framåt och dessutom ge andra möjlighet att komma vidare.
Ur en beteende-vetenskaplig synvinkel skulle man nog säga att det är mycket effektivare att förstärka ett bra beteende när det inträffar än att försöka hindra ett dåligt.

Med fokus på problem så tror jag att det finns en risk att vi jobbar så här

  1. Identifiera alla problem
  2. Lös eller hantera problem
  3. Spring mot målet

Med målfokus hoppas jag att det blir mer av

  1. Identifiera målet
  2. Hur kommer vi snabbast dit?
  3. Spring

Med för stort fokus på problemen tror jag att det finns risk att vi löser problem i onödan som vi egentligen kunde ignorerat. Nu menar jag inte att vi ska sluta att fundera över risker helt men det skulle kanske inte göra något att tänka mer på målet och möjligheterna.

 

Ett evolutionärt förhållningssätt

Ju mer jag tänker på begreppet ”evolutionär utveckling” desto bättre gillar jag det. Många av de principer som finns i agil utveckling passar bra in kan jag tycka. Iterationer och prototyper är klockrent och även att fokusera på de problem som finns här och nu.

Evolution har lyckats skapa ganska fantastiska kreationer, det borde vara en princip som är värd att låta sig inspireras av.

Avlasta korttidsminnet

Det finns undersökningar som visar att vi presterar bättre om vi får fokusera på en sak i taget istället för att ha flera bollar i luften. Vi fungerar helt enkelt bättre när vi kan koncentrera oss på ett problem vilket kanske inte känns så konstigt

Det skulle kunna vara så att begränsningen i förmågan att hantera parallella problem inte är medfödd utan något som vi skaffar oss med tiden. I så fall skulle det kanske vara möjligt att genom träning förbättra den. Det borde också vara så att individer som är vana att göra flera saker samtidigt blir bättre på det, tex ungdomar som läser läxor, lyssnar på musik, twittrar och chatar på en gång. Frågar man dom själva tycker de att det går alldeles utmärkt men forskning visar att de har samma begränsningar som alla andra. Det verkar alltså som det handlar om medfödda begränsningar hos oss som art.

Det är här som (bland annat) korttidsminnet eller arbetsminnet kommer in. Vi använder arbetsminnet hela tiden när vi försöker förstå världen runt oss, lösa problem, tolka vad någon säger, läsa, osv. Information lagras här tillfälligt för att de här processerna ska fungera. Problemet är att bara en begränsad mängd information kan lagras vid en specifik tidpunkt, så om vi fyller arbetsminnet med information som inte är relevant för det vi håller på med, fungerar vi helt enkelt sämre. Därför är det bra att minska mängden information som vi håller ”aktiv”.

Om vi då vet att vi fungerar så här hur borde det påverka hur vi arbetar? På det personliga planet finns det många ganska enkla saker man kan göra, tex:

  • Stäng av mail-program, twitter och annat som stör. Fokusera på en sak i taget och kolla mail osv senare.
  • Gör listor (eller liknande) över vad som ska göras senare så du inte behöver hålla sådant i närminnet. (Läs tex ”Getting Things Done” av David Allen)
  • Stäng in dig, fysiskt eller med hörlurar eller vad som fungerar
  • Lär dig fokusera på ett problem i taget (mindfulness)
På en företag- eller process nivå:
  • Låt folk göra en sak. Det är inte effektivt att dela upp en ”resurs” på flera projekt. 20% + 30% + 50% blir inte 100%!
  • Visualisering med postit-lappar som i scrum eller kanban
  • Skapa miljöer där man kan arbeta fokuserat när det behövs (tex med pomodoro-metoden)
  • Minska långsiktigt problemfokus. Jobba i små iterationer och fokusera på de problem som finns här och nu. Undvik oro för att det ni gör idag kommer leda till problem senare, hitta istället sätt att arbeta på som gör att ni är säkra på att framtida problem går att lösa.

Förutom att vi gör ett bättre jobb om vi kan göra en sak i taget, tror jag också att det är lättare att släppa jobbet när man går hem, om man inte har huvudet fullt med framtida potentiella problem.

 

Cykler

Inom agila utvecklingsmetoder är vi vana att arbeta i iterationer som är ett par dagar upp till några veckor, beroende på situation och metod. Det är bra ut flera synvinklar; efter varje iteration har vi förhoppningsvis en ny version (prototyp) som vi kan klämma på, det är en bra tidpunkt för feedback och det ger tydliga delmål.

Jag tittade på ett TED-talk (ständigt detta TED) med Alain de Botton: Atheism 2.0, där han pratar om vad det finns för mekanismer i religion som är bra och som han tycker att vi kan använda även om vi inte tror på gud. Bland annat pratar han om att man i religioner nöter in värderingar och kultur genom repetition och ständiga påminnelser. Man ber tex böner flera gånger om dagen och man har kalendrar där högtider firas vid specifika tider på året.   Högtiderna blir så att säga naturliga punkter där man påminns om en värdering eller ett förhållningssätt. I den sekulära världen däremot tror vi att det räcker met att vi stöter på en bra idé och så är det bra med det. Ska man vara helt ärlig är det kanske inte helt otroligt att vi under livet glömmer bort en del av de bra idéer som vi hört om.

Jag började fundera över om det här är något man skulle kunna införa på ett företag? Många företag har nog en mer eller mindre uttalad årscykel som de följer med olika faser av praktisk natur; lönerevision, budgetarbete osv, men vad skulle hända om man tog det ett steg längre och planerade in ”högtider” med syftet att repetera värderingar och ge feedback? Jag vet inte riktigt hur sådana ”högtider” skulle se ut men jag tycker tanken är lockande. Vi skulle få en större helhet där det dagliga arbetet och iterationerna passar in på ett naturligt sätt. Det skulle också ge en mer cyklisk bild av tiden vilket förmodligen stämmer bättre överens med hur människan uppfattade tid innan vi uppfan klockan (tänk dag, år, födas-leva-dö, allt repeteras cykliskt).

Medmänsklighet

Medmänsklighet och empati är något som de flesta tycker är bra och som vi gillar hos våra medmänniskor, men som vi kanske mest ser som en egenskap bland många andra. Det verkar dock vara mer än så.

Chade-Meng Tan, Jolly Good Fellow på Google (= head of personal growth) menar att medmänsklighet är roligt och ger lycka, dvs att vi som individer mår bra av att visa medmänsklighet mot andra. På Google har man tagit fasta på det här och bygger sitt företag runt denna tanke, man ser ett mönster som upprepar sig. En liten grupp anställda brinner för något som de börjar arbeta med, fler och fler blir intresserade och om det blir stort nog blir det officiellt och kommer ut i världen. Detta är inte nödvändigtvis applikationer som går att sälja utan kan tex vara olika sociala projekt så som att samla in pengar för att bygga ett sjukhus i en avlägsen del av Indien, utbildning eller katastrofhjälp.

Det låter ju trevligt att personalen kan lägga tid på att vara medmänskliga, men hur tjänar man pengar på det? Tan menar att medmänsklighet leder till

  • effektiva ledare – ledare som är ödmjuka och arbetar för något större (”greater good”). Detta är, enligt James Collins (Good to great), receptet på den typ av ledare som har förmågan att förändra ett företag från ”goof” till ”great”.
  • inspirerande anställda – inspirerande anställda inspirerar varandra vilket leder till en god spiral av inspiration, kreativitet och initiativ och därmed ett effektivt företag.
För att utveckla ett företag mot medmänsklighet anser han att man ska
  • bygga en kultur som inspirerar till något större
  • främja självbestämmande
  • stötta de anställda i sin personliga utveckling

I en RSAnimate-film pratar man också om att empati är våran starkaste drivkraft, men att vi kanske idag byggt vårt samhälle och organisationer så att vi inte utnyttjar detta på ett bra sätt. Forskning visar att människan är skapad som en social varelse som vill tillhöra en grupp och känna tillgivenhet, inte som agressiva och egoistiska individualister.

Dalai lama lär ha sagt: ”If you want others to be happy, practice compassion. If you want to be happy, practice compassion.”

TED-talk med Chade-Meng Tan

RSAnimate – The empatic civilisation

Varför iterera?

Jag lutar mer och mer mot att vi borde sluta försöka förstå och lösa komplexa problem genom en total analys och design, det är helt enkelt för svårt. Istället tror jag på att försöka lösa dom på ett mer evolutionärt sätt, att göra flera försök (eller iterationer) och hela tiden försöka förbättra lösningen. Om vi tittar på senaste försöket och förbättrar det vi har kommer vi i alla fall röra oss i ungefär rätt riktning och vi behöver egentligen inte riktigt förstå varför.

Det klassiska sättet att lösa problem, top-down, där någon försöker göra en plan som sedan ska leda till den slutliga lösningen, kräver att denna någon förstår en ganska stor del av problemet i förväg. Lustigt nog är det först när vi är klara som vi egentligen har någon riktig kunskap så det är inte förrän då vi skulle kunna göra en riktigt bra plan.

Det finns ett bra TED-talk med Tim Harford där han pratar om just detta. Han menar att världen helt enkelt är för komplex för att förstå och han har till och med ett namn på de som ändå försöker: gudskomplex. Hans definition på att någon har gudskomplex är att oberoende av hur komplicerat ett problem är så tror du att din lösning fungerar och är felfri. Det har visat sig att det inte fungerar.

Enkla problem går ju bra att lösa på klassiskt vis så då undrar man gränsen går, hur komplext ska problemet vara för att arbeta iterativt? Mitt svar är så fort vi inte kan överblicka lösningen helt. Väg också in risken att du har fel och att du inte har en aning om det.

Randy Nelson från Pixar lär ha sagt ”The core skill of innovators is error recovery, not failure avoidance”.