Definition
Agile (agil mjukvaruutveckling) är en familj av ”agila” metoder för mjukvaruutveckling. Dessa tillvägagångssätt kallas ibland också ramar eller smidiga metoder.
Agile har sitt ursprung i IT-miljön, men sprids sedan till andra områden – från industriteknik till artificiell intelligens.
Betydelsen av Agile formuleras i Agile Software Development Manifesto: ”Människor och interaktioner är viktigare än processer och verktyg. En fungerande produkt är viktigare än omfattande dokumentation. Samarbete med kunden är viktigare än att komma överens om villkoren i avtalet. Att vara redo för förändring är viktigare än att följa den ursprungliga planen. ”
Agile Manifesto är huvuddokumentet för alla agila utvecklingsmetoder. Agile skapades 2001 av en grupp entusiastiska programmerare som ville förstå vad som ligger i centrum för utvecklingen av en eftertraktad och användbar IT-produkt. som har skapats i förväg. Det är viktigt att fokusera på de ständigt föränderliga förhållandena i den externa och interna miljön och ta hänsyn till feedback från kunder och användare. Detta uppmuntrar utvecklare och ingenjörer att experimentera och söka nya lösningar utan att begränsas av stela ramar och standarder.
Separata smidiga tillvägagångssätt inkluderar scrum och kanban.
Scrum är ett ”strukturerat tillvägagångssätt”. Ett universellt team av specialister arbetar med varje projekt, till vilket ytterligare två personer ansluter sig: produktägaren och scrummastern. Den första ansluter teamet till kunden och övervakar utvecklingen av projektet; detta är inte en formell lagledare utan snarare en kurator. Den andra hjälper den första att organisera affärsprocessen: han håller allmänna möten, löser vardagliga problem, motiverar teamet och övervakar efterlevnaden av scrummetoden.
Scrum-metoden delar upp arbetsflödet i lika stora sprints – vanligtvis perioder från en vecka till en månad, beroende på projektet och teamet. Innan sprinten formuleras uppgifter för denna sprint, i slutet diskuteras resultaten och laget startar en ny sprint. Sprints är mycket praktiska att jämföra med varandra, vilket gör att du kan hantera arbetseffektiviteten.
Kanban är en ”balansmetod”. Dess uppgift är att balansera olika specialister inom teamet och undvika en situation där designers arbetar dag och natt, och utvecklare klagar över bristen på nya uppgifter.
Hela teamet är ett – det finns inga produktägare och scrum-masterroller i kanban. Affärsprocessen är inte uppdelad i universella sprints, utan i det skede som utför specifika uppgifter: ”Planerad”, ”Utvecklad”, ”Testad”, ”Slutförd”, etc.
Huvudprestationsindikatorn i kanban är den genomsnittliga tid det tar att slutföra en uppgift över hela linjen. Uppgiften gick snabbt – teamet arbetade effektivt och smidigt. Uppgiften var försenad – du måste tänka i vilket skede och varför det uppstod förseningar och vars arbete måste optimeras.
För att visualisera smidiga tillvägagångssätt används kort: fysiska och elektroniska. De gör att du kan göra arbetsflödet öppet och förståeligt för alla specialister, vilket är viktigt när teamet inte har en formell ledare.
Vad är Agile?
Agile är ett tillvägagångssätt för projektledning eller mjukvaruutveckling. I Agile utvecklas krav och lösningar genom iteration och samarbetsinsats från tvärfunktionella, självorganiserande team och affärsanvändare. Agile välkomnar förändrade krav, även i ett senare skede. Kunder, affärsdeltagare och utvecklare arbetar tillsammans under hela projektet. Agila team anpassar sitt beteende för att möta projektets förändrade behov.
Agile är en filosofi eller orientering (Griffin). Agile används ofta som en guide för att komma närmare projektarbetet. Agile betonar utveckling iteration samt testning i programvaruutveckling livscykel (SDLC). Agile bryter ner en hel produkt eller ett projekt i små enheter. I Agile-metoden sker utveckling eller testning samtidigt. Agile stöder samarbete såväl som direkt kommunikation.
Vad är Scrum?
Scrum är grunden för projektledning eller mjukvaruutveckling. Scrum är en av de smidiga processerna. Scrum fokuserar på att leverera affärsvärde till affärsanvändare på minimal tid. Projekten är uppdelade i sprints, som vanligtvis varar från en till tre veckor. Scrum har tre huvudroller: scrum master, produktägare och teammedlemmar.
Scrum betonar självorganisation och delat ägande bland teammedlemmarna. Han ser projektledning som en process för att skapa gemensamt värde; och betonar samarbete och iterativ utveckling för att effektivt hantera förändringar och skapa bättre produkter för att möta kundernas behov. Scrum ser på tiden som en begränsning. Det betonar boxningstiden och använder daglig sprintplanering och granskningsmöten.
Likheter mellan Agile och Scrum:
Agile och scrum är båda relaterade till projektledning och mjukvaruutveckling. Eftersom Scrum är ett av sätten att implementera Agile har de båda flera likheter. Båda betonar optimal resursanvändning. Båda betonar effektiv och effektiv hantering av olika uppgifter.
Agile och scrum, båda syftar till att få ut det mesta av affärsanvändarna. De försöker se till att en produkt eller ett projekt levereras till affärsanvändare så snart som möjligt. Båda betonar kontinuerlig förbättring, samarbete, öppen kommunikation etc.
Agile och Scrums natur:
Agile är en utvecklingsmetodik baserad på ett inkrementellt och iterativt tillvägagångssätt. medan Scrum är ett av många implementeringsscheman eller Agile-processer.
Scrum tillhandahåller inkrementella moduler till klienten varje vecka eller var fjortonde dag.
Användningsexempel
En av principerna för Agile bygger på personens ansvar för en person, inte på felsökning av interna processer.
(Från en artikel på VC.ru)
När vi arbetar med professionella team använder vi Scrum, oftast väljer vi en 2-3 veckors cykel med retrospektiva möten som gör att vi kan hålla allt under kontroll.
(Från en intervju med Vedomosti med Frank Sosier, tränare för Freestanding Agility)
Huvudidén med Kanban är visualisering av arbetsflödet. Den består i att skapa en fysisk instrumentpanel där du kan markera dina framsteg visuellt.
(Från översättningen av Forbes-kolumnen på Rusbase)
Om vi pratar om vad som är smidigt skulle jag begränsa mig till en sådan fras – det är en uppsättning värderingar inom vilka vi bygger vårt arbete med produkter, med processer inom organisationen.
(Alexey Pimenov, Managing Partner för ScrumTrek i en artikel om Rusbase)
Hur och varför scrummetoden uppstod
Innan Scrum tillkom antogs vattenfallet i programvaruutvecklingsvärlden. Arbetet med produkten utfördes enligt följande plan.
- Definiera produktkrav.
- Planera hela projektet från början till slut.
- Skriv koden.
- Testa produkten.
Utvecklarna samordnade arbetsplanen med kunden och följde strikt villkoren. När produkten var färdig testades den, men det var inte längre möjligt att ändra något. Om fel upptäcktes måste de därför börja om från början och arbetstiden ökade.
Detta var tills en grupp innovatörer bestämde sig för att förändra situationen helt. De såg hur framgångsrika team fungerar: utan att missa tidsfrister och få exakt det resultat de planerade. Det visade sig att framgången var processens flexibilitet.
Lärdomarna hjälpte till att skapa Agile Software Development Manifesto. Den innehöll bara fyra poäng, men de förändrade processen helt.
Agilt programvaruutvecklingsmanifest
1 Människor är viktigare än verktyg.
2 Produktkvalitet är viktigare än dokumentation.
3 Interaktionen med kunden är viktigare än kontraktet.
4 Beredskap för förändring är viktigare än en fast plan.
Dessa fyra punkter var grunden för uppkomsten av Agile, den flexibla programvaruutvecklingsprocessen. Senare skapades 12 principer som fortfarande används i alla smidiga metoder.
12 smidiga principer
1 Det viktigaste är bra programvara och en nöjd kund.
2 Beredskap för förändring när som helst.
3 Fullt fungerande programvara – så ofta som möjligt.
4 Teammöte är bäst för informationsutbyte.
5 Kunden och utvecklingsteamet måste arbeta tillsammans.
6 Lita på människor att göra sitt jobb.
7 Det finns fungerande programvara – det finns framsteg.
8 Agila processer – kontinuerlig utveckling.
9 Uppmärksamhet på kvalitet främjar flexibilitet.
10 Enkelheten i processen eliminerar onödigt arbete.
11 Det självorganiserande teamet fungerar bättre.
12 Ständigt strävan efter större effektivitet.
Rörlig och vattenfall, fjäll
En av metoderna för agil mjukvaruutveckling, som bygger på agila principer, är Scrum.
Scrumskapare Jeff Sutherland och Ken Schwaber har sett arbetet med den amerikanska militären, specialstyrkor och till och med rugbyspelare i många år. Och de märkte att deras framgång bygger på interaktion och lagarbete. Sutherland och Schwaber insåg att detta var precis vad programutvecklare behövde. Så här visade sig Scrum-metoden.
Scrum kärnprinciper
Scrum är alltid fokuserat på kunden, som måste få den önskade produkten i tid och till lägsta kostnad. Detta kan uppnås genom att följa några viktiga principer.
Arbeta i korta cykler (sprints)
Planera en sprint, inte hela projektet på en gång. Varje sprint är en tidsperiod under vilken teamet arbetar på en helt färdig del av produkten.
Flexibilitet. ”Kontrollera och anpassa”
Processflexibilitet och produkttestning efter varje sprint. Om något går fel är teamet alltid redo att ändra utvecklingsstrategin eller se över eftersläpningen.
Kundens och användarnas deltagande i skapandet av produkten.
Kunden står inte åt sidan, utan är fullt involverad i arbetet. För detta finns det ägaren av produkten, som utförs av kunden själv eller hans representant. Det är genom honom teamet interagerar med användarna. Eftersom utvecklingen genomförs i korta steg involveras användarna i testningen nästan omedelbart.
Efter första testet får de åtkomst till produkten och produktägaren samlar in feedback. Så här kan laget förbättra resultatet.
Laginteraktion
Ett Scrum-team är en grupp människor som arbetar för ett resultat och som helhet. Alla strävar efter ett gemensamt mål.
Vikten av scrumteamet
Ett scrumlag är oftast en grupp på fem till nio personer. Detta är det optimala antalet, men ibland finns det tre lag. Om det finns fler människor blir det svårare för dem att interagera med varandra, vilket stör jobbet och minskar produktiviteten.
Kommandostruktur
-
Produktägare. Den person som representerar produkten och är mellanhand mellan kund, användare och utvecklingsteamet. Ibland kan det vara kunden själv.
-
Scrum master. Oftast – en speciellt anställd anställd som leder teamet till resultatet. Han hanterar inte laget utan övervakar implementeringen av de grundläggande principerna för Scrum. Hans uppgift är inte att trycka, inte att göra allt själv och inte att fördela ansvar, utan att hjälpa, styra och lösa frågor som hindrar utvecklingsprocessen.
-
Utvecklare. Ett scrumlag har alltid människor med olika färdigheter. Så ett team på fem till nio personer leder hela projektet från början till slut. Ett team – en färdig produkt.
Hur ett scrumlag ser ut
Rollfördelning
Scrum fungerar när det finns en rollfördelning. Det finns tre av dem.
Team. Detta är en självorganiserad grupp på 3-9 personer. Bidraget från en enskild anställd utvärderas inte. Det enda viktiga är vilket resultat teamet har uppnått genom gemensamma insatser.
Produktägare. Detta är vanligtvis en entreprenör som känner till sin verksamhet och förstår kundernas behov. Han har tillräckligt med erfarenhet för att veta vad den färdiga produkten ska vara. Produktägaren är länken mellan teamet, konsumenten och produktionen. Han arbetar med feedback, fattar viktiga beslut och övervakar projektbudgeten. Produktägaren berättar inte för teamet vilken väg man ska gå utan tittar bara på resultatet.
Scrum Master eller teamledare. Scrum Master är ansvarig för lagets framgång. Han fattar inte beslut och leder inte. Hans uppgift är att få laget att fungera utan ledningens hävstång. Scrum Master är limet som håller laget ihop.
Scrum-verktyg
Scrum är en flexibel planeringsteknik som passar alla projekt. Med hjälp kan du öka företagets produktivitet och uppnå bättre resultat. Till exempel brukade teamet spendera en månad på en uppgift och en halv månad på förbättringar. Nu kommer samma uppgift att ta två veckor, och troligen kommer det inte att finnas några förbättringar.
Instruktioner: hur man använder Scrum för att fungera som Ajail
Scrum är enklare än andra ramar. Han ger verktygen och föreslår i vilken ordning de ska användas för att uppnå resultatet.
Scrum föreslår att du gör detta:
- För att pumpa upp den teoretiska basen: läs böcker om ämnet och titta på videoföreläsningar. Inspelningarna från Agiledays konferenser finns på YouTube på kanalen. I samhället delar Scrum-följare sina erfarenheter – du kan lära av dem.
- Välj en produktägare. Det här är personen som presenterar den färdiga produkten i detalj. Han kommer också att bedöma risker, fördelar och fatta strategiska beslut.
- Montera ett team på 3-9 personer. Teamet måste ha människor som har tillräckligt med kunskap och färdigheter för att arbeta med projektet.
- Utnämna en Scrum Master eller anlita en professionell från en konsultbyrå.
- Be produktägaren skriva en eftersläpning och låt teamet utvärdera den. Det är fantastiskt om laget inte kommer att betygsätta det i timmar, men i relativa enheter.
- Planera en sprint. Den måste ha en fast varaktighet och en exakt lista över uppgifter som inte kan kompletteras.
- Gör arbetet transparent. Varje lagmedlem bör se vilka uppgifter som redan har lösts och vilka som fortfarande behöver arbetas med. För att göra detta behöver du verktyg: ett scrumkort eller ett utbränt diagram.
- Att genomföra dagliga teamövergripande möten är en daglig Scrum. Vid möten kontrollerar teammedlemmarna varandras resultat, tittar på vilket stadium projektet är i och bestämmer hur man ska gå vidare till målet. Mötet varar i 15 minuter. Om det tar längre tid gör laget och Scrum Master något fel.
- Avsluta sprinten med en recension. Sprintrecension – ett möte som alla intresserade deltar i: konsument, kund, produktägare, scrummaster. Vid mötet visar teamet den färdiga produkten eller en del av den. Det spelar ingen roll vad det kommer att bli, det viktigaste är att det uppfyller sin funktion.
- Genomför ett retrospektivt möte direkt efter sprintgranskningen. När laget har visat en fungerande produkt sätter sig alla ner vid bordet och analyserar sprinten. Vad gick bra? Vad kan förbättras? Vilka hinder övervann laget? I slutet av mötet bör Scrum Master och teamet tänka på hur man gör nästa sprint ännu bättre.
- Planera en ny sprint omedelbart!
Vem är smidig för?
Agile förändrar vårt sätt att närma oss liv och entreprenörskap. Han lär dig att snabbt svara på omständigheterna och anpassa dig till dem.
Agile fungerar överallt: inom förvaltning, handel, tjänster. Någon använder det för att hantera sina egna liv och hålla koll på allt.
Men ingen kan garantera att han kommer att hjälpa ett visst företag. Om företaget är litet är det lättare att ändra sig. Stora företag har svårare: när det finns flera avdelningar och var och en har sin egen ledare kan implementeringen av Agile försenas. Teamet kommer att motstå förändringar. För att göra det enklare bjuder sådana företag Agile-tränare.
Agile är inte lämpligt för dem som har tillverkat en typisk produkt många år i rad. Det är mer lönsamt för sådana företag att göra tusen av samma stolar åt gången: det kommer fortfarande att finnas order. Men så snart en kund dyker upp med speciella önskemål behöver du exakt samma stol, men låt benen vara bredare och klädseln blir ljusare – Agile behövs.
Ett ord till experterna
Beroende på uppgifterna använder vi olika metoder inom filosofin – agile, scrum, kanban.
Scrum låter dig utveckla de nödvändiga egenskaperna hos anställda – proaktivitet, självständighet, organisation, kommunikationsförmåga och framsynthet. Huvudpoängen med metoden är att utföra uppgifter i självorganiserande team, där alla har sin egen roll och alla är ansvariga för sin del av arbetet. Med hjälp av scrum genomför vi personalundersökningar, ritar diagram över den förväntade hastigheten för att slutföra uppgifterna.
Vi använder Agile i intern kommunikation. Vi höll nyligen en ny sprint för att eliminera anställdas fördröjning. Alla chefer och specialister som var involverade i projektet tillbringade hela dagen i mötet och diskuterade prestationer, utmaningar och kommande uppgifter i den nya sprinten.
Nu introducerar vi aktivt kanbanmetoden i företaget. Målet med kanban-implementering är att öka produktionsflexibiliteten, bättre anpassa sig till förändrade marknadskrav. I praktiken hjälpte metoden oss att uppnå en överensstämmelse mellan lagerlagret och de produkter som faktiskt används i produktionen.
En viktig punkt: agil metod är en allmän riktning och kanban och scrum är redan dess sorter.
Vi använder scrum + vattenfallspaketet och förfinade även det smidiga brädet under året. Huvudskäl för användning: transparens och enkelhet. I själva verket visar sig detta vara samma Henry Ford-pipeline: övergången av en uppgift från status till status med en byte av artist, därför är huvudprincipen till det agila styrelsen redan enkelhet.
Vi använder agile som en direkt del av vårt arbetsflöde, så alla projekt, från branding och webbplatsutveckling till vår AI och native reklamstart NativeOS, utförs på Chernika exakt enligt detta arbetsflöde.
En fungerande produkt är viktigare än detaljerad dokumentation. Detta betyder inte att vi inte behåller någon dokumentation, nej. Snarare är det en syn på effektivitet med ett slag mot onödig byråkrati.
Scrum gav rytm och förståelse för vårt team – oavsett om vi är i tid eller inte i tid. Vi ser hastigheten på lagets arbete, det finns ingen känsla av konstant jävla. Tidigare fanns det situationer innan scrum försvann någonstans och alla började bara räkna ut det – nu har vi tappat det, det finns en ständig känsla av att vi är i tid. Om risker uppstår diskuterar vi dem tidigt med PD, justerar planen eller minskar uppgifterna på något sätt.
Arbetet blev mer öppet, arbetsdagen började passa in i 8-timmarsnormen, och det kändes som om vi började göra mer. Vi förstår att när du känner att du inte gör tillräckligt känner du att du behöver arbeta hårdare – detta har en mycket dålig effekt på produktiviteten, du måste bli av med den.
För tydlighet och öppenhet i utvecklingsavdelningens arbete sätter vi upp en särskild styrelse märkt ”att göra”, ”pågår”, ”granskning”, ”test”, ”klar”, där alla teammedlemmar klistermärken med uppgifter (i kolumnen ”att göra”), och när de är färdiga flyttas de till efterföljande poäng, och ett lyckligt slut är det slutliga ”gjort.” Detta hjälper till att få den stora bilden och gör det möjligt att se vad varje deltagare är jobbar på.
En mycket viktig punkt i metoden (och organisationen av arbetsflödet): efter godkännande av alla uppgifter (”att göra”) blockeras listan för infogning. Således distraherar nya inkommande uppgifter inte från processen och saktar inte ner arbetet.
Alla deltagare utvärderar också varje uppgift i termer av tid och materialkostnader som krävs för att slutföra. Och körsbäret på toppen är dagliga möten vid en viss tidpunkt (Daily Scrum), där varje lagmedlem kort talar om vad han ska göra idag, vad han gjorde i går (och om han mötte några hinder). Detta är viktigt på vägen mot långsiktiga mål – så kan du i tid förstå att det är dags att ändra din strategi.
Vi implementerade Scrum på två försök eftersom alla, från teamet till användarna, vill ha ett mer förutsägbart resultat. Detta är ett plus av metoden – tydliga rytmer effektiviserar teamet, ökar den övergripande kunskapsnivån om projektet. Som ett resultat blir resultatet mer förutsägbart, även för våra ”intressenter” – användare.
Lagarbete ökar också ansvaret: alla får bara en bonus om laget har slutfört de uppgifter som ställts in i ett visst skede.
Inga Koryagina
Agile är en filosofi, scrum är en struktur, vattenfall är en metod, kanban är ett ledningssystem. Scrum och kanban är smidiga alternativ, men de har några tydliga skillnader. Scrum kräver fasta roller, medan kanban saknar nödvändiga roller. Scrum bygger på iterationer som kombinerar planering, processoptimering och release. I kanban kan du göra detta regelbundet eller när du behöver. Scrumteamet kräver en bedömning av sitt arbete, medan kanban-teamet inte gör det.
Källor som används och användbara länkar om ämnet: https://rb.ru/story/agile-scrum-kanban/ https://ru.esdifferent.com/difference-between-agile-and-scrum https: // skillbox. ru / media / management / kak_ponyat_scrum / https://allo.tochka.com/agile-scrum