
Jag - en RUP-mupp
Min kontakt med Rational Unified Process (RUP) har gått igenom ett antal faser genom åren; från initialt imponerad till bitter och frustrerad, och vidare till pragmatisk. Det vill säga på samma sätt som med många andra tekniker, verktyg och metoder.
Det började för ett antal år sedan med ett storslaget RUP-införande i en organisation, där ingen i teamet var bekant med konceptet utom de speciella metod-gurus som var inkallade för att se till att RUP efterlevdes.
I uppdraget ingick det att producera mängder av dokument, för att passa in med de artefakter som RUP definierade. Att ha dessa artefakter var tydligen nyckeln till att bedriva ett framgångsrikt projekt! Nu är det säkert så att en del av er skadeglatt nickar igenkännande, en del skakar sorgset på huvudet och en del vet inte riktigt vad de andra har för anledning att motionera nackmusklerna överhuvudtaget. Det kommer uppenbara sig. I projektet skapades så pass mycket dokument att vi till slut fick problem med att hinna/orka underhålla dem vid sidan av allt annat som skulle göras. Dokumenten blev därför ofta lagda i malpåse och sällan använda. Mycket av materialet var alltså rent slöseri. ![]()
De resultat som beställarna verkligen behövde drunknade i alla andra saker som producerades, blev försenade och inte riktigt på det vis som de hade tänkt sig. Det är lätt att bli vilseledd från det som trots allt är det viktigaste med att producera IT-stöd, att leverera detta stöd till någon så det kommer till användning.
En annan högst bidragande orsak till problemen var mängder med tekniskt strul. Detta framkom framförallt en bit in i projektet, eftersom vi inte hade doppat tårna i vattnet djupt nog initialt, utan fokuserat på en detaljplan, noggranna use-cases och väl genomtänkta arkitekturskisser. Efter hand, då frustrationen ökade, gav jag mig in i att försöka förstå varför inte RUP, som vi använde den, var en lösning som fungerade i praktiken. I mitt sökande stötte jag på en artikel skriven av Craig Larman (Valtech), Philippe Kruchten och Kurt Bittner (Rational); "How to fail with the Rational Unified Process - seven steps to pain and suffering" Stegen till lidande är som följer:
Jag lärde mig oerhört mycket från projektet, och har sedan dess fortsatt med att gräva i litteratur och prata med kollegor kring hur vi egentligen jobbar i våra projekt. Det jag kommit fram till är att det är oerhört vanligt att begå samma misstag som vi gjorde. Även för dem som oftast arbetar lättrörligt händer det att projektet börjar tänka i vattenfallstermer, speciellt när det börjar bli bråttom att nå ett releasedatum. Kvalitet slängs åt sidan för att kunna snabbt leverera något som kanske är lite skakigt, men ändå går att använda. Det tråkiga är att oftast kommer aldrig kvalitet med på dagordningen igen, på grund av att projektet hamnar i en neråtgående spiral av hets » brist på kvalitet » ineffektivitet/buggar/problem » ännu mer hets och så vidare. Kortsiktiga lösningar leder oftast till problem. Om dessa problem inte åtgärdas så snart som möjligt blir kvalitetsskulden större och större, koden blir onödigt komplex, klumpig och full av buggar, vilket gör det svårt att hitta fel och lägga till ny funktionalitet. Lasten på projektet blir tyngre och tyngre, något ofta inte projektledare kan förstå följderna av - framförallt om de inte själva har utvecklarbakgrund. Det enda som syns i lägesrapporterna är att tidsplanerna inte hålls, av okänd anledning. Symptomen ser ut som att teamet arbetar och arbetar, men hinner inte leverera speciellt mycket. Sjukdomen är ofta en ineffektiv process och en stor kvalitetsskuld i plattformen, men beror oftast också på andra faktorer. Ett exempel kan vara att utvecklarna inte är vana att tänka i termer av kvalitet, eller har en felaktig uppfattning om vad kvalitet innebär. Tyvärr försöker många åtgärda symptomen, på mängder av olika sätt, och inte själva sjukdomen. På kortare sikt är det bättre att anställa bilputtare (2-3 kilometer kanske), men för att komma till resans mål går det mycket snabbare att spendera en dag på verkstaden innan man åker vidare. När jag via Citerus kom i kontakt med Scrum, kändes det som jag hade hittat ett bättre sätt att slutföra resan på. Varför, kan man undra?
Hur har då Scrum att göra med om jag numera är en RUP-mupp eller inte? Jo, jag har lärt mig ett sätt att arbeta enligt RUP som jag själv trivs med. Ursprunget till vad jag hittade finns dels definierat i RUP självt, och dels i en presentation jag snubblade över på nätet Rational rekommenderar nämligen att RUP anpassas till den faktiska situationen, något även mentorerna i mitt tidigare uppdrag arbetade med. Presentationen jag hittade lyfte fram bra exempel på hur tankegångarna kan se ut vid en sådan anpassning, något som lett till att jag nu bättre kan hitta en utgångspunkt för en metod som är anpassad till problemställningen. Jag tar det som fungerar bäst från Agile-metoderna Scrum och XP, blandar sedan i en smula RUP, allt efter smak och behov. Jag håller idéerna från Lean Software Development i bakhuvudet, och försöker eliminera slöseri från processen om det går. Resultatet blir en metod som hänger med i en föränderlig värld, som är lagom lättrörlig och framförallt som fokuserar på det som trots allt är viktigast; att leverera kvalitativ mjukvara till beställaren så snart som möjligt. Så, om ni hängt med så här långt är svaret på frågan "Jag - en RUP-mupp?"... Jajjemen! (När metoden används på ett bra sätt!) Hoppas ni fick ut något av resan från frågan till svaret, det är ju trots allt oftast själva resan som ger mest i slutändan. Läsning för att bli en tvättäkta RUP-mupp
![]()
Ordet PNEHM! bildas av de värdeord Citerus konsulter vill bli förknippade med; prestigelöshet, nyfikenhet, engagemang, helhetssyn och mod. Utropstecknet står för en vilja att agera professionellt i alla lägen.
|
Dragarbrunnsgatan 24 753 20 Uppsala Tel: 018-51 51 13 | Fax: 018-51 51 95 |
Barnhusgatan 16 | 111 23 Stockholm Tel: 08-56 29 53 00 |