torsdag 18 november 2010

Øredev 2010

Øredev 2010 – imponerande program med bra talare och spännande ämnen. Jag var där en dag och valde att gå på presentationer med agil inriktning. Här är några höjdpunkter.

Agile is dead, long live agile
Jeff Sutherland, en av upphovsmännen till Scrum, tog pulsen på mjukvarubranschen år 2010. Varför är andelen lyckade mjukvaruprojekt fortfarande så låg? Många företag säger att de är agila, borde inte kvaliteten ha förbättrats? Enligt Jeff missar många de viktigaste sakerna: möjligheten att få snabb återkoppling – feedback – och att mäta framsteg. Hur vet man hur det går när inget data finns? Många projekt har inte ens en demo efter sina sprintar! Han pekade på flera brister i projekten idag, bland annat att det är för många roller och specialister i organisationerna. I Scrum ska det ju bara finnas tre roller.

Han ställde två enkla frågor till oss:

- Hur många här använder sig av "User stories" i projekten?
(de flesta av oss räckte upp handen)

- Hur många här tycker att ni har bra "User stories"?
(de flesta av oss räckte inte upp handen)

Ett problem?

Mission-Critical Agility
Dr. Jeff Norris från NASA berättade historien om Alexander Graham Bell och det som drev honom att utveckla den första kommersiellt gångbara telefonen. Han gick vidare med hur det gick till när NASA utvecklade Apollo 1-farkosten. Fascinerande historier med mycket drama.

- Men hallå, vad har det med agil utveckling att göra?

Poängen var att visa hur viktigt det är att våga pröva olika idéer, att våga ta risker och att vara engagerad – vara agil, helt enkelt. Berättelserna vävdes in i tre huvudpunkter: Vision, Risk & Commitment.

Förutom de inspirerande historierna fastnade jag speciellt för en sak, att åtagande – Commitment – från ett agilt perspektiv faktiskt innebär att hålla sig fri från åtaganden så länge som möjligt.

Clarity rules! Six collaboration skills for agile teams
Diana Larsen, författare till Agile Retrospectives (bra bok!), delade med sig av många bra tips om vad man kan göra för att bli ett bättre team. Från konkreta saker som att möblera lokalerna så att de faktiskt passar projekten (har du gjort det någon gång?), till enkla steg-för-steg-metoder för att ta beslut och reda ut problem i teamet. Ett tips: har du en produktägare i företaget som är svår att få tag på? Ge honom/henne den bästa platsen som råkar vara precis bredvid er, hur kan man tacka nej till det?

onsdag 12 maj 2010

Agila Sverige 2010

Igår kväll tittade jag igenom mina anteckningar från Agila Sverige 2010 – vilka dagar! Jag är laddad med nya insikter, idéer och ett par schyssta punchlines att leverera vid tillfälle.

Några av favoriterna bland tiominuterstalen är Joakim Holms det STORA missförståndet, som handlade om att programmering inte alls är samma sak som tillverkning. Programmering är 100 % designarbete. Visst har du hört talas om den där husbyggarmetaforen? Det är snarare ritningen som vi utvecklar när vi arbetar vid datorn, vi bygger inte alls huset. Det gör kompilatorn och webbservern åt oss, eller hur?

Jag har redan följt Daniel Brolunds råd från hans tal Var en guldfisk och undvik kollaps: skriv ut en bild på en guldfisk och rådfråga den varje gång du vill lägga till ytterligare en if-sats i koden, kanske göra en till branch:ning i versionshanteringsträdet eller utveckla kod som kan behövas någon gång i framtiden. Vad skulle guldfisken tycka om det? Just nu tittar två förvånade ögon från en tecknad fisk på mig. Ok, I get the message. Undvik komplexitet, varje extra liten krånglighet är ett steg på vägen mot kollaps.

Marcus Ahnve tycker att vi ska kasta ut experterna och fokusera på helheten och jag tror att han har rätt. Vi har en expertkultur i vår bransch, där det ofta ses som orimligt att en och samma person kan vara duktig på databas OCH html! Det här innebär att många arbetar med samma sak i varje projekt, kan man då verkligen förvänta sig att individer tar helhetsansvar?

På eftermiddagarna var det öppet forum (Open Space) med längre diskussioner om ämnen med lättrörlig anknytning. Bland annat om hur en agil chef kan vara, tips och tricks på hur man arbetar för att bli ett bättre team och varför det ibland är svårt med förändringsarbete.

Vill du följa med nästa år?

onsdag 3 mars 2010

In Swedish, kanske?

Varför är det så ovanligt att programmerare skriver kod på svenska?

Idag skrivs nästan all mjukvara in english, även hos företag som har svenska som huvudspråk. För en tid sedan slog det mig att IT-avdelningen kan vara den enda delen i en organisation som använder sina egna termer för att beskriva produkter och tjänster.

Är det verkligen bra?

Företagets språk - domän - borde kanske också återspeglas fullt ut i utvecklingen av mjukvara? Då blir det domändriven design* på riktigt.

Nackdelar?
Om företaget anställer en person som inte kan svenska lär det ta tid att förstå koden, ingen tvekan om den saken. Det blir en längre startsträcka, men som en bonus lär man sig terminologin som faktiskt används i hela organisationen.

Vanligare är kanske att man lägger ut hela sin systemutveckling utomlands. Då behöver alla verksamhetskrav översättas och i praktiken innebär det att företaget faktiskt byter språk (eller blir flerspråkigt).

Det finns ju inga tekniska hinder för att skriva kod med svenska tecken, men det kanske känns konstigt i början. Som att lära sig ett nytt språk? Ett tips: börja med att skriva enhetstesterna på svenska. Namn och beskrivningar går ju att sno rakt av från kravdokumentet eller postit-lappen på väggen. Hör av dig och berätta om dina erfarenheter!

* Läs mer om domändriven design (Domain Driven Design)

söndag 28 februari 2010

Twitter Design Pattern

På Twitter har man 140 tecken på sig att säga något, sedan tar det stopp. Texten ska helst vara läsbar, så frktngr får man vara sparsam med.

[raderna ovan innehåller 140 tecken]


Det jag speciellt gillar är att man som twittrare måste ta bort all onödig information för att kunna leverera korta meddelanden utan brus. Finns det här designmönstret på flera ställen?

ONE: #business
Ibland pratar man om att berätta hissversionen av ett förslag eller en affärsidé:

Vi levererar det stora företagets IT-kompetens med det lilla företagets själ och den enskilde konsultens engagemang.

[116 tecken]

Här i Sverige pratar vi ju inte med varandra i hissen, men vad sägs om twitterversionen?

TWO: #requirements
I den agila världen används redan Twitter Design Pattern, där man gärna skriver krav i form av User Stories. Många Scrum-team och beställare gillar kortfattade och tydliga beskrivningar av det som ska göras:

Som en redaktör vill jag kunna lägga till och ta bort nyheter på internetbanken, så att bankens kunder kan ta del av aktuell information.
[137 tecken]


TWEET: #programming?

Jag har inte sett några tydliga tecken på Twitter Design Pattern i utveckling av mjukvara ännu. Men tänk om vi bara fick skriva 140 tecken när vi programmerar fram en metod? Enligt designmönstret behöver jag (trots begränsningarna) skriva koden både läsbar och meningsfull, helst utan krångliga frKrtNgr. Vilken utmaning!

Jag tror att resultatet skulle kunna bli lika enkelt och tydligt som på Twitter:
man behöver ju sällan läsa tidigare tweets för att hänga med. Meddelanden är isolerade och externa beroenden tar man med som länkar, taggar och re:tweets (Dependency Injection, Interface och arv?).

Vilka fler områden finns det som skulle kunna följa Twitter Design Pattern, har du några exempel?

http://twitter.com/davidvujic