220 likes | 473 Views
Avanceret IT-projektledelse og systemudvikling. Nye, lette og adrætte udviklingsmetoder I. Hvorfor er en (fastlåst) kravspecifikation en forudsætning for traditionelle systemudvikling?. De tidlige idéer bag Agile udvikling. Systemer udvikles bedst i korte værdiskabende iterationer.
E N D
Avanceret IT-projektledelse og systemudvikling Nye, lette og adrætte udviklingsmetoder I Nye, lette og adrætte udviklingsmetoder
Hvorfor er en (fastlåst) kravspecifikation en forudsætning for traditionelle systemudvikling? Nye, lette og adrætte udviklingsmetoder
De tidlige idéer bag Agile udvikling • Systemer udvikles bedst i korte værdiskabende iterationer. • Bruger og systemudvikler skal arbejde hånd i hånd. • Hver iteration skal designes til at indeholde et minimum af krav. • Når der opstår behov for en ændring, skal den designes ind i løsningen frem for tilføjes. • Dokumentationen skal være minimal bortset fra det som koden i sig selv giver. Nye, lette og adrætte udviklingsmetoder
Eksempler på Agile metoder • Lean Development • Adaptive Software Development • A Change-Oriented Life Cycle • Featuredriven Development • eXtreme Programming • Crystal Methodes • Dynamic Systems Development Method Nye, lette og adrætte udviklingsmetoder
Manifesto for Agile Software Development Top level: ”We are uncovering better ways of developing software by doing it and helping others do it.” 2nd level: Through this work we have come to value: Individuals and interactionsover processes and tools Working softwareover comprehensive documentation Customer collaborationover contract negotiation Responding to changeover following a plan. That is, while there is value in the items on the right, we value the items on the left more. Nye, lette og adrætte udviklingsmetoder
Principles behind the Agile Manifesto (3rd level) - I • Our highest priority is to satisfy the customerthrough early and continuous deliveryof valuable software. • Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. • Business people and developers must work together daily throughout the project. • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. Nye, lette og adrætte udviklingsmetoder
Principles Agile Manifesto - II • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. • Working software is the primary measure of progress. • Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. • Continuous attention to technical excellence and good design enhances agility. • Simplicity--the art of maximizing the amount of work not done--is essential. • The best architectures, requirements, and designs emerge from self-organizing teams. • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. Nye, lette og adrætte udviklingsmetoder
Planspektrum ”Get Ready for Agile Methodes, With Care” Barry Boehm, IEEE 2002 Nye, lette og adrætte udviklingsmetoder
CMM <–>Agile metoder • CMM forsøger trinvis at udviske de nedarvede forskelle (individualiteten) mellem individer. • Agile metoder forsøger at kapitalisere forskellene. Nye, lette og adrætte udviklingsmetoder
Agile Der lægges vægt på menneskelige faktorer som medmenneske-lighed, talent, færdigheder og kommunikation. Får sin adræthed fra en antagelse om, at tilstrækkelig viden er indarbejdet i teamet. Plan-dreven Risiko for at træffe beslutninger på ufuldstændigt grundlag imødegås ved at investere i livscyklus arkitektur og planer. Resultaterne kan reviewes af eksterne eksperter Mange forandringer det er dyrt at opdatere planer Sammenligning af metoder (I) Developers ”Get Ready for Agile Methodes, With Care” Barry Boehm, IEEE 2002 Nye, lette og adrætte udviklingsmetoder
Agile Kunderepræsentanterne skal vær committed, vidende, samarbejdsvillige, repræsentative og empowered. Kunderepræsentanternes viden skal være dækkende for hele applikationen Plan-dreven Risikoen for at træffe beslutninger på ufuldstændigt grundlag imødegås ved at dokumentere beslutningsgrundlager og beslutningerne, således at der kan foretages review. Sammenligning af metoder (II) Customers ”Get Ready for Agile Methodes, With Care” Barry Boehm, IEEE 2002 Nye, lette og adrætte udviklingsmetoder
Agile Antager at verden er foranderlig og har derfor indbygget en forventning om ændringer af krav. Krav kan ikke specificeres på forhånd, men udvikler sig over tid. Selv om der naturligvis er potentiale for succes ved villighed og evne til forandring, så er der en risiko for, at det kan give katastrofale konsekvenser at foretage mange ændringer. Plan-dreven Traditionelle metoder lægger vægt på: Fuldstændige krav Konsistente krav Testbare krav Sporbare krav Traditionelle metoder virker bedst, når krav forbliver forholdsvis stabile, med en ændrings radio på under 1% pr. måned. Sammenligning af metoder (III) Requirements ”Get Ready for Agile Methodes, With Care” Barry Boehm, IEEE 2002 Nye, lette og adrætte udviklingsmetoder
Agile Sætter værdien af koden der virker højre end dokumentation, og lægger vægt på enkelthed. Har som princip at maksimere det arbejde, som ikke udføres. Det at arbejde uden arkitektur planlægning kan give større arbejdsbyrde totalt set over hele projektforløbet i forhold til det at indarbejde forventede fremtidige krav i arkitekturen. Nogle Agile metoder eksperimenterer med koncepter, som minder om ”software arkitektur skeletter”. Plan-dreven De traditionelle metoder lægger stor vægt på dokumentation af arkitektur og design. Det giver imidlertid en stor arbejdsbyrde ved mange forandringer. Der er eksempler på, at det traditionelle udviklingsmetoder der tager højde for forventede ændringer i krav kan gennemføre udviklingsprojekter med millioner af linier kode indenfor budget og tid. Sammenligning af metoder (IV) Architecture ”Get Ready for Agile Methodes, With Care” Barry Boehm, IEEE 2002 Nye, lette og adrætte udviklingsmetoder
Agile Agile metoder bygger på en idé om at genopløse kode/design når ændringer skal indarbejdes. Med dygtige udviklere og små systemer, er genopløsning ikke et problem. I praksis viser det sig imidlertid, at hvis man ikke har dygtige udviklere, så vil omk. til genopløsning stige i takt med antallet af krav eller ”historier” stiger. Plan-dreven Sammenligning af metoder (V) Refactoring ”Get Ready for Agile Methodes, With Care” Barry Boehm, IEEE 2002 Nye, lette og adrætte udviklingsmetoder
Agile Agile udvikling bliver vanskelig med mere end 15-20 udviklere Plan-dreven Plan-drevne metoder kan skaleres til meget store projekter. For meget små projekter er der store ”start omkostninger” i forhold til nytteværdien. Sammenligning af metoder (VI)Size ”Get Ready for Agile Methodes, With Care” Barry Boehm, IEEE 2002 Nye, lette og adrætte udviklingsmetoder
Agile ”Our highest priority is to satisfy the customer through early and continuous delivery of valuable software” Plan-dreven At gennemføre projektet indenfor aftalt tid, ressourcer og kvalitet ved hjælp af planlægning og dokumentation. Sammenligning af metoder (VII) Primary Objective ”Get Ready for Agile Methodes, With Care” Barry Boehm, IEEE 2002 Nye, lette og adrætte udviklingsmetoder
Learning From Agile Software Development – Ten Principles Alistair Cockburn (2002) • Different projects need different methodology trade-offs • A little methodology dose a lot of good; after that, weight is costly • Larger teams need more communication elements • Projects dealing with greater potential damage need more validation elements • Formality, process, and documentation are not substitutes for discipline, skill, and understanding • Interactive, face-to-face communication is the cheapest and fastest channel to exchanging information • Increased communication and feed-back reduces the need for intermediate work products • Concurrent and serial development exchange development cost for speed and flexibility • Efficiency is expendable in non-bottleneck activities • Sweet spots speed development Nye, lette og adrætte udviklingsmetoder
Heuristik Individer og interaktion Reagere på forandring Projektplanen afspejler (MFF) Design afspejler (MFF) Statistik (tal) Processer og værktøjer Følger planen Projektplanen afspejler (MFI) Design afspejler (MFI) Uovervindelige forskelle Nye, lette og adrætte udviklingsmetoder
Kørende software Samarbejde med kunden Omfattende dokumentation Kontraktforhand-linger Forskelle der kan overvindes For omkostningsfølsomme projekter er det ikke spørgsmålet om detaljerede planer, der er det afgørende, men om der bliver truffet de rigtige beslutninger med hensyn til MFF og MFI. Nye, lette og adrætte udviklingsmetoder
Opgave 1 Med udgangspunkt i Barry Boehms artikel ”Get Ready for Agile Methods, With Care” besvares følgende: • Hvordan vil I afgøre, hvor meget der skal investeres (tid og kræfter) i udarbejdelsen af projektplaner i det enkelte udviklingsprojekt? • Giv mindst 2 eksempler på systemer/projekter, som efter jeres opfattelse kan karakteriseres som tilhørende henholdsvis Agile metoders og plan-drevne metoders ”hjemmebane”. Nye, lette og adrætte udviklingsmetoder
Opgave 2 • Giv eksempler på hvor I indenfor metoder til projektledelse og systemudvikling genfinder de 15 principper i artiklen ”Fundamental principles of software engineering – a journey.” (Bourque et al. 2002). Tag udgangspunkt i jeres egne erfaringer og den undervisning, som I har haft indenfor IT-projektledelse og systemudvikling Nye, lette og adrætte udviklingsmetoder
Opgave 3 • En legoopgave, som illustrere nogle af de agile principper. Nye, lette og adrætte udviklingsmetoder