torsdag 5 april 2012

The Samurai Coder III

En till lean-princip som har en tydlig parallell i aikido: See the Whole.

See the Whole innebär att man alltid ska ta hänsyn till helheten, till hela systemet som ska byggas, se till hela verksamheten som systemet ska stödja. Om man inte gör det finns en uppenbar risk att man suboptimerar. Man riskerar helt enkelt att lägga krut på fel saker. Om man ser till helheten så ser man var man ska lägga energi, tid och pengar för att få ett system eller en applikation som på bästa sätt hjälper en verksamhet.

Och i aikidon då, när ser vi helheten där? Typ jämt. En nybörjare har fullt upp med att hålla koll på sina händer och fötter, så deras fokus tenderar att hamna ute i händerna och fötterna. En mer erfaren aikidoka har flyttat fokus från de yttre extremiteterna in mot kroppens centrum och får ett mer koordinerat rörelsemönster, mer kraft i rörelserna och en bättre balans. En väldigt erfaren aikidoka tar med partnern i tekniken också, så att partnerns rörelse och energi blir en integrerad del av tekniken. En jätteerfaren aikidoka kan utföra en teknik nästan utan att använda armar eller ben...

I klubben jag tränar i, KFUM-KFUK Uppsala Aikido, har vi en instruktör som tydligt sätter ihop allt till en helhet. När han instruerar brukar han räkna momenten han gör så att det ska bli tydligt och pedagogiskt hur tekniken ska utföras. Han kommer aldrig längre än till "ett". Möjligtvis ett lite utdraget "eeeett". Men aldrig "två". Jag tror inte han själv är medveten om att han aldrig räknar längre än till ett.

Och ser man på helheten så är det bara, "ett", the Whole. See?

måndag 2 april 2012

The Samurai Coder II

Det finns fler exempel på principer inom de agila och lean:a metoderna som har paralleller i aikidon: I lean finns tumregeln Decide as Late as Possible som går ut på att man inte ska fatta beslut i förtid utan vänta till i sista stund, men inte till efter sista stund, för då är det försent. Att vänta med att fatta beslut så länge som möjligt är ett sätt att behålla valmöjligheterna så länge som möjligt. Man ger sig själv en chans att samla in så mycket information som möjligt innan man fattar beslutet.

När ett beslut är fattat så har man tagit bort minst en frihetsgrad. Man kan alltid riva upp ett beslut om det var felaktigt, men att hålla på att fatta beslut bara för att riva upp dem är slöseri (muda!) på tid och då antagligen också på pengar.

I aikido motsvaras Decide as Late as Possible av att man inte bestämmer sig för hur man ska röra sig förrän det är dags att röra sig. Extra tydligt blir det när vi tränar med bokken, träsvärd. Då övar vi på att möta ett hugg, dvs stå och vänta på att en partner lyfter bokken för att hugga en i huvudet. Rör man sig för sent får man ett träsvärd i skallen, inte bra, helt klart för sent. Rör man sig för tidigt hinner partnern se det, kan sikta om och man får ett hugg i huvudet. Man måste invänta rätt ögonblick, man behåller sina valmöjligheter så länge som möjligt och samlar in all nödvändig information innan det är dags att agera.

Ett annat sätt vi tränar Decide as Late as Possible i aikido är när vi tränar jiyuwaza. Jiyuwaza är en träningsform då attacken är förutbestämd, man vet alltså hur partnern kommer att attackera på förhand, men man får göra vilken teknik man vill för att möta attacken. Även om attacken är förutbestämd finns det variationer som uppstår beroende på avstånd, hastighet, vinklar och om det är fullmåne eller ej. Det är mycket som spelar in hur attacken kommer att se ut när den är framme hos mig som ska ta emot den. Och i och med att alla de där små variationerna finns så kan jag inte i förväg bestämma mig för vilken teknik jag ska göra; jag kan inte bestämma förrän i sista sekund.

Precis som i lean. QED :)

Lapproblemet!

Jag löste problemet med lapparna!

Den tidigare scrum mastern använde en tredjeparts projektplaneringsverktyg som integrerar med TFS och har den (enda) fördelen att man kan skriva ut alla work items som lagom stora lappar. Så den kör jag också med nu.

Men det var det enda som den kunde användas till. Resten var ... mindre användbart om man säger.

Så egentligen skulle jag vilja ha en lösning på lapproblemet där jag bara behöver använda Excel. Ett makro eller något som utifrån ett antal rader strukturerar om informationen på varje rad till ett antal lappar som kan skrivas ut och sättas upp på vår whyteboard. Hur svårt kan det vara!?

söndag 1 april 2012

The Samurai Coder I

Jag är inte bara konsult. Jag är aikidoka också!

Aikido är en relativt ny japansk kampsport, en sorts budo, skapad av Morihei Ueshiba. All japansk budo har sina rötter i samurajernas krigskonst, men har lämnat sitt blodiga förflutna. Paradoxalt tränar man numera budo för att bli en bättre människa.

Så tränar man aikido är man samuraj, nästan. Aikido tränar man inte bara på mattan utan är något man tar med sig i livet. Därför jobbar jag som en samuraj!

Det blodigaste jag gör när jag jobbar som en samuraj är att döda buggar. Att döda buggar är ett exempel på att göra någonting bättre. Ett mer allmänt sätt att göra något bättre är att man letar och gör sig av med muda. Muda är japanska och betyder ungefär skräp, dvs någonting som inte tillför nytta, något som är obra.

När man tränar aikido så strävar man efter att plocka bort allt som inte behövs. På en nybörjarkurs lär man sig att utföra tekniker med stora, nästan övertydliga rörelser för att sedan komprimera rörelserna, synkronisera andningen och hitta rätt tempo och avstånd, allt för att hitta essensen i en teknik; ett enda stort jagande efter muda, sådant som inte behövs.

Tidigare tränade jag iaido, en annan sorts budo som går ut på att dra och hugga med ett svärd. Draget och hugget ska utföras koncentrerat, fokuserat och efter ett precist rörelsemönster. Jag minns att min instruktör berättade att han en gång fått höra av en högt graderad instruktör i japan att han inte skulle blinka med höger öga innan han hugger. Blinkningen var nämligen muda, den behövdes inte för att utföra hugget.

Ordet muda har vi nog aldrig nämnt på aikidoträningen, möjligtvis på iaidoträningen, minns inte. Ordet muda fick jag lära mig på en Scrum-kurs, eller om det var en Lean System Development-kurs, minns inte det heller. Att jag lärde mig ordet där är ingen slump eftersom både Scrum och Lean har sina rötter i Lean Production System som också kallas TPS, Toyota Production System, dvs ett system som hittades på av japaner med en historia bland samurajerna.

Och se där, en cirkel slöts!

Samuarjer => Toyota => Lean/Scrum => Muda => aikido/iaido => samurajer. Hai!

torsdag 15 mars 2012

Refaktorering och problem med lappar

Projektet jag jobbar i har refaktorerats en aning. Från att ha varit utvecklare och mentor till scrum master så är jag nu utvecklare och scrum master. Den tidigare scrum mastern satt på alldeles för många stolar. Utöver att vara scrum master så var han också utvecklare, arkitekt och CM och hade konstant för mycket att göra. Han blev en flaskhals och det var främst scrum:andet som blev lidande.

Så jag fick ta över och det är vi glada för, både jag och ex-scrum mastern. På en skala så är det riktigt kul att vara scrum master igen!

Min första insats har varit att se till att vi har en riktig sprint backlog. Tidigare fanns sprint backloggen utspridd på ett par olika ställen (nyutveckling i TFS, Excel och Word, och defekter och ändringsbegäran i QC), och det var ett litet helvete att skriva release notes för ett bygge och det gick inte att spåra progressen i en sprint på något vettigt sätt.

Nu har vi samlat allt som ingår i en sprint i TFS: Alla nya story som scenarios som bryts ner i tidsuppskattade tasks, och alla defekter och ändringsbegäran som tasks. Alla incheckningar associeras med en task, så nu går det mycket lättare att knåpa ihop release nötterna. Dessutom är det enkelt att exportera backloggen till Excel och enkelt se hur många timmars jobb som återstår i en sprint.

En detalj som inte funkar riktigt 100% är att få ut alla tasks i TFS på små lappar som vi kan sätta upp på vår arbetstavla så att det tydligt syns vad vi pysslar med. Just nu använder jag en applikation från Telerik för att skriva ut task-lappar, men den är låååångsam, användarovänlig och det går inte att styra vad som ska stå på lapparna.

Det går ju som sagt att från TFS få ut alla tasks i ett Excelark, men då som en lista, inte i lapp-format, och jag kan Excel lite för dåligt för att få till snygga lappar från en lista...

Lapproblemen till trots så är det kul!




lördag 3 mars 2012

Hmmm...

Om man skulle ta och försöka göra lite reklam för sig med en blogg?

En statisk webbsida och Facebook-sida (en enda gilla-markering, och det är jag själv som gillat!) blev ju inte precis någon succé, så vi provar ett annat internetbaserat medium.

Jag har en plan om att publicera några inlägg om min syn på vissa aspekter av systemutveckling.

I väntad på det får ni hålla till godo med det som står på bloggens andra sidor. Kolla länkarna till höger!