söndag 1 april 2012

Mer press gör oss bättre!

Ofta uppfattar vi orden stress och press som något negativt. Jag tycker inte att det är det. Snarare tvärtom. Utan yttre press ifrån kunder, uppdragsgivaren, användare och övriga intressenter till våra IT-system så levererar vi sämre värde. Skulle Sveriges bästa systemutvecklare få fria händer i 3 månader utan någon yttre press, så skulle det bli ett sämre slutresultat än om de hade pressats framåt av en drivande produktägare. Jag är helt övertygad!


Agila metoder och press
Inom agila metoder och scrum i synnerhet så förespråkas ofta att man skall hålla ett "lagom" tempo, inte driva på för hårt utan satsa på kvalitet (i kod och test) hellre än fler funktioner (värden) i systemen. I grund och botten är detta en sund filosofi och bra värderingar. Men jag undrar om det i långa loppet inte leder oss in i en fälla. När grundtesen är att det kommer att ta längre tid att skapa system med kvalitet, så luras vi nog också att använda onödigt krånglig och ny teknik, alltför avancerad arkitektur och omfattande tester.

Lean, mindre "Waste"
Ibland kan en tydlig yttre press vara en viktig faktor för att hålla både verksamhet och utvecklare på spåret. Det kan hjälpa verksamheten att prioritera: vad är det egentligen som är viktigt? Vad händer om vi inte får funktion X? Mindre nödvändiga funktioner som kanske inte skulle ha använts så mycket lyfts ut ur projektet, vi producerar mindre "waste". Men det bidrar också till att sätta systemet i drift efter varje sprint. Nåt som man ska göra, men alltför ofta så går det 2-3sprintar innan det faktiskt görs.

Keep it simple
Press hjälper inte bara verksamheten, det hjälper systemutvecklarna också. Även om de inte gärna erkänner det. Yttre press tvingar utvecklarna att omvärdera teknik och arkitekturbeslut, inte tänka lite mycket på alla framtida eventualiteter som *skulle kunna ske* utan fokusera på vad systemet ska göra idag. I bästa fall blir systemet enklare, mer effektivt och mer anpassat till den faktiskt uppgiften.

Myntets baksida
Tyvärr tror jag inte att "mer press" är en universell princip som funkar i alla lägen. Riktigt så enkelt är det nog inte. Men när både verksamhet och utveckling har jobbat med varandra en tid, samarbetet fungerat bra och båda parter har förtroende för varandra, då är det läge att lägga på lite press! Men tänk på att det bör finnas erfarenhet på både sidor. Att sätta extra press på personer som är nybörjare i sin roll kan lätt leda till att fel krav blir realiserade, utvecklarna producerar "spaghettikod" och då står där med en produkt som är nästintill omöjlig att förvalta.