d60 SCRUM/Agil Udvikling som projektmetode ved udviklingen af forretningssoftware ERFA, IT-Projektleder, Teknologisk Institut d. 9. juni 2011
Agenda Projektet? d60 og Niels Larsen Hvad er Agil? Kravspecifikationen?! Hvad er SCRUM? d60 s projektmetode Business Intelligence projekter Wrap Up og spørgsmål
Den perfekte projektmetode? Et projekt er en midlertidig organisation, der etableres for at levere en eller flere konkrete værdiskabelser i organisationen At styre et projekt er komplekst fordi det består af: Forandring Midlertidig Tværfunktionel Unik Usikkerhed Budget og deadlines En række features, moduler, funktioner etc., der skal udvikles En gruppe mennesker der skal bruge produktet bagefter En gruppe af mennesker, der skal udvikle dem.
Den perfekte projektmetode? Om budget/deadlines overskrides afhænger af: hvor mange timer man bruger på at lave features antallet af features der er nødvendig for at opfylde Business Casen
d60 a/s? Hvad gør vi for vores kunder: Udvikler software der giver den enkelte forretning en konkurrencefordel i dens marked. Udvikler rapporteringsløsninger der giver den enkelte forretning en dyb indsigt i forretningens faktiske udvikling
d60 a/s?
Niels Larsen? 60 % projektleder, 40 % Business Intelligence konsulent Cand.it, Informationsvidenskab, 2009, Aarhus Universitet Primære kunder: ebay Classified Northern Europe (dba.dk, bilbasen.dk, bilinfo.dk) Danske Commodities Bestyrelsesmedlem i STARTit.dk Et iværksætter netværk Twitter: @nielslarsen #iterfa
Erfaringer med SCRUM/Agile Udvikling?
Erfaringer med SCRUM/Agile Udvikling? Hvad er dine bedste erfaringer med agil softwareudvikling? @nielslarsen Det er at køre sprint med ca. 3 ugers interval hvor kunden efter hvert sprint får en præsentation af det der er blevet lavet. (14 minutes ago) @AutoSnak Tak for tilbagemelding - Er det med til at forbedre kvaliteten af "produkterne"? (12 minuts ago) @nielslarsen Ja uden tvivlt, især får kunden en bedre føling for hvad tiden bliver brugt på om man kan hurtigere i forløbet finde eventuelle misforståelser i kravspecifikationen. (11 minuts ago) @AutoSnak det er i god tråd med det agile paradigme. Må jeg spørge om hvad det dårligste så er? (8 minuts ago) @nielslarsen Der kommer mere overhead til forberedelse af sprintreviews, men det er timer godt givet ud for både kunden og konsulenten ;) (7 minuts ago) Takker @AutoSnak for hans holdning til hvad der er godt ved agil udvikling Kilde, Twitter, d. 9. maj 2011 (@nielslarsen)
Hvad er Agil? Fra Agility er en sport for alle hunde. I sin ideelle udførelse kræver sporten harmoni og fuldstændig forståelse mellem hund og fører. Det er derfor nødvendigt med en ballast af lydighed og træning, før man begynder at deltage i denne sportsgren. Til agil (fr. agile, af lat. agilis, af agere gøre, handle), behændig; smidig.
Det Agile Manifest We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. (Kilde: agilemanifesto.org)
Lav nu bare en kravspecifikation! Hvis jeg havde spurgt mine kunder hvad de ønskede sig, havde de sagt: En hurtigere hest! (Citat: Henry Ford)
Lav nu bare en kravspecifikation! Vi begriber med vore begreber. (Citat: Steen Hildebrandt)
Hvad er SCRUM? Scrum is an iterative, incremental framework for projects and product or application development. It structures development in cycles of work called Sprints. Development involves learning, innovation, and surprises. Scrum emphasizes taking a short step of development, inspecting both the resulting product and the efficacy of current practices, and then adapting the product goals and process practices. Repeat forever.
Hvad er SCRUM? Primære roller Development team Product Owner Responsible for maximizing return on investment (ROI) by identifying product features, translating these into a prioritized feature list, deciding which should be at the top of the list for the next Sprint, and continually re-prioritizing and refining the list. Builds the product that the customer is going to use. The team in Scrum is cross-functional it includes all the expertise necessary to deliver the potentially shippable product each Sprint and it is self-organizing, with a very high degree of autonomy and accountability. SCRUM Master Does whatever is in their power to help the team be successful. The ScrumMaster serves the team, protects them from outside interference, and educates and guides the Product Owner and the team in the skillful use of Scrum.
Hvad er SCRUM? Hele processen
Hvad er SCRUM? - Backlog
Hvad er SCRUM? Daily SCRUM A short (15 minutes or less) meeting that happens every workday at an appointed time. Everyone on the Team attends. It is the team s opportunity to report to each other on progress and obstacles. In the Daily Scrum, one by one, each member of the team reports three (and only three) things to the other members of the team: 1. What they were able to get done since the last meeting 2. What they are planning to finish by the next meeting 3. Any blocks or impediments that are in their way.
Hvad er SCRUM? Burndown charts Estimering af opgaver Re-estimering af hvor meget der er tilbage af opgaven Graften viser hver dag et nyt estimat over hvor mange timer (målt i udviklingstimer) der er tilbage inden at teamets opgaver er færdig.
Hvad er SCRUM? Sprint Review Attending the meeting: Product Owner, Team members, ScrumMaster, customers, stakeholders, experts, executives, and anyone else interested. Not a demo but a presentation and trial of the Shipable Product developed.
d60 a/s projektmetode Hvordan er så vores projektform? Forskellig fra kunde til kunde Forskellig fra projekt til projekt
d60 projektmetode - roller Sponsor Overordnet strategi og vision for projektet Sikre tilstrækkelig ressourcer (Budget, kompetencer etc.) Endelig ansvar for godkendelse af projektets succes Chairman & Project Manager Opsætte Milestoneplan inden for projekt scope (action plan) Kravspecifikation Koordinering af aktiviteter Repræsentant for projektet Sikre klar og god kommunikation til stakeholders
d60 projektmetode - roller Ambassadør Bindeled mellem forretningen og Chairman omkring forretningens krav og ønsker Sikre løbende kommunikation til forretningen om projektets fremdrift Formidling af specialistviden til Chairman Test software lever op til forretningskrav Development Team Omsætte behov, ønsker og krav til struktureret og effektivt software, der giver den ønskede forretningsværdi Sparring i relation til forbedring af processer. Alt behøver ikke at være som det er i dag.
d60 projektmetode - roller Tech Team lead Har i samarbejde med Ambassadøren ansvar for sprint planlægning Ved hvilke udviklere der er bedst til hvilke områder First edge udvikler der laver første grovestimering Business/SCRUM Tech Lead Tæt samarbejde med den interne projektleder Afdækker fremtidige forretningskrav analysere forretningen for at se om det er muligt at komme med optimeringsforslag Ansvar for at projektmetode og samarbejde hele tiden bliver evalueret Kommunikation til interessenter
d60 projektmetode - Opstart Møde Teamleder Møde Ambassadør KickOff Backlog/ Kravsspec. Procesbeskrivel se (Med agilitet)
d60 projektmetode I projektet Status/ arbejdsmøde Udvikling Release (Test) Release Status Teamleaders/ Sponsor Processen styres af releases Ambassadør fastlægger hvad der skal være med i næste sprint Nye features/bugs tilføjes hele tiden til backloggen
d60 projektmetode Daglige SCRUM møder SCRUM review Den enkelte udvikler har ansvaret for at viderespecificere samt sætte sig ind i den funktion det enkelte modul skal opfylde Den enkelte udvikler har ansvaret for at tage fat i de folk der har den specialiserede forretningsviden Den enkelte udvikler har ansvar for at holde sig orienteret omkring om denne kan bidrage med viden andre steder i projektet Holde styr på overhead og ikke miste ting i en kravspecifikation
d60 projektmetode Praktisk styring Bugtracking (Gemini, http://www.geminiplatform.com/?countersoft)
d60 projektmetode Registrering
d60 projektmetode T.Rex
d60 projektmetode BI og Udvikling
d60 projektmetode Wrap Up Vi har erkendt at man aldrig kender slutning præcis når man starter Vi giver vore kunder et mere brugbart produkt end de kunne tænke sig frem til i fase 1 Nu hurtigere kunderne kommer i gang med at bruge softwaren/systemet (eller dele heraf) nu flere ideer kommer der på banen nu bedre bliver systemet. Når vi udvikler agilt kræver det commitment fra alle parter Kommunikation og forventningsafstemning er super vigtig God bugtracking og en detaljeret backlog er vigtig for projektets fremdrift At man hele tiden skal optimere/udvikle sin projektmetode
Spørgsmål I indlægget diskuteres den agile udviklingsmetode i teori og praksis i forhold til udviklingen af forretningssoftware. Indlægget vil ligeledes behandle hvordan den agile udviklingsproces kan bruges ved store Business Intelligence projekter. Casen for indlægget er projektforløbet ved udviklingen af en handels- og rapporteringsplatform for en større dansk handelsvirksomhed.?
Tak for jeres tid Mail: nla@d60.dk Tlf.: 29 61 49 95 Twitter: @nielslarsen Linkedin: www.linkedin.com/in/nielslarsen
Litteratur The Agile Manifesto (http://agilemanifesto.org/) The Scrum Primer http://www.rallydev.com/documents/scrumprimer.pdf Diverse billeder og illustrationer fundet ved Google søgninger