Agil utveckling Flashcards
Disruptiv
beskriver en process där nya – ofta enklare och billigare – produkter eller tjänster börjar rota sig i en traditionell marknad, för att så småningom konkurrera ut de etablerade marknadsaktörerna
Trygghet
Det är svårt att vara innovativ i en organisation/grupp om man blir bestraffad när man gör fel.
Tvärfunktionella team
Har olika kompetenser och förmågor så att man kan komplettera varandra. Värdesätter mångfald och samarbete.
Självorganiserade team
Gemensamt mål/syfte
Tydliga ramar att verka och ta beslut inom
Teamet får förtroende från ledning och beslutsfattare
Gemensamma värderingar
Självbestämmandeteorin
Självbestämmande - känna att jag kan påverka min arbetssituation och att jobbet är meningsfullt.
Kompetens - känna att jag är bra på mitt jobb och därför är jag viktig och värdefull
Gemenskap - känna att jag ingår i en gemenskap med människor jag gillar, där vi visar omtanke och respekt mot varandra
Inkrementell
Inkrementell innovation innebär att man gradvis förbättrar och utvecklar en produkt eller tjänst över tid genom små steg. På så sätt kan man minimera riskerna och kostnaderna som är förknippade med att utveckla helt nya produkter eller tjänster.
Development value stream
En metod för att hantera och visualisera flödet av arbetet och värdeskapande aktiviteter som krävs för att utveckla och leverera en produkt. Fokus ligger på hela livscykeln, från ide till leverans. Betonar vikten av att skapa värde för kunden så snabbt som möjligt.
Eliminera flaskhalsar och kontinuerlig förbättring och optimering genom utvärdering och anpassning. Nyckelkomponent i DevOps
DevOps
Metod för att integrera utvecklings- och driftprocesser för att öka effektiviteten och förbättra kvaliteten på mjukvaruleveranser. Det involverar en kultur och samarbetsmodell som främjar öppen kommunikation och användning av verktyg som Continuous Integration, Continuous Delivery och automatiserade tester. Integreringen av utveckling och drift hjälper till att effektivisera kommunikationen och samarbetet mellan avdelningar, vilket leder till ökad flexibilitet och möjlighet att snabbt reagera på kundens behov.
TDD (Test Driven Development)
Test Driven Development (TDD) är en metod för mjukvaruutveckling där testning görs innan kodning. Processen börjar med att utvecklaren skapar en test som definierar önskat beteende för en viss funktionalitet. Utvecklaren skriver sedan kod för att uppfylla testet och verifiera att koden uppfyller testkraven.
Genom att använda TDD kan utvecklaren undvika att skriva onödig kod och säkerställa att koden fungerar som den ska. Detta minskar risken för buggar och ökar kvaliteten på koden
User stories
En user story är en kort beskrivning i vardagligt språk av vad en användare vill uppnå. En grundidé är att varje story ska vara kort och få plats på ett kort
Estimation
Inom agil utveckling är uppskattningsprocessen att tilldela en ungefärlig storlek eller ansträngningsnivå till en user story eller uppgift för att bestämma hur mycket arbete som kan utföras inom en given tidsperiod, vanligtvis en sprint.
En populär metod för att uppskatta user stories är att använda story points.
Slicing
Slicing innebär att dela upp en större uppgift eller user story i mindre, hanterbara delar som kan utföras mer effektivt
Impediments
In agile software development, the definition of agile impediment is anything that slows down or hinders the productivity of a team, hence affecting the successful delivery of a product.
WIP (Work in progress)
Limits the maximum amount of work that can exist in each status of a workflow
Det handlar om att begränsa det pågående arbetet för att förbättra produktiviteten, minska ledtider och möjliggöra snabbare leveranser.
DoD (Definition of done)
En överenskommelse inom ett agilt team om vilka krav som behöver uppfyllas för att en produktuppgift ska anses som klar. Det inkluderar allt arbete som behöver göras, t.ex. kodning, testning, dokumentation och utvärdering, för att se till att slutprodukten uppfyller de önskade standarderna och kraven.
Teknisk skuld
Dålig eller kortsiktig programutveckling som belastning på it‑system. ”Skulden” måste förr eller senare betalas genom att man omarbetar programmet eller byter ut det. Den tekniska skulden är, så länge den finns kvar, en belastning för driften och för annan systemutveckling.
Empirical process control
Det innebär att man kontinuerligt utvärderar och anpassar processen baserat på data och erfarenheter från tidigare iterationer. På så sätt kan man förbättra effektiviteten, minska riskerna och öka kvaliteten på produkten genom att använda den data som samlats in.
Baseras på 3 pelare
* Transparans
* Inspektion
* Anpassning
Self-organization
The scrum method encourages a level of independence from the Scrum team. When Scrum teams are described as “self-organizing”, this simply means that they manage their own tasks, solve problems independently, and are accountable to themselves and each other - rather than an outside manager.
Time-boxing
Time-boxing is a practice where a fixed amount of time is allocated for certain activities or objectives. Time-boxing allows for activities to be completed in an optimal time frame without running too long. Time-boxing is ideal for setting time frames around activities like sprint planning and sprint retrospectives.
Value-based prioritization
To achieve value-based prioritization, items in the product backlog are constantly updated based on their value and importance to the end-user and stakeholders.
Iterative development
Because of its ongoing sprints, the objectives in product development are consistently reviewed and updated to create the best quality product and delivery process.
Collaboration
Det innebär att man kontinuerligt utvärderar och anpassar processen baserat på data och erfarenheter från tidigare iterationer. På så sätt kan man förbättra effektiviteten, minska riskerna och öka kvaliteten på produkten genom att använda den data som samlats in.
product owner
The product owner is in charge of maximizing value. That means they’re not just concerned about the day-to-day work on the product or planning the sprint itself. Their job is to ensure that the interests of the stakeholders and customers are represented through the prioritization of the product backlog. The product owner also ensures that the deliverables meet evolving requirements.
Scrum Master
En Scrum master är en tjänsteman inom Scrum-teamet som är ansvarig för att säkerställa att Scrum-processen följs korrekt. De stödjer och coachar teamet i att tillämpa Scrum-metodiken genom att hjälpa till att skapa en produktbacklog, planera sprints, organisera och leda dagliga Scrum-möten, samt följa upp och eliminera hinder som hindrar teamet från att nå sina mål. Scrum mastern fungerar också som en länk mellan teamet och intressenter och hjälper till att kommunicera teamets framsteg och eventuella problem.
Development team
The development team is the brains behind the process. While they work with the support of the product owner and Scrum master, they have the necessary technical skills to build and deliver a great product.
Ideally, the development team consists of cross-functional team members, including QA testers, designers, and developers. To ensure optimal performance, the development team must observer Scrum best practices and rules during product development.
Product Backlog
The product backlog includes the necessary features and functionalities that need to be added to the software. Because the product owner sets the foundation of the product development, they create and groom the backlog by adding and prioritizing items. The product owner evaluates these items by asking questions such as “what imoatc does this feature create in a development process?”, “what are the risks involved?”, “what are the costs involved?”. Answering these questions helps outline the clear value of each item in the backlog.
Sprint Planning
After creating the product backlog, the team begins spring planning. This process is where teams go through the product backlog to figure out how to achieve the most important objectives and ensure they don’t spread themselves too thinly. After this, the team can get a better understanding of how the product development will progress.
Sprints
During sprints, the Scrum team completes the goals and objectives outline for that particular time frame. Ideally, a spring should last 1-4 weeks - but shouldn’t take more than a month. During the sprint, the Scrum team attends a daily standup meeting with the product owner and Scrum master. This is where they discuss what they are working on that day and talk through any issues or impediments they are experiencing. It’s important to note that no changes must occur when a sprint is in progress. This is to ensure that the team can meet the sprint goal without issue.
Sprint Review
At the end of every sprint, the Scrum team - including the product owner and Scrum master - gather together to review the sprint, including what went well, what was completed, and what the updated backlog will look like. A product demo may also be on the agenda.
Here, the product owner will validate the sprint work. Once the phase ends, the cycle begins again, starting with the product backlog, sprint planning, next sprint, and a product increment.
In summary, the Scrum methodology is a learning and disciplinary process that enables the Scrum team to identify ways to improve and deliver the best quality product to the end-user.
Agile values
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
The lean startup
Handlar om att utveckla en produkt eller tjänst genom att kontinuerligt testa och justera den baserat på feedback från kunder och marknaden. Genom att använda denna metodik kan man undvika att spendera tid och resurser på att utveckla produkter eller tjänster som ingen vill ha eller behöver.
Skapa en minimal fungerade produkt (MVP) för att snabbt testa marknaden och få feedback från kunder.
Använder data för att fatta beslut och optimera produktutvecklingen.
Använda en iterativ process för att kontinuerligt förbättra produkten och anpassa den till marknaden.
Skapa en kultur som uppmuntrar till innovation och kontinuerligt lärande
Continuous integration
Continuous Integration (CI) är en process inom mjukvaruutveckling som syftar till att integrera koden från olika utvecklare eller team på en regelbunden basis. Målet är att identifiera eventuella problem så tidigt som möjligt och undvika konflikter mellan olika kodändringar.