Agil Utveckling Flashcards
Vad är agil utveckling?
Agil utveckling är en metodik för att hantera och planera utveckling av projekt, främst inom mjukvaruutveckling. Målet är att leverera fungerande mjukvara så snabbt som möjligt.
Den bygger på en iterativ och inkrementell tillvägagångssätt
Agil utveckling fokuserar på samarbete mellan utvecklare, kunden och andra intressenter, flexibilitet och ändringshantering. Vanliga ramverk för agil utveckling inkluderar Scrum och Kanban.
Mashlows behovstrappa.
Man kan använda sig av marshlows trappa för att göra produkten så användarvänlig som möjligt.
Självförverkligande - Blir allt du kan vara
Självkänsla - Makt, uppskattning
Gemenskap - Kärlek, vänskap
Trygghet - Säkerhet, stabilitet
Fysiologi - Mat, vatten, luft,sex
Förklara the lean startup
Build - Bygg en mvp som innehåller dem mest grundläggande funtionerna. Den ska vara enkel och lätt att testa.
Measure - Testa produkten på kunder och samla in feedback.
Learn - Använd feedbacken från kunderna för att justera och förbättre produkten.
The Lean Startup är en metodik för att skapa och utveckla företag eller produkter. Den bygger på principen om att snabbt skapa och leverera minimalt fungerande produkter (MVP) för att få feedback från kunderna och därefter iterativt förbättra produkten baserat på denna feedback.
CONTINUOUS INTEGRATION - CI ?
CI är att integrera och testa kodändringar i en gemensam kodbas så fort som möjligt efter att det har gjorts ändringar. “fail early” är bra så man ser vilka problem som man måste åtgärda så tidigt som möjligt.
CONTINUOUS DELIVERY - CD
Handlar om att effektivisera och säkerställa en snabb och smidig leverans av mjukvara genom automatiserade processer för testning och deployment.
Genom att använda CD får utvecklare snabb feedback på kodändringar, vilket minskar risken för fel och resulterar i en högre kvalitet på den färdiga programvaran som levereras till kunderna.
Vad är flow?
I en agil process strävar man efter att minimera avbrotten i arbetet och säkerställa en jämn ström av arbete, från idé till leverans.
- Teamet ska ha hög produktivitet och vara effektiva.
- Lättare att hålla reda på vart man är i processen.
- Anväder sig ofta av visualiseringsvertygen kanban/scrum
- Detta använder man för att undvika utbrändhet och överbelastning.
vad är DevOps?
DevOps fokuserar på att automatisera och integrera processerna mellan utvecklare och driftspersonal för att snabba upp leveranserna och förbättra kvaliteten.
DevOps handlar till stor dela att riva muren mellan dem olika teamen.
DevOps använder ofta automatiseringstekniker som Continuous Integration (CI) och Continuous Deployment (CD) för att effektivisera processerna
Vad är TDD?
Tanken bakom TDD är att utvecklare ska först tänka igenom vad som behöver implementeras och sedan skriva tester som bekräftar att det fungerar som det ska.
Red-Green-Refactor
Fördelar med TDD:
Bättre kodkvalitet: Genom att tänka igenom vad som behöver testas innan koden skrivs, säkerställer utvecklare att koden är mer robust och mindre sårbar för buggar.
Enklare underhåll: Genom att ha en omfattande testsuite, är det enklare för utvecklare att ändra eller förändra koden utan oro för att bryta befintlig funktionalitet.
Snabbare leveranser: Genom att använda TDD, är det lättare för utvecklare att identifiera buggar tidigt i processen, vilket innebär att de kan fixas snabbare och utan att drabba produktionsmiljön.
Impediments
Inom agil utveckling syftar begreppet “impediments” till hinder eller problem som förhindrar eller begränsar teamets förmåga att utveckla och leverera en produkt eller en tjänst på ett effektivt och kvalitativt sätt
User stories?
är en metod som används för att beskriva krav och önskemål från användare eller kunder på ett enkelt och lättförståeligt sätt.
User stories är viktiga inom agil utveckling eftersom de ger en enkel och lättförståelig översikt över vad som behöver göras och varför.
Exempel: “Som en kund vill jag kunna söka efter produkter på webbplatsen för att snabbt hitta det jag letar efter.”
Definition of done
är att säkerställa att en produkt eller en funktion är klar för leverans och att den uppfyller de krav och kvalitetsstandarder som är nödvändiga för att den ska kunna användas eller tas i drift.
definierar vanligtvis ett antal kriterier som måste uppfyllas för att en uppgift eller en user story ska anses vara klar.
Impact maps
why? who? how? What?
Impact mapping är ett sätt att gemensamt arbeta fram vilka mål vi vill uppfylla och hur vägen från målet till resultatet ser ut och vad som är viktigt.
Mål: Det övergripande målet för produkten eller projektet.
Stakeholders: Personer eller grupper som kommer att påverkas av målet.
Premisser: förutsättningar som ligger till grund för målet.
Möjliga inverkan: Hur målet kommer att påverka stakeholdrarna och verksamheten som helhet.
tvärfunktionellt
Inom agil utveckling så betyder “tvärfunktionellt” att en arbetsgrupp eller ett team är sammansatt av personer med olika kompetenser och färdigheter så att man kan komplettera varandra.
Självorganisering
handlar om att ge teamet större befogenheter och autonomi för att fatta beslut och planera sitt eget arbete. Genom självorganisering uppmuntras teammedlemmarna att ta mer ansvar för sitt arbete och att arbeta tillsammans för att uppnå gemensamma mål.
Inkrementell utveckling
innebär att man utvecklar produkten stegvis genom att lägga till nya funktioner och förbättringar efterhand. Detta görs genom att man delar upp utvecklingsprocessen i mindre delar, så kallade iterationer eller sprintar,
Disruptiv utveckling
Istället för att lägga till nya funktioner gradvis, syftar en disruptiv utveckling på att skapa en helt ny produkt eller tjänst som ersätter den befintliga.
Manifest för agil utveckling?
-Individer och interaktioner > framför processer och verktyg
-Fungerande programvara > framför omfattande dokumentation
-Kundsamarbete framför > kontraktsförhandling
-Anpassning till förändring > framför att följa en plan
Nämn några skillnader mellan agil/vattenfall?
Planering: Vattenfallsmodellen följer en linjär planeringsprocess, där varje steg i utvecklingscykeln planeras och genomförs i en specifik ordning, och det är sällan möjligt att återvända till en tidigare fas. Man har även mycket mer tydliga roller/hiearki.
Agile däremot använder iterativ planering och kan snabbt anpassas och justeras baserat på feedback och förändrade krav
I allmänhet kan man säga att vattenfallsmodellen är mer lämplig för projekt med klara och statiska krav, medan agila metoder är bättre lämpade för projekt med komplexa och föränderliga krav eller hög osäkerhet
Walking skeleton?
Används för att beskriva en grundläggande version av en produkt eller system som kan demonstrera dess grundläggande funktionalitet.
En Walking Skeleton kan beskrivas som ett MVP (Minimum Viable Product) eller en prototyp av en produkt.
Här kan man tidigt se vilka problem som finns och vad som behöver byggas.
Ge mig en vanlig estimeringsteknik
Planning poker - en teknik där teamet samlas för att uppskatta tid eller resurser genom att använda kort med olika nummer på dem.
Varje medlem i teamet väljer ett kort som motsvarar sin uppskattning, och sedan diskuterar teamet resultaten tills de når en överenskommelse.
vad är skillnaden på kanban och scrum ?
Tidsbegränsing. Inom scrum så använder man sig av sprintar(två veckor) för att slutföra en uppgift. Kanban har ingen tidsbegränsing för att slutföra en uppgift eller process.
Arbetsuppgifter: Kanban hanterar en ständig ström av uppgifter och prioriterar kontinuerligt arbetsuppgifterna baserat på deras värde. Scrum hanterar en fast uppsättning av uppgifter som ska slutföras under en sprint
Roller: Kanban har inga specifika roller eller ansvarsområden utan fokuserar på att fördela arbetsuppgifterna utifrån den enskilda personens expertis och kapacitet. Scrum har specifika roller som scrum master, product owner och utvecklingsteam som har definierade ansvarsområden och uppgifter.
vad är kanban?
Kanban är baserat på principen att arbetsuppgifterna visas i en visuell tavla där de flyter från “att göra” till “pågående” och till slut “klar”. Tavlan är oftast uppdelad i kolumner som representerar olika stadier i arbetsflödet.
Kanban ger också möjlighet till att begränsa antalet arbetsuppgifter som är i arbete samtidigt.
vad är scrum?
Scrum är en ramverk för agil utveckling som används för att hantera och utveckla produkter och projekt
Scrum består av tre huvudkomponenter.
Product backlog - En lista med krav och funktioner
Sprint backlog - Vilka uppgifter som ska genomföras under en sprint.
Scrum möten - korta och regelbundna möten för planering.
Scrum bygger på tre grundläggande roller.
-Produktägaren : ansvarar för att definiera och prioritera produktkraven,
-Scrum Master : ansvarar för att se till att teamet följer Scrum-processen.
-Utvecklingsteamet: ansvarar för att genomföra arbetet och leverera fungerande produktinkrement.