Lucas Barbosa

Februar 21, 2024

Min Read

18 bedste Agile fremgangsmåder at bruge i din SDLC

Siden begyndelsen er software blevet udviklet efter en række trin. Det starter normalt med en god idé eller den ønskede løsning på et specifikt problem. Derefter går det hele vejen til den faktiske levering eller endda vedligeholdelse af det endelige produkt.

Uanset om din virksomhed eller dit team bruger en mere traditionel eller agil tilgang, ville strømmen af at få et output genereret som input til det næste trin være en del af enhver softwareudviklingsproces.

I denne artikel vil vi tale om nogle af de fremgangsmåder, der bruges til forskellige formål i hele softwarens livscyklus, der bruges af softwareudviklingsvirksomheder rundt om i verden, som vores - Imaginær sky. Deltag i denne Agile rejse, der er ved at begynde!

blue arrow to the left
Imaginary Cloud logo

Hvad er SDLC?

SDLC står for Softwareudvikling livscyklus. I modsætning til hvad mange tror, SDLC er ikke en ramme eller endda en beskrevet proces. Selv om det kan defineres som en konceptuel model Bruges til at repræsentere hvordan software fremstilles i en række trin. Disse trin dækker faser fra idéfasen til levering, beskrevet som følger:

1. Planlægning;2. Analyse/krav3. Design og prototyping4. Softwareudvikling;5. afprøvning;6. Implementering;7. Drift og vedligeholdelse

Uanset hvilken metode eller udviklingsramme dit team bruger, skal det dække med mere eller mindre detaljer alle trin til stede i SDLC. For eksempel, en vandfaldstilgang vil følge hvert trin som en specifik fase i projektet, idet det er slutningen af hvert enkelt trin, en fasegate/milepæl med hensyn til projektets fremskridt. En Agile metodologi ville normalt „kondensere“ alle disse trin til gentagne, cykliske og iterative bidder, der dækker alle disse trin for hver iteration.

blue arrow to the left
Imaginary Cloud logo

Hvad er Agile udvikling?

Historisk kontekst

Begrebet Agile inden for softwareudvikling har eksisteret i årtier. Manglen på formbarhed, almindelige tungvægtprocesser og modstand mod forandring, hyppigt i branchen indtil slutningen af 90'erne med vandfaldsorienterede projekter, blev konfronteret med en ny retning. Det var, da Agile-metoder (havde ikke engang dette navn dengang), ligesom Scrum, XP, Krystal, Funktionsdrevet udvikling (FDD), og Dynamisk systemudviklingsmetode (DSDM), blandt andre, begyndte at dukke op.

En ny måde at skabe software

Med ideer, der dækker forskellige aspekter fra: velkommen ændrede krav; Leverer software ofte; tæt synergi mellem forretningsfolk og udviklingsteam; samt refleksionen over hvordan man forbedrer, bringer lys til en ny måde at skabe software på. Udover enhver buzz eller trends, der kommer og går, er den reelle fordel, som Agile foreslår, at løse kendte problemer, der ofte står over for i softwareudviklingsverdenen i et andet perspektiv.

I stedet for at følge den overbrugte vej til bare at dække de fire værdier, der er til stede i Agile manifestVores tilgang vil være at tale om Agiles principper og bedste praksis. De er ofte sidesigtede, selvom de repræsenterer endnu flere detaljer om den tankegang, som Agile skal bringe.

Præsentationsslide med titlen "PRINCIPLES BEHIND THE AGILE MANIFESTO" på mørk baggrund. Viser tolv agile principper skrevet med blå tekst, organiseret i to parallelle kolonner.
blue arrow to the left
Imaginary Cloud logo

18 bedste Agile praksis i SDLC

En „praksis“ kan defineres som“den faktiske anvendelse eller brug af en idé, tro eller metode, i modsætning til teorier, der vedrører den“. Denne definition repræsenterer klart Hvad er Agile-praksis: en måde at anvende teorien bag det faktiske begreb om, hvad det at være Agile betyder.

Agile praksisser kan endda bruges uden at følge en given Agile-metode - dvs. at bruge TDD (testdrevet udvikling) alene vil ikke gøre din levering eller proces helt agil i sig selv. Det er relevant at forklare, at de fleste agile metoder kaldes det, fordi de enten udsprunget af en agil metode eller blev skabt af Agile praktikere.

Forskellige Agile metoder tilskynder til forskellige Agile-praksis for at gøre dem mere objektive og produktive.

Hver af disse praksisser vil generelt fokusere på et specifikt aspekt, såsom ledelse, udvikling, test osv.

Uden videre præsenterer vi nedenfor en liste over Agile-praksis, der kan anvendes i forskellige trin i din SDLC (softwareudvikling livscyklus).

Husk, at nogle af de fremgangsmåder, der præsenteres her, kan være mulige at anvende en eller flere gange, afhængigt af deres mål. Nogle metoder dækker tilfældigvis mere i dybden et trin af SDLC end andre. Ikke desto mindre kan det være tilfældet, at en given praksis dækker fuldt ud et aspekt og delvist et andet trin. Tommelfingerreglen har altid været: mindre fokus på at være streng, og Mere fokus på at opnå de ønskede resultater :).

blue arrow to the left
Imaginary Cloud logo

Planlægning

1. Produktvision/Visionserklæring

En af de første faser, projektet skal have, er dens produktvision. Med den indledende forestilling om projektet er der virkelig brug for nogle korte definitioner: hvem er klienterne, teamet, et omfang på højt niveau (og modomfang!) , tegninger af den tekniske tilgang, potentielle risici samt estimeret tid og omkostninger. Et godt emne, der skal dækkes, er Visionserklæring - også kendt som „elevator pitch“, der skal se mere eller mindre ud som nedenstående.

Præsentationsslide med titlen "ELEVATOR PITCH" på mørk baggrund. Viser en skabelon med pladsholdere: TARGET COSTUMER, CUSTOMER NEED, PRODUCT NAME, MARKET CATEGORY, ONE KEY BENEFIT, COMPETITION og UNIQUE DIFFERENTIATOR.

2. Forretningslærred

Forretningsmodel lærred bør bruges til at forme det produkt, der skal bygges, og tage en praktisk retning for at definere forretningsmodeller. Anvendes i forbindelse med Lean opstart, dette er et værktøj, der effektivt kan tjene som et visuelt diagram over ideer og opfattelser af en eksisterende eller ny virksomhed.

Formuler derfor en fuld forståelse som arbejde i hypotese og værdiforslag. Dækker ni blokke: aktiviteter, partnere, ressourcer, værdiforslag, kunder, kundekanaler, kundeforhold, omkostninger og indtægter på en struktureret måde. Business Model Canvas kan spille en vigtig allieret rolle i planlægningen af et projekt.

3. Produkt efterslæb

Product Backlog er en liste over forretnings- og projektmål og indeholder det, der forventes at blive udviklet af udviklingsteam, vedligeholdt af Produktejer. Det er et levende dokument, der opdateres løbende, prioriteres og sorteres efter forretningsværdi. Det kan også have produktforbedringer, fejl, tekniske spørgsmål osv. Dens formål er primært at have alt, hvad der er nødvendigt for at nå projektets produktvision.

blue arrow to the left
Imaginary Cloud logo

Analyse/Krav

4. Lean Inception

Paolo Caroli skabte lean Inception som hans tilpasning og udvikling af Inception-fasen, der blev brugt på ThoughtWorks. Ideen bag det er At kombinere Design Thinking og Lean Startup via et opdagelsesværksted for at definere produktets MVP. Ved hjælp af intervallet på en uge sigter workshoppen typisk mod at finde den retning, teamet skal tage for at bygge det ideelle produkt. Denne tilgang kan ses som en udvidelse af emnet „Produktvision“, der er nævnt tidligere. Det dækker også trin som definitionen af personas, rejser, funktioner, tekniske, UX- og forretningsanmeldelser, osv. i løbet af denne uges tidsramme.

Webbanner for Imaginary Cloud. Tekst: "MINIMUM VIABLE PRODUCT" med en "REQUEST A QUOTE"-knap og en isometrisk trådramme-illustration af smartphones på mørk baggrund.

5. Produktdesignproces

Produktdesignproces Sådan definerer vi hos Imaginary Cloud, hvordan vi skaber digitale produkter - og ja, vi har en bog om det. Denne tilgang, som vi bruger internt i de projekter, vi arbejder i, bruges også eksternt af forskellige brancheaktører. Det fokuserer på at dække de nødvendige trin for at skabe en bemærkelsesværdig løsning, der ikke kun bringer kunder og produktejere til centrum for denne diskussion, men også brugere.

Denne proces kan tage et til et par uger afhængigt af produktets kompleksitet og hvor dybt vi skal grave for at definere løsningen). Det omfatter 12 trin, der går hele vejen fra forskning, idé, udførelse og teknisk vurdering til at undersøge og identificere produktets bane på den bedst mulige måde.

6. Brugerhistoriekortlægning

Vi nævnte Product Backlog tidligere i dette indlæg som en måde at gå til planlægning og strukturere dine produktmål. Det er også gyldigt at vise en metode til at arbejde med det (forudsat at brugerhistorier bruges til at oprette og vedligeholde din produktbacklog).

Brugerhistoriekortlægning er rent en teknik, der tillader en visuel opdeling - eller „skæring“ - af brugerhistorier på en sådan måde, at de kan tackles og adresseres på en sekventiel måde, der giver mening som et produkt, fra rygraden til mindre detaljer. Denne tilgang er værdifuld, når den giver konteksten på den måde, hvorpå funktionerne er opdelt som et helt projekt, ikke kun en repræsentation af en grupperet liste. Vigtigt at sige, at definitionen af, hvor tynde eller tykke skiverne er defineret, målrettet mod en ende-til-ende fortælling, kommer fra direkte interaktion med kunder/brugere.

Diagram over user story mapping. Øverste række har blå sticky notes: "Product search", "Product page" og "Checkout". Gule sticky notes nedenunder er organiseret i rækker mærket "Release 1", "Release 2" og "Backlog".
blue arrow to the left
Imaginary Cloud logo

Design og prototyping

7. Domænedrevet design

Domænedrevet design - eller DDD - er et begreb, der bruges i Softwaredesign at strukturere softwarearkitekturmodellerne ved hjælp af en abstraktion af applikationens forretningsdomæne. Det kræver integration og samarbejde fra både teknisk og forretningsmæssig side (bruger derfor et af DDD's vigtigste egenskaber: allestedsnærværende sprog, målrettet mod en fælles forståelse af udtryk fra alle sider).

Da DDD fokuserer stærkt på definitionen af domænelaget, udover at drage fordel af Objektorienteret programmering koncepter, det blev ret populært blandt OOP-samfundet. Imidlertid kan dens generelle idé bruges uanset det anvendte programmeringsparadigme, især fordi det kan bruges som et fundament for praksis som TDD, BDD, CI, refactoring osv.

Teknikker som brug af enheder, værdiobjekter eller underdomæner såsom afgrænsede kontekster, byggesten som tjenester, arkiver, fabrikker og begivenheder bringer et strategisk design til applikationen. Det giver mulighed for at kombinere domænestruktur, livscyklus og opførsel på en kortfattet og beslægtet måde.

8. Arkitektonisk spids

Spike - et almindeligt anvendt udtryk i Agile, der kommer fra XP - henviser til en type brugerhistorie bruges til at udforske og søge lige nok forståelse af en tilgang og derfor reducere risikoen, hvis den tages. Arkitektonisk spids går et skridt videre mod softwaredesign og arkitektur. Det sigter mod at definere rygraden i modelleringsarkitekturen og hvordan det vil Alle arbejder sammen, men med tilstrækkelig pragmatisme foreslås denne løsning med den endnu begrænsede eksisterende information om problemdomænet. Under denne praksis involverer de definitioner, der er lavet, ofte softwarelag, delsystemers grænser, meget sandsynligt nogle arbejdskode- og kildekontrolværktøjer som et minimal/optimalt skelet af applikationen. Det bidrager til at definere og være en del af systemmetaforen, en „simpel delt historie om, hvordan systemet fungerer“.

Ikke nok til at sige, at efterhånden som projektet og applikationen udvikler sig, bør dets arkitektur også tilpasses og raffineres, idet den arkitektoniske spik kun er den første opgave i den retning. Denne idé diskuteres i praksis dækket i afsnittet nedenfor.

9. Fremvoksende design

Det ellevte princip i Agile manifest Nævnte siger, at“De bedste arkitekturer, krav og design kommer fra selvorganiserende teams.“ Når man taler strengt om designet, spekulerer du måske stadig på, hvad det betyder. Emergent Design taler om at bygge løsningen evolutionært, der tillader dets design og arkitektur defineres gennem hele udviklingsrejsen. At bruge lidt jargon i stedet for at gøre BIG TITS (Stort design foran), JEDI er almindeligt anvendt (Just Enough Design Initially). At følge denne tankegang, trinvist, giver udviklere plads til at fokusere på direkte projektbehov og undgå en tidlig og suboptimal defineret arkitektur - selvom det er værd at nævne, at fokus skal være på at imødekomme andre krav end blot at forsøge at forudsige fremtiden.

På trods af en vis kritik af fordelene ved at skabe definitionen af arkitektur (i modsætning til at definere stærke og komplette rygsøjler i en så vital del af applikationen) bør man drage stor fordel af, hvad Agile kan bringe ind i en adaptivt og læringsmiljø.

blue arrow to the left
Imaginary Cloud logo

Udvikling

10. Kontinuerlig integration

Praksis med at gøre Kontinuerlig integration (CI) svarer til at have den vigtigste strømline af kode, der modtager de ændringer eller tilføjelser, der er foretaget af udviklere separat i et enkelt softwareprojektopbevaring/filial. Denne handling skal udløse et par trin som automatiserede tests og syntaksstilrevisionsværktøjer, normalt orkestreret af et CI-værktøj i forbindelse med en Versionskontrolstyringssystem. XP foreslår, at denne proces skal udføres flere gange om dagen for at garantere, at der findes en kørende integreret version af koden.

CI er den første fase i en kædeproces der dækker Continuous Deployment (en applikation frigives i produktion, hvis den lykkes med alle trin i den automatiserede implementeringsproces) og Continuous Delivery (hvor kodebasen kan implementeres i forskellige miljøer på et givet tidspunkt).

Standardstrategien for kontinuerlig integration foreslået af Martin Fowler følger nedenstående:

Præsentationsslide med titlen "PRACTICES OF CONTINUOUS INTEGRATION" på mørk baggrund. Viser en blå punkttegnliste med 11 punkter, herunder at vedligeholde et enkelt kilderepository og automatisere build-processen.

De vigtigste fordele observeret med CI går fra opdage fejl mere effektivt, Undgå omkostningen ved manuel integrationsproces, altid Tilgængelig opbygning af miljøerProcessen bliver mere gennemsigtig (forbedrer derfor meddelelsen) og tilskynder til en mere robust testdækning. CI skaber også plads til implementering af praksis som f.eks. pull-anmodninger og kodegennemgang.

11. Testdrevet udvikling

Testdrevet udvikling, eller TDD, er kendt som praksis med test-first programmering, som følger ved at oprette automatiserede enhedstest, gentagelig flow af:

  1. Tilføjelse af en test
  2. At få det til at mislykkes
  3. Skrivning af kode for at bestå testen (gentag)

Hovedmålene med denne tilgang er at Gør koden klarere, enkel og fejlfri, samtidig med at man tænker bedre på strukturen og overvejer systemets interne grænseflader og ansvar.

Der er specifikke værktøjer, der understøtter enhedstest og TDD, almindeligvis kendt som XUnit-værktøjer (JUnit, NUnit, XPYUnit, PHPUnit osv.), men ikke begrænset til dem.

TDD er utvivlsomt et paradigmeskift for en udvikler, der ikke er vant til at følge disse trin. Et almindeligt tabu om TDD er, at det kræver for meget indsats og tid at blive brugt, og det er derfor ikke umagen værd. Tommelfingerreglen i sådanne tilfælde er at finde en mellemvej og forstå det TDD bør bringe både mere testet og derfor renere kode til ansøgningen.

Det er vigtigt at nævne, at TDD ikke kan være den eneste del af applikationens kvalitetssikringsstrategi, og dette vil blive dækket nedenfor, når vi taler om QA. Den automatiserede testoprettet ved brug af en TDD-tilgang bør også helt sikkert være en del af applikationens kontinuerlige integrationsstrategi, idet den er et af de nødvendige trin for at få denne proces udført.

12. Refaktorering

Sandsynligvis den bedste definition af Refaktorering kommer fra Martin Fowler.

„En disciplineret teknik til omstrukturering af en eksisterende kode, ændring af dens interne struktur uden at ændre dens eksterne adfærd“

Eller...

„En ændring foretaget i den interne struktur af software for at gøre det lettere at forstå og billigere at ændre uden at ændre dens observerbare adfærd“.

Behovene til koderefaktorering kommer ofte fra“kode lugt“: en indikation af enhver omorganisering på grund af svaghed eller potentielle problemer, der findes i koden. En almindelig brug af Refactoring er at betale den tekniske gæld, et af de største projekts mareridt. Også i TDD kaldes det trin, der nævner handlingen med (gen) skrivning af kode, der består testen, almindeligvis også Refactoring.

For nogle mennesker kan det være udfordrende at forstå fordelene ved at koncentrere indsatsen om at arbejde på allerede skrevet kode. Det kan dog helt sikkert øge kodens vedligeholdelighed, samhørighed, læsbarhed, ydeevne og genanvendelighed, blandt andet, der skal retfærdiggøre den brugte tid. Det er gyldigt at understrege, at Refactoring handler ikke om at skabe nye funktioner, da dette går ud over dets formål. Målet skal altid være at Bevar sin nuværende adfærd (eksisterende og/eller nye test bør være på plads for at garantere dette).

Nogle eksempler på den almindelige anvendelse af Refactoring er: brug af designmønstre, polymorfisme, indkapsling af felter, ændring af brugen af parametre, undtagelser osv.

blue arrow to the left
Imaginary Cloud logo

Afprøvning

13. BDD/ATDD

Sandsynligvis den bedste definition af Refaktorering kommer fra Martin Fowler.

BDD står for Adfærdsdrevet udviklingog kan defineres som“en tilgang til udvikling, der forbedrer kommunikationen mellem forretnings- og tekniske teams for at skabe software med forretningsværdi“. BDD sigter mod at være bingingpunktet blandt forretningsfolk, udviklere og QA-testere (for ikke at sige alle mennesker, der er involveret i projektet), for at garantere en fælles forståelse og ensartet kommunikation af applikationens egenskaber. Dette opnås ved at oprette dens specifikationer baseret på scenarier og eksempler ved hjælp af et fælles mønster „Given-When-Then“ til at repræsentere løsningens faktiske adfærd.

ATDD (Accepttestdrevet udvikling) går et skridt videre og bruger grundlaget for BDD til at implementere kodede accepttest under hensyntagen til forventet adfærd defineret tidligere i scenarierne. ATDD ligner TDD i den forstand, at det generelt automatiserer en række mislykkede accepttest, før der oprettes kode for at få dem til at bestå, og deler en lignende cyklus med den tilgang.

Testværktøjer såsom Behat, Cucumber eller SpecFlow er eksempler på muligheder, der understøtter brugen af eksekverbare specifikationer, hvilket tillader brug af ATDD i projektet og drager fordel af det, der blev defineret ved hjælp af BDD.

14. Automatiseret test

Selvom det ikke formelt defineres som en Agile praksis, er det sund fornuft i samfundet, at automatisering i test er hovedstruktur til at håndtere kvalitetssikring Når det kommer til Agile. Det gør det muligt for andre praksisser som ATDD, TDD, CI, blandt andre at være så effektive som muligt.

Som du måske gætter, automatiseret test er formen for at bruge et separat stykke software til at implementere tests i din software. Enten ved at kontrollere de eksterne grænseflader, såsom mobil eller browserbaseret GUI-test, intern kommunikation mellem lag, som API'er eller endda målrettet præstationsanalyse. Den mere tydelige og vigtigste fordel ved at bruge en sådan tilgang er at undgå gentagelser, der er til stede i manuelle processer, for ikke at nævne sandsynligheden for, at der indføres menneskelige fejl.

Disse fordele kan ses i nogle teststrategier som regressionstest, eller en Kontinuerlig integrationsrørledning. Det er vigtigt at overveje, hvornår og hvad der skal automatiseres, givet den nødvendige indsats for at implementere disse typer tests. Niveauet af automatiseret testdækning, hvad enten det er enhedstest, integrationstest eller mere bredt end-to-end-test, vil kræve forskellige bestræbelser og bringe forskellig værdi afhængigt af det ønskede fokus. Lignende logik gælder, når man beslutter det værktøjssæt, der skal bruges, for hvilket der foreslås en samvittighedsfuld evaluering. Selen, Jasmine og RSpec er eksempler på forskellige testværktøjer, der er tilgængelige til forskellige testformål.

15. Sessionsbaseret test

Sessionsbaseret test er et andet eksempel på en testpraksis, der på trods af at den ikke officielt er defineret som Agile, det har stor adoption inden for den agile verden. Denne teststrategi kan betegnes som en mere struktureret måde at udføre manuel sonderende test på, hvilket dybest set betyder at teste et stykke software uden forudgående design eller definition af testsager, frit at søge fejl. På denne måde følger sessionsbaseret test a“Del for at erobre“ sonderende idé, opdeling af rettidige tests i - gæt hvad? -, sessioner. Det følger et sæt trin (selvforklaret), nemlig: mission, charter, session, sessionsrapport, debriefing og parsing, der hjælper med at dække med lige nok detaljer, hvad der er nødvendigt for at opnå en sådan proces.

Inden for den agile kontekst, flere sessioner kan defineres for hver brugerhistorie, for eksempel at dække mere eller mindre af hver afhængigt af deres tilknyttede risici. En sådan fleksibilitet gør det muligt for denne praksis at klare det hurtige tempo, der findes i Agile. Ud over det høje fokus, der er knyttet til automatisering af tests og test på udviklingssiden, er det også yderst vigtigt at forstå værdi ved siden af manuel test når det gøres effektivt. Det kan nå visse aspekter af softwaren, som kun disse tilgange ikke kan. Både manuelle og automatiserede teststrategier kombineret bør gøre det nødvendige job for at garantere den kvalitetssikring, der er nødvendig for et projekt.

blue arrow to the left
Imaginary Cloud logo

Implementering/Drift og vedligeholdelse

16. DevOps

DevOps står for kombination og samarbejde mellem udviklings- og it-driftsteams for at opnå kontinuerlig og hurtig levering. Denne tilgang får begge sider til at arbejde sammen og berolige vigtigheden af deres kommunikation og integration ved at bruge begrebet Infrastruktur som kode (IaaC). De vigtigste trin for at nå dette er: Infrastrukturautomatisering (at have systemer, konfigurationer og app-implementeringer som kode i det overordnede projekts struktur); Kontinuerlig levering (bygge, test, udrulle apps på en automatiseret og rettidig måde) og Site Reliability Engineering: (betjene systemer, hvilket betyder overvågning og orkestrering, hvilket garanterer, at de understøtter sådanne funktionaliteter fra starten).

På denne måde“DevOps-stige“ nedenfor er indstillet og til stede i projektet.

  • Kodning
  • Bygning
  • Afprøvning
  • Emballage
  • Frigivelse
  • Konfiguration
  • Overvågning
Præsentationsslide med titlen "LADDER STEPS" på mørk baggrund. Viser et pyramidediagram af stablede blå bokse med gul tekst, fra bund til top: CODING, BUILDING, TESTING, PACKAGING, RELEASING, CONFIGURING og MONITORING.

Brug af DevOps viser nogle fordele som betryggende skalerbarhed, pålidelighed, sikkerhed, hurtig levering (og dermed hurtigere tid til markedet, hvis det er nødvendigt), kortere Mean Time To Recovery (MTTR), forebyggelse af risiko for menneskelige fejl, lavere fejlrate på nye udgivelser, blandt andre. DevOps Bliver utvivlsomt betragtet som en komplementær praksis, når du bruger Agile. Det bringer aspekter som hyppig levering, tidlig opdagelse af fejl, højere gennemsigtighed, når det kommer til overvågning af en applikation osv., overvejes del af Agile metoder SAFe.

17. Kontinuerlig implementering

Denne praksis dækker emner, der allerede er beskrevet som en del af Kontinuerlig integration og DevOps, for ikke at nævne sammenhængen med automatiseret test. Derfor, når vi binder alle koncepter sammen, kan vi definere Continuous Deployment som næste trin i kontinuerlig integration. Det gør brug af automatiseret test for at sikre, at en korrekt kode automatisk frigives til produktionsmiljøet, normalt udført ved at drage fordel af DevOps infrastrukturværktøjer. Den automatiserede udgivelse er faktisk en forskel og almindelig misforståelse, når det kommer til kontinuerlig levering, da selv om de deler den samme forkortelse, i sidstnævnte er „gå til produktion“ -handlingen almindeligvis manuel. Kontinuerlig implementering er det komplette end-to-end, automatiserede softwareimplementeringsflow. Det kan implementeres til at finde sted så mange gange som nødvendigt for en given applikation, alt efter forretningsbehov.

De typiske trin, der findes i Continuous Deployment, er:

  • Versionskontrol/kodegennemgang
  • Kontinuerlig integration
  • Konfigurationsstyring
  • Udgivelsesintegration
  • Overvågning af infrastruktur

Disse trin skal give tilstrækkelig garanti for, at det oprettede stykke kode er tilstrækkeligt godt dækket og kontrolleret. Derfor er det modent at nå produktion uden større trusler, hvilket giver mulighed for let at vende denne chance tilbage fra rørledningen, hvis det er nødvendigt. Der er bestemt bekymringer om at automatisere et så vigtigt trin, og de tilknyttede risici er faktisk til stede. Det er også nødvendigt at nævne, at det at have en sådan struktur bygget omkring din applikation medfører omkostninger. Alligevel kan de udbetalinger, som en sådan tilgang medfører, være et kernekendetegn ved en vellykket projekt og softwareløsning.

18. Kanban

Hvis du har nået denne del af artiklen, skal det være rimeligt at antage, at du ved Hvad er Kanban. I en nøddeskal kan det beskrives som en metode til styring af arbejdsgange til visualisering af det arbejde, den styrer. Det blev oprettet i det japanske lean-produktionsfelt, mere præcist Toyota Production System.

For nylig blev hovedidéerne fra denne måde at arbejde på implementeret i softwareindustrien og skabte det, der nu kaldes Kanban-metoden, der bruger som sin primære artefakt: Kanban-brættet. Dette bord er det førende visuelle lager i realtid af information og fremskridt i en given proces, der bringer lys over mulige blokkere og flaskehalse på en ligetil måde. Kolonnerne i tavlen repræsenterer trin i flowet og begrebet Work In Progress (og dets grænse pr. kolonne), som er en værdifuld ressource. Hele ideen er at få dine opgaver (billetter, udgaver, hvad du navngiver det) til at flyde gennem hver kolonne i tavlen.Kanban er en evolutionær metode, der kan implementeres meget let (og gradvist udvikle dens proces og brug) for at få tingene gjort. Også fordi det er intet andet end et ikke-forstyrrende ændringsstyringssystem, Kanban er blevet anvendt i høj grad i drifts- og vedligeholdelsesprojekter. Det drager fordel af de nævnte punkter til at implementere i et on-demand, just in time-miljø, hvor initiativer som Scrum kun medfører omkostninger og spild.

Kanban er ikke strengt defineret som en agil praksis. Imidlertid, det bruges til at implementere Agile og Lean principper Samtidig øges både medarbejdernes og kundetilfredsheden.

Præsentationsslide med titlen "Example of a Kanban Board". Viser en grå tavle med kolonnerne Backlog, In Progress, Peer Review, In Test, Done og Blocked, som indeholder gule sticky notes, samt en "Fast Track/Defect"-række nederst.

Vedtagelse af agil praksis i en livscyklus for softwareudvikling

Målet med denne artikel var at præsentere reelle muligheder, der kan bruges i enhver SDLC (Software Development Life Cycle) med et stærkt fokus på Agile praksis.

Denne tilgang er kommet for at blive, og sådanne forslag er blevet brugt, diskuteret og forbedret gennem årene. De løser almindelige problemer, der er til stede i den daglige del af softwareudviklingsprojekter.

På trods af at nogle af de praksisser er mere eller mindre almindelige og kendte, vurderer vi hos Imaginary Cloud først hvert scenarie i vores projekter. Derefter anvender vi praksis og teknikker, der gør det muligt for de løsninger, vi bygger, at nå det næste niveau og opnå vellykkede leverancer.

Baseret på vores teams ekspertise kan vi definere og anbefale, hvordan man bedst udnytter Agile-praksis, og hvornår man skal anvende dem i din livscyklus webapplikation eller UI/UX Design projekter.

Tror du, du kunne have brug for en hånd? Kom i kontakt!

Grow your revenue and user engagement by running a UX Audit! - Book a call

Fandt du denne artikel nyttig? Du kan måske også lide disse!

blue arrow to the left
Imaginary Cloud logo
Lucas Barbosa
Lucas Barbosa

Lidenskabelig omkring software ting og agile. Kan let findes ved madlavning, spille volleyball eller bruge lidt tid på videospil.

Read more posts by this author

People who read this post, also found these interesting:

Dropdown caret icon