fredag den 18. december 2009
Er kravspecifikationen virkelig død?
Dette lyder nok som et rimeligt surt fredagsopstød ovenpå en nat, hvor min datter har holdt sine forældre løbende orienteret omkring nattens eskapader fra sin seng i det tilstødende børneværelse, når de helst gerne bare vil sove. En hård juleperiode er i vente, ikke blot på grund af det årlige panikgaveræs, snestorm og familietamtam hos tante tut, men også fordi at der både er store projekter skal afleveres og store projekter er ved at blive opstartet. Når jeg så læser, at kravspecifikationen er død og borte, til fordel for agile metoder, ja, så har jeg svært ved at holde igen.
Jeg vil gerne forklare mit synspunkt herunder. Det hører sjældenhederne til, at kunden ikke gerne vil kende en smule til økonomien i et projekt inden opstart. Ja, faktisk, har jeg ikke mødt en kunde endnu, der ikke har spurgt “hva’ koster’d?” Jeg tror ikke, at dette er unikt for vores branche, men må være et rimelig generisk og fair krav. Personligt ville jeg nok heller ikke bede en leverandør om bare at gå i gang, og tales ved efter to måneder, når fakturaen kommer dumpende. Kravspecifikationen er yderst vigtig i dette scenario, og her kommer f.eks. SCRUMS product backlog efter min overbevisning desværre til korte.
Jeg havde en snak med en kunde omkring funktionalitet til den kommende hjemmeside. Han havde ikke rigtigt noget fast budget og han havde nogle klare overordnede forventninger til hvad hjemmesiden skal kunne kunne. Et krav gik på at han gerne ville sende et nyhedsbrev til sine kunder pr. e-mail. Et meget basalt krav, som mange hjemmesider understøtter. Men skal nyhedsbrevet også kunne sendes pr. SMS? Skal han kunne vedhæftet en fil? Skal han kunne opdele modtagerne i segmenter, så han kan sende forkellige nyhedsbreve al efter hvilke karakteristika modtageren har? Skal nyhedsbrevet sendes som PLAIN TEXT eller skal det være HTML, så det kan have et visuelt udtryk? Svarene var nej, ja, ja og ja. Denne løsning giver én økonomi, men havde svarene været ja, nej, ja, nej, så havde økonomien været en anden. Desuden giver kravspecifikationen en forventning om hvad nyhedsbrevet kan, _inden_ udviklerne går i gang. Kundens røde lamper vil straks lyse, hvis han havde en klar forventning om, at han skulle kunne vedhæfte et PDF dokument til sit nyhedsbrev, og ikke kan det efter implementeringen. Derfor kan kunden forholde sig til den økonomi han har fået første gang, og skal ikke vente på ubehageligheder, når vi først efterfølgende finder ud af, at han også har et behov for at vedhæfte PDF dokumenter. Samtidigt er der en klar forventning, leverandør og kunde imellem, om hvad kunden får for den estimerede økonomi.
For at jeg kan estimere en økonomi, skal jeg kende alle projektets omstændigheder – ergo skal ubekendte og risici minimeres, for ellers kan jeg komme til at under- eller overestimere og projektet går ikke op. Underestimerer jeg bærer jeg en risiko, hvilket betyder at jeg må gå på kompromis med kvalitet for at holde mig indenfor økonomien. Overestimerer jeg betaler kunden for meget i forhold til hvad han får af værdi. Samtidigt kan jeg skitsere en forkert løsningsmodel, der ikke tilfredsstiler kundens reelle behov. Og det er er værre, end at projektet ikke går op. Dette afhjælpes ved at skrive en fyldestgørende kravspecifikation, hvor hvert eneste krav til hjemmesiden er specificeret entydigt og konkret. Jeg er tilhænger af planlægning og mener ikke at udviklingsmodeller, som QADAD (Quick-and-Dirty-Application-Development) eller CAF (Code-and-Fix) afføder stabile eller særligt kvalitetsorienterede løsninger – giver det ikke lidt sig selv? Desværre kan SCRUM hurtigt blive QADAD eller CAF, da analysefasen begrænser sig til en product backlog, der udetaljeret skitserer løsningens overordnende design. Misforstå mig ikke, dette har også sine helt klare fordele i visse situationer, som jeg nok skal komme ind på i et fremtidigt blogindlæg. Men man har tendens til at kaste sig over tastaturet og kode derudaf. Det kan også være fint nok i nogle situationer, men hvis ikke kunden føler sig særlig hjemme i SCRUM eller har erfaring med systemudvikling generelt, så er det traditionelle paradigme og kravspecifikation at foretrække.
Kravspecifikationen giver altså en mere detaljeret estimering af projektets samlede omkostninger (Total Cost of Acquisition). Den giver også en forventning om hvad projektet ender ud med. Og dette gør at kunden nemmere kan vurdere projektet i forhold til dets Business Case. Giver projektet derfor overhovedet mening at gennemføre? Ved de agile metoder ved man først dette, når man står på den anden side, da man først kender projektets leverancer, når det er gennemført. Det er ikke særligt forretningsorienteret, vel? Agilitet er godt i projekter, hvor vi ikke har klare forventninger til funktionalitet og ikke kender vores behov. Det er lige nøjagtigt her, at de agile metoder kommer til sin rette.
Når ressourcerne bruges til at skrive en kravspecifikation, så sikrer dette også en mere lean proces. Flaskehalse elimineres, da afklaringer holdes på et minimum. Jeg lærte i skolen, at kravspecifikationen bør sikre at alle afklaringer omkring funktionalitet er gjort på forhånd, således at udviklerne har en madopskrift de kan følge – punkt for punkt. Dette holder nok i teorien, men i praksis er det ikke muligt. Kravspecifikationen vil altid have mangler – jeg tror ikke på, at du kan få alt med. Onde tunger vil her sige, at SCRUM netop sikrer, at kunden har mulighed for at tage stilling til krav løbende. Ja, ja, men det kan man jo også ved at udvikle traditionelt! Ved kravspecifikationen er der blot markant færre ting der skal afklares med kunden løbende, hvilket gør selve konstruktionsfasen væsentligt kortere og mere strømlinet.
Desuden sikrer kravspecifikationen et testgrundlag, da man binært kan angive “1” ved krav der er opfyldt, og “0” ved krav, der ikke er opfyldt. Ergo kan kvaliteten i højere grad sikres. Langt størstedelen af de webprojekter der igangsættes i Danmark er af så kort varighed (hvilket er under 6 måneder), at kundens situation eller krav næppe når at ændre sig betydeligt. Ofte opdeles projekterne alligevel i iterationer med selvstændige kravspecifikationer.
Så hvad kan vi lære af dette? Kravspecifikationen er ikke død! Kravspecifikationen lever i bedste velgående og aflives næppe af de agile metoder. Kravspecifikationen er et vigtigt element i ethvert forretningsorienteret webprojekt. Den synliggør økonomi, projektleverancer og skaber fælles forventninger mellem kunde og leverandør. Kravspecifikationen er til nytte både for kunden, projektlederen og udvikleren.
onsdag den 4. november 2009
Aabenraa Kommune får ny hjemmeside
Læs mere på http://www.skybrud.dk/blog/post/Aabenraa-Kommune-far-ny-hjemmeside.aspx
mandag den 2. november 2009
Sådan måler man om en offentlig hjemmeside har succes
Læs det fulde indlæg på Skybrud.dk/blog
Indlægget er skrevet efter inspiration fra Avanish Kaushik, Google's Analytics evangalist, som har skrevet et indlæg om hvordan offentlige myndigheder kan lave webanalyse.
lørdag den 3. oktober 2009
PRINCE2 giver bedre struktur, 2. del
De første par måneders intens projektarbejde funderet i PRINCE2 projektledelsesmetoden er nu ved at være overstået, og det er tid til en status.
Jeg har forsøgt at gøre mere og mere brug af PRINCE2's tilgang til projektledelse i det daglige arbejde med vores design- og udviklingsprojekter. Hermed har vores implementering af processerne været ret evolutionær, men det har givet os bedre mulighed for at lære metoden i et tempo vi kan følge med i.
Den nye projektledelsesmetode har betydet forandring for hele Skybrud.dk - ikke blot i projektledelsesafdelingen, men også blandt digitale designere, udviklere og hos ledelsen. Alle er med på den og kan efterhånden se meningen med tilgangen og værktøjerne. Det er rigtigt rart. Det virker til at alle kan drage nytte af de nye tiltag. Den menneskelige faktor er som oftest den største udfordring i enhver forandringsproces, men i dette tilfælde må Skybrud.dk helt klart være en undtagelse.
Den produktorientation, som PRINCE2 anbefaler, betyder at vi er begyndt at komme hele vejen rundt om det som vi sidder og laver. Ved at nedbryde projektet i produkter, altså det som vi leverer, i stedet for de aktiviter der er forbundet med at lave en hjemmeside, har vi lært, at kortlægge henholdsvis de mange sidelayouts og funktioner, som hjemmesiden kommer til at bestå af. PRINCE2 giver ikke nogle konkrete retningslinjer for nivauet, så vi har måtte finde vores eget.
At gå fra aktivitetsbaseret projektledelse, som vi hidtil har gjort, til produktorienteret, giver os for det første et bedre fundament for at kunne rådgive vores kunder, da vi kender projekterne bedre fra start. For det andet giver det os et bedre fundament for estimering af projektets samlede økonomi. Hermed får kunden en mere nøjagtig økonomi, hvilket gør at vi ikke behøver at tage højde en masse ubekendte, som trækker prisen op. Konkret betyder dette, at vi kan sætte økonomi på et lavere abstraktionsniveau. Vi kan nu bedre forholde os til hvad helt specifikke funktioner koster, i stedet for at angive en overordnet økonomi for designydelser og programmeringsydelser. Kravspecifikationen er også blevet vendt på hovedet, da vi nu kravspecificerer i slutprodukter i stedet for i moduler eller rene funktioner. Forskellen er blot, at vi ikke længere angiver funktionalitet selvstændigt, men distribuerer dem ud på de mange sidelayouts. For det tredje betyder dette, at vi internt får en mere strømlinet arbejdesproces. Når vi kravspecificerer i produkter fremfor moduler, giver dette vores digitale designere og udviklere en tjekliste over funktionalitet på de enkelte sidelayouts. Sat på spidsen kan de nu fra start bedre vide, hvad forsiden skal indeholde, undersiderne, webshoppens produktvisningssider, webshoppens betalingsprocedure og billedgalleriets visningsmuligheder. Dette gør at projektlederen ikke skal inddrages i det daglige arbejde på samme høje niveau, som før, men blot kan reduceres til et ugentligt statusmøde og løbende afklaringer. For kunden betyder dette bedre kvalitet og en opfyldelse af de reelle behov. Desuden giver det en reduktion i fakturerede projektledelsestimer og dermed en besparelse.
Jeg har også taget hul på PRINCE2's tilgang til projektplanen. PRINCE2 tager udgangspunkt i projektets Business Case, altså formålet med projektet og det som organisationen gerne vil opnå med projektet. Det kan være omkostningsminimeringer, salgsoptimering, branding mv. Projektplanen tager sit afsæt i denne og dokumenterer hvordan formålet med projektet søges opnået. Produkterne nedbrydes i en produktnedbrydningsstruktur, der er et hierarki over produkterne, samt en produkt flow struktur, der angiver i hvilken rækkefølge produkterne leveres. Vi har valgt at nedbryde en hjemmeside i sidelayouts ud fra kravspecifikationen. Dette giver ikke blot et bedre afsæt for at lave tidsplanen, men giver også en forventning om hvornår kunden kan igangsætte sine egne aktiviteter. Jeg har den fornøjelse at arbejde på vores store kommunale udviklingsprojekter. Det er tunge projekter, som kræver et meget forkromet overblik og en skarp planlægning og styring. Ofte skal kommunens portalledere og -webmastere lave intern undervisning af indholdsredaktører og migrere indhold fra den gamle portal til den nye, mens vi stadigvæk udvikler på portalen. Dette kræver sin koordineringsindsats! Her kommer produkt flow strukturen til sin rette, da vi bedre kan integrere vores tidsplan med kundens. Projektplanen indeholder desuden forventninger til budget og tidsramme, samt de aftalte tolerancer i begge.
Vi er kommet et godt stykke videre med implementeringen af PRINCE2. Hidtil har det kun betydet klare fremskridt i vores interne processer.
mandag den 21. september 2009
Odense Kommune får ny jobportal
Projektet var atypisk i forhold til vores normale proces. Vi var blot en mindre del af det samlede projekt, hvor vi sædvanligvis ofte står på toppen af pyramiden. Derfor har der været mange andre aktører i spil end os. Dette har både gjort processen mere langhåret, men har omvendt også givet os mere af det på brystet. Jobportalen blev implementeret af kommunens sædvanlige implementeringspartner, Oxygen Software, mens portalplatformen bygger på en kombination af content management systemet Sitecore og Stepstone, der har leveret rekrutteringsmotoren. Dette projekt har bevidnet, at på trods af at man til dagligt konkurrerer om samme kundegrundlag, så kan processen godt fungerer. Samarbejdet mellem os og Oxygen Software har været stærkt, ikke blot for vores egen læring, men i højere grad for Odense Kommune. Dette har helt klart været gavnligt for projektet, og skabt et helstøbt slutprodukt! Tak for hidtil godt samarbejde!
Den nye jobportal omfatter foruden rekrutteringsmodulet også omfattende information omkring Odense Kommune som arbejdsplads. I den forbindelse har vi sammen med Aakjærs skabt en ambassadørvideovisning, hvor jobansøgerne og brugerne generelt kan stille spørgsmål til udvalgte medarbejdere fra kommunen.
Du kan besøge Odense Kommunes nye jobportal på odense.dk/job.
torsdag den 10. september 2009
Strategi for den indholdsdrevne hjemmeside
Så hvad nu? Hvordan skal strategien lyde for den indholdsdrevne hjemmeside? Umiddelbart er der tre vigtige aspekter for strategien – 1) vækst i trafik, 2) loyalitet og 3) engagement.
Vækst i trafik tager udgangspunkt i at tiltrække brugere til hjemmesiden - altså opfordre brugerne til at besøge hjemmesiden. Men det er ikke nok at tiltrække dem, hjemmesidens indhold skal tilføre værdi i et sådant omfang, at brugerne returnerer af sig selv igen. Dette skaber loyaliteten. Ultimativ leder dette til engagement, hvorved brugerne konsumerer og bruger hjemmesidens indhold til at løfte en given opgave. For en kommuneportal kan det være at en borger bruger specifik information fra en given underside til at holde sig orienteret omkring lokalplaner. For den private virksomhed kan det være en forhandler, som holder sig orienteret omkring priser, for at kunne lægge sin avance og egne priser. Denne sekventielle tilgang, hvor man først søger at tiltrække brugerne, dernæst skabe loyalitet, så de kommer igen, for til sidst at engagere dem, er den traditionelle. Jeg anbefaler dog at vende rækkefølgen på hovedet!
Det er stadigvæk vigtigt, at skabe vækst i trafikken så, så mange brugere som muligt får adgang til indholdet. Det er egentligt ikke unikt for den indholdsdrevne hjemmeside, og er jo ligeså vigtigt for den transaktionsdrevne. Det er også vigtigt, at få dem til at returnere og engagere sig. MEN, når først brugerne har besøgt hjemmesiden er de mærket for livet - det er førstehåndsindtrykket der afgør om folk vender tilbage. Derfor er det vigtigt først at skabe en hjemmeside, som engagerer brugerne til at bruge indholdet. Dette skaber naturligt en loyalitet, der gør at folk returnerer til hjemmesiden, for at bruge indholdet igen. Når først hjemmesiden har det niveau, hvor brugerne er engagerede og loyale, så skal den brede skare af brugere tiltrækkes til hjemmesiden. Ellers er det lidt som at hælde vand i en si – den bliver aldrig fyldt op, da vandet løber gennem hullerne. Dine brugere kommer ind på hjemmesiden, men de bliver skuffede og finder måske ikke det de leder efter. Gør de ikke dette, engageres de ikke, og bliver slet ikke loyale.
Denne strategi kræver dog tålmodighed, for antallet af brugere vil være lavt qua den manglende vækst i antallet af nye brugere. Men tålmodigheden belønner sig i det lange løb. Jeg har desværre tit oplevet webmastere og ledere, både i det offentlige og private, der offentliggører nye hjemmesider uden at have skabt indhold, der engagerer. Dette gør at besøgstallet bliver en nedadgående kurve og hjemmesiden ultimativt dør. Hårdt, men sandt.
Derfor, fokusér på at skabe en hjemmeside, hvis indhold engagerer brugerne. Herefter opbygges loyaliteten helt af sig selv. Formår du at skabe dette, skal du tiltrække den bredde masse af brugere.
fredag den 24. juli 2009
PRINCE2 giver bedre struktur
PRINCE2 er produktorienteret. Det enkelte projekt nedbrydes i en række produkter al efter ønsket detaljeringsniveau. Indtil nu har vi arbejdet aktivitetsorienteret, hvor estimeringen af projekterne, fastlæggelse af projektplan og den løbende projektledelse har været baseret på de aktiviteter som projektet indebærer - altså kort fortalt de design, programmerings og projektledelsesopgaver, som vores designere, udviklere og projektlederer udfører. Ved at vælge produktperspektivet giver dette meget bedre klarhed over hvad projektet skal ende ud med - et sædvanligt projekt ender jo ikke ud med et design, en programmeringsindsats og et projektledelsesforløb, men et corporate website, kampagnesite, kommuneportal, intranet eller lignende. PRINCE2 giver os derfor bedre muligheder for at styre projektet og afrapportere til kunden.
PRINCE2 tager desuden udgangspunkt i projektets Business Case. Dette betyder at for at PRINCE2 skal give effektiv projektledelse og i sidste ende sikre et bedre produkt, så skal vi afklare virksomhedens problemstilling og stille os kritisk for den - hver gang! Skal vi give den bedste rådgivning, skal vi også kende projektets karakter. Det er projektets Business Case, der skal være bannerføre for projektets fremdrift.
Metoden har en meget klart projektprocs, der er fordelt på fem processer: Opstart af projekt, projektetabling, styring af faser, afslutning af faser og afslutning af projekt. Herudover giver PRINCE2 en klar top-down projektorganisation. Dette giver en mere synlig organisation.
Afrapportering er med PRINCE2 også en hel ny verden - i det hele taget projektdokumentation. PRINCE2 omfatter et enormt dokumentationsapparat. Dette kan naturligvis skaleres, og dette gør vi da også fra projekt til projekt. Men som jeg ser formålet med projektdokumentationen, så er dette grundet i erfaringsopsamling og i at gøre tingene på samme måde på tværs af projekterne. Det gør det nemmere at se på tværs af projekter og det gør det nemmere at sammenligne deres resultater - dette gør også estimeringen nemmere, da vi generelt tyer meget til analogimetoden, når vi foretager vores indledende estimeringer.
PRINCE2 skal give os et mere strukturet arbejde med projektledelse og sikre bedre produktkvalitet.