Agila terminologier och definitioner

Acceptantestning

Formell testning för att avgöra om ett system uppfyller godkännandekriterierna eller inte och för att göra det möjligt för kunden att avgöra om systemet accepterar eller inte.

Agil mjukvaruutvecklingsmetodik


Agil mjukvaruutveckling lägger stor vikt vid samarbete, lyhördhet för förändringar och minskning av avfall under hela utvecklingscykeln. Agil mjukvaruutveckling fokuserar på att hålla koden enkel, testa ofta och leverera funktionella bitar av applikationen så snart de är redo.

En viktig smidig princip är att leverera (potentiellt) släppbar programvara efter varje iteration.


Eftersläpning

Backlog grooming är processen att lägga till nya användarberättelser i eftersläpningen, prioritera om befintliga berättelser efter behov, skapa uppskattningar och dekonstruera större berättelser till mindre berättelser eller uppgifter. I stället för att sköta eftersläpningen sporadiskt under en iteration, kan laget hålla en eftersläpningssession en gång per iteration.

Breaking the Build

När en utvecklare lägger till ändringar i källkodsförvaret som leder till att en efterföljande byggprocess misslyckas, har utvecklaren 'brutit byggnaden.'


Det borde vara ett teamåtagande att undvika att bryta byggnaden eftersom det kommer att bromsa utvecklingen och kan vara en flaskhals för andra utvecklare. När byggnaden är trasig ska utvecklingsteamet vidta omedelbara åtgärder för att fixa byggnaden.

Byggnaden är trasig om byggprocessen inte kan slutföras av ett antal anledningar inklusive (men inte begränsat till) misslyckande att kompilera, kompilera med oacceptabla varningar eller misslyckandet med ett antal automatiserade tester.

Byggprocess / Bygg pipeline

Byggprocessen eller byggpipelinen är den process där en berättelse går från början till produktion, vanligtvis genom olika steg och kontroller för att säkerställa kvalitet.


Byggpipelinen definierar arbetsflödet för leverans av programvara och vad som händer i varje steg.

Burndown-diagram

Ett diagram som visar det totala antalet återstående uppgiftstimmar per dag. Det visar var laget står när det gäller att slutföra de uppgifter som har begåtts för sprinten. X-axeln representerar dagar i sprinten, medan Y-axeln är återstående ansträngning.

Kyckling


I scrum är kyckling ett slangord som används för någon som är intresserad av ett projekt men inte har något ansvar för att arbeta med en uppgift i den aktiva iterationen. De kan observera lagmöten men kan inte rösta eller prata.

Kontinuerlig integration

Kontinuerlig integration (CI) är en eXtreme Programming (XP) där medlemmar i ett leveranslag ofta integrerar sitt arbete (t.ex. timme eller minst en gång dagligen).

Varje integration verifieras av en automatiserad version, som också utför testning för att upptäcka eventuella integrationsfel snabbt och automatiskt. Huvudmålet för CI är att undvika det som vanligtvis kallas integration eller slå samman helvetet.


Tvärfunktionellt team

Teamet består av medlemmar med alla funktionella färdigheter och specialiteter (ofta kallade multifagliga) som är nödvändiga för att slutföra ett projekt från början till slut.

Kund

Kund definieras normalt som mottagare eller användare av produkten. Kunder kan vara interna eller externa för organisationen. Kunden kan vara en person, en avdelning eller en stor grupp.

Interna kunder kallas ibland 'Business.'

Daglig standup

Ett dagligt lagmöte hölls vanligtvis första på morgonen för att ge teammedlemmarna en statusuppdatering. Mötena är vanligtvis tidsboxade till 5-15 minuter och hålls stående för att påminna folk om att hålla mötet kort och till sak.

Definition av Done (DoD)

Kriterierna för att acceptera arbete som avslutat. Att specificera dessa kriterier är hela teamets ansvar, inklusive verksamheten. Generellt finns det tre nivåer av 'Klar' (även känd som Klar-Klar-Klar):

  • Klar: Utvecklad, körs på utvecklarboxen
  • Klar: Verifierad genom att köra enhetstester, kodgranskning etc.
  • Gjort: Validerat som av hög kvalitet med funktionstester, recensioner etc.

De exakta kriterierna för vad som är “Klar” varierar för att möta de specifika behoven hos olika organisationer och initiativ.

Episk

En mycket stor användarberättelse som så småningom delas upp i mindre berättelser. Epics används ofta som platshållare för att nya idéer och relaterade berättelser ska utvecklas i efterföljande sprints.

Episka berättelser hjälper Agile utvecklingsteam att effektivt hantera och sköta sin produktförsening.

Uppskattning

Processen med att komma överens om en storleksmätning för berättelser eller uppgifter i en produktbacklog. På agila projekt görs uppskattning av teamet som ansvarar för att leverera arbetet, vanligtvis med hjälp av ett planeringsspel eller planeringspoker.

Extrem programmering

En smidig mjukvaruutvecklingsmetodik som är avsedd att förbättra mjukvarukvalitet och lyhördhet för förändrade kundkrav.

XP förespråkar frekventa ”släpp” i korta utvecklingscykler, som är avsedda att förbättra produktiviteten och införa kontrollpunkter där nya kundkrav kan antas.

Andra delar av extrem programmering inkluderar: parprogrammering, omfattande kodrecensioner, enhetstestning, kontinuerlig integration för att nämna några.

Funktion

En sammanhängande affärsfunktion eller attribut för en programvaruprodukt eller ett system. Funktioner innehåller normalt många detaljerade (enhets) krav. En enda funktion implementeras vanligtvis genom många berättelser.

Funktioner kan vara funktionella eller icke-funktionella; de utgör grunden för att organisera berättelser.

Fibonacci-sekvens

En talföljd där nästa tal härleds genom att lägga ihop de två föregående (t.ex. 1, 2, 3, 5, 8, 13, 21, 34 ...). Sekvensen används för att mäta berättelser i Agile uppskattningstekniker som planering av poker.

Hinder

Allt som hindrar en teammedlem från att utföra arbete så effektivt som möjligt är ett hinder. Varje lagmedlem har möjlighet att meddela hinder under det dagliga standup-mötet.

ScrumMasters uppgift är att se till att hinder tas bort så snart som möjligt så att laget kan fortsätta att vara produktivt.

Iteration

En period (från 1 vecka till 2 månader) under vilken Agile-utvecklingsteamet producerar ett steg med färdig programvara. Hela systemet livscykelfaser (krav, design, kod och test) måste slutföras under iterationen och sedan visas för att iterationen ska accepteras som framgångsrik.

I början av iterationen identifierar verksamheten eller produktägaren nästa bit av arbetet som teamet ska slutföra. Utvecklingsteamet uppskattar sedan ansträngningsnivån och förbinder sig att slutföra ett arbetssegment under iterationen.

Kanban

Kanban är ett verktyg som härrör från mager tillverkning och är förknippat med den gren av agila metoder som löst kallas Lean Software Development. Kanban begränsar hur mycket pågående arbete som får ske samtidigt.

Huvudskillnaden mellan Kanban och Scrum är att Scrum begränsar pågående arbete genom sprints och Kanban begränsar pågående arbete genom att begränsa hur mycket arbete som kan ske på en gång (t.ex. N-uppgifter eller N-berättelser).

Lean Software Development

Lean mjukvaruutveckling eller bara Lean fokuserar på att minska avfallet och optimera värdet för mjukvaruproduktion.

Minimum Viable Product (MVP)

Den minsta fungerande produkten som kan byggas och testas och levereras under en given tid som ger värde för användarna.

Parprogrammering

En smidig mjukvaruutvecklingsteknik där två programmerare arbetar tillsammans på en arbetsstation. En skriver in kod medan den andra granskar varje kodrad när den skrivs in. Den person som skriver kallas föraren. och den som granskar koden kallas observatör eller navigatör. De två programmerarna byter ofta roller.

Gris

Någon som är ansvarig för att utföra en uppgift på en aktiv iteration. Det är motsatsen till kyckling. Grisar deltar aktivt i projektet.

Planerar poker

Planeringspoker är en konsensusbaserad teknik för att uppskatta, som oftast används för att uppskatta insats eller relativa uppgifter för programvaruutveckling. Laget använder Fibonacci-serien eller T-shirtstorleken för att uppskatta berättelser under planeringen av pokerspelet.

Produkt

I stort sett hänvisar produkt till en samling funktioner som är integrerade och förpackade i mjukvaruversioner som erbjuder värde för en kund eller en marknad.

Produktägare

Produktägare är en av nyckelrollerna i Scrum. Produktägarens ansvar inkluderar:

  • Etablera, vårda och kommunicera produktvisionen
  • Skapa och leda ett team av utvecklare för att bäst ge kunden värde
  • Övervakning av projektet mot dess ROI-mål och en investeringsvision
  • Att fatta beslut om när man ska skapa en officiell release

Produktbacklog

Produktbacklogg är som en önskelista över funktioner som företag vill leverera på lång sikt. Det är en samling berättelser och uppgifter som teamet kommer att arbeta med någon gång i framtiden.

Produktägaren upprätthåller den här listan över produktstock i enlighet med affärsprioriteringar och behov. Posterna i eftersläpningen ska återspegla företagets färdplan.

Refactoring

Ändra befintlig programvarukod för att förbättra den övergripande designen. Refactoring ändrar normalt inte programvarans observerbara beteende. det förbättrar dess interna struktur.

Släppplan

Släppplanen är ett schema för att släppa programvara i produktion. Typiska släppplaner inkluderar de viktigaste funktionerna som ska levereras, tillsammans med motsvarande släppdatum.

Retrospektiv

Ett möte i tidslådan som hölls i slutet av sprinten där teamet undersöker sina processer för att avgöra vad som lyckades och vad som kan förbättras. Retrospektivet är nyckeln till kontinuerlig förbättring.

Ett positivt resultat för en retrospektiv är att identifiera en eller två högprioriterade åtgärdsposter som teamet vill arbeta med i nästa iteration eller release.

Klunga

Scrum är ett ramverk för att utveckla komplexa programvaruprodukter på ett iterativt och inkrementellt sätt och är det mest erkända Agile-ramverket.

Scrum består av en serie korta iterationer - kallade sprints - var och en slutar med leverans av ett steg med arbetsprogramvara.

Scrum Team

Scrumteamet är en tvärfunktionell och självorganiserande grupp som ansvarar för att leverera programvaran.

Scrumteamet innehåller mångkvalificerade personer som förstår kundernas krav och genomför programvarudesign, kodning och testning. Ytterligare färdigheter (t.ex. UI-design, användbarhet etc.) kan också inkluderas.

Scrumteamet ansvarar för alla arbetsåtaganden och resultat.

ScrumMaster

ScrumMaster är ansvarig för att bibehålla Scrum-processen och teamets övergripande hälsa. ScrumMaster försäkrar att laget är fullt funktionellt och produktivt genom att ta bort alla hinder som kan hindra lagets framsteg. ScrumMaster anordnar också Scrum-ceremonierna.

Spika

En berättelse eller uppgift som syftar till att svara på en fråga eller samla in information snarare än att implementera produktfunktioner, användarberättelser eller krav.

Ibland genereras en användarberättelse som inte kan uppskattas förrän utvecklingsteamet gör något faktiskt arbete för att lösa en teknisk fråga eller ett designproblem. Lösningen är att skapa en ”spik”, som är en berättelse vars syfte är att ge svaret eller lösningen.

Sprinta

Vid produktutveckling är en sprint en bestämd tidsperiod under vilken specifikt arbete måste slutföras och göras klart för granskning. En typisk sprintlängd är vanligtvis 2 veckor och normalt inte längre än 4 veckor.

Sprint Backlog

En lista med funktioner, användarberättelser eller uppgifter som hämtas från produktens eftersläpning för övervägande för slutförande under den kommande sprinten. Produktbacklogsfunktioner och användarberättelser är uppdelade i uppgifter för att bilda sprintbackloggen under sprintplaneringsmötet.

Story Grooming

I berättelser för berättelser om detaljer berättas detaljerna i användarberättelserna. Godtagningskriterier skrivs och utarbetas. Berättelser uppskattas också i detta skede.

Syftet med denna session är att se till att alla som är involverade i att utveckla och testa berättelserna delar en gemensam förståelse för berättelsernas sammanhang innan berättelserna börjar utvecklas.

Story-grooming-sessioner hålls vanligtvis i mitten av sprinten för följande sprint så att laget är medveten om arbetsbelastningen för nästa sprint.

Deltagare är scrumteamet, scrummastern och produktägaren.

Sprintplanering

Sprintplaneringssessioner hålls precis innan en ny sprint startar. I den här sessionen identifierar teamet de uppgifter som behöver utföras och bestämmer hur många berättelsespoäng de kan begå för den kommande sprinten.

Innan sprintplaneringssessioner borde berättelserna ha utarbetats och uppskattats under Story Grooming-sessionerna, så att ingen tid slösas bort under sprintplanering.

Deltagarna är scrummästare och scrumteamet.

Användarberättelse

En användarberättelse (aka story) kan ses som ett krav, en funktion som har något affärsvärde.

Berättelser beskriver det arbete som måste slutföras för att leverera en funktion för en produkt. Berättelser är den grundläggande enheten för kommunikation, planering och förhandling mellan Scrum-teamet, företagsägare och produktägaren.

Berättelser består av följande element:

  • En beskrivning, vanligtvis i affärsmässiga termer
  • En storlek för grova uppskattningsändamål, generellt uttryckt i berättelsepunkter (som 1, 2, 3, 5)
  • En eller flera acceptanskriterier, som ger en kort beskrivning av hur berättelsen kommer att valideras

Uppgift

Uppgifter är beskrivningar av det faktiska arbete som en individ eller ett par gör för att slutföra en berättelse. De är hanterbara, genomförbara och spårbara enheter. Vanligtvis finns det flera uppgifter per berättelse.

Teknisk skuld

En term myntad av Ward Cunningham att beskriva den skyldighet som en programvaruorganisation åtar sig när den väljer en design- eller konstruktionsmetod som är lämplig på kort sikt men som ökar komplexiteten och är dyrare på lång sikt.

Storlek på t-shirt

En metod för att uppskatta det arbete som behövs för att slutföra en berättelse i T-shirtstorlekar, dvs. Small (S), Medium (M), Large (L) eller X-Large (XL)

Timebox

En tidslåda är en tidsperiod med fast längd som tilldelats för att uppnå något mål. I agil utveckling är iterationer och sprints exempel på tidslådor som begränsar arbetet i processen och stegvis stegvisa framsteg.

Hastighet

Velocity mäter hur mycket arbete ett team kan slutföra i en iteration. Hastighet mäts ofta i berättelser eller berättelser. Hastighet kan också mäta uppgifter i timmar eller motsvarande enhet.

Hastighet används för att mäta hur lång tid det tar för ett visst team att leverera framtida resultat genom extrapolering på grundval av dess tidigare resultat.

Pågående arbete

Allt arbete som inte har slutförts men som redan har medfört en kapitalkostnad för organisationen. Programvara som har utvecklats men inte distribuerats för produktion kan betraktas som ett pågående arbete.