Agile softwareudvikling 101

Forfatter: Judy Howell
Oprettelsesdato: 26 Juli 2021
Opdateringsdato: 23 Juni 2024
Anonim
5 Useful Trello Power ups with Scott Friesen | Simpletivity
Video.: 5 Useful Trello Power ups with Scott Friesen | Simpletivity

Indhold


Tag væk:

Denne softwareudviklingsmetode tilskynder til samarbejde og fleksibilitet til at hjælpe med at levere et produkt af høj kvalitet.

Der har været en masse brummer omkring Agile i software-engineering og applikationsudviklingsverdenen. Agile er ikke et begreb, men et tankesæt. Som navnet antyder koncentrerer det sig om at være fleksibel og dynamisk. Denne metodologi fjerner også isoleringen mellem faser af softwareudvikling og opfordrer udviklingsholdet til at samarbejde med kvalitetsanalytikere. Det understreger også kunders engagement i at udvikle, bygge og levere et produkt af høj kvalitet. Her skal du tage et kig på Agile, hvordan det fungerer og nogle af de bedste fremgangsmåder til denne populære softwareudviklingsmetode.

En kort beskrivelse af livscyklus til softwareudvikling

Softwareudviklingslivscyklus (SDLC) er processen med at skabe softwareløsninger eller ændre de eksisterende strukturer beregnet til at imødekomme et bestemt problem. Det omfatter forskellige trin, der følges i en logisk rækkefølge. I traditionelle SDLC-modeller er disse trin, der følges efter hinanden, og som normalt udføres isoleret:


  1. Krav indsamling fra klienterne
  2. System- og gennemførlighedsanalyse
  3. Design og modellering
  4. Kodning eller implementering
  5. Test
  6. Implementering og levering
  7. Vedligeholdelses- og ændringsanmodninger

I en typisk softwareudviklingscyklus er de faktiske brugere eller klienter involveret i processen med indsamling af krav og derefter under betatest. Problemet med denne traditionelle model er imidlertid, at vedligeholdelsesdelen af ​​cyklussen bliver en vanskelig og temmelig dyr affære. Mange gange er der ikke plads til forbedringer eller ændringer i systemet. I værste fald er den software, der er konstrueret eller udviklet, ikke i overensstemmelse med de faktiske kundespecifikationer og forventninger, hvilket betyder, at udviklingsholdet muligvis skal starte hele processen igen.

Hvorfor agile udviklinger er forskellige

De mest almindelige traditionelle modeller af SDLC - vandfaldsmodellen, hurtig anvendelsesmodel, iterativ model, spiralmodel osv. - har deres eget sæt fordele og ulemper. Det tog aldre, før folk faktisk kunne analysere, hvor realistiske disse modeller var. De passer perfekt ind i ideelle scenarier, men de var altid praktiske, når det gjaldt virkelige applikationer. Som et resultat stod softwareudviklingshold over for en række udfordringer. Nogle af begrænsningerne i konventionelle SDLC-modeller inkluderer:


  • De tillader ikke, at krav ændres i de senere stadier, fordi disse er frosset i softwarekravets specifikationsdokument. I visse tilfælde går brugerforventningerne ikke fast eller misforstås.
  • Slutbrugerne ser ikke systemet, før det er komplet. Dette giver meget lidt plads til at komme med forslag og ændringer.
  • Traditionel SDLC kan skabe et stort kommunikationsgap mellem udviklere og testere, da de er separate faser, og der er ikke noget samarbejde mellem de to parter.
  • Hvidboks-testning kan ikke udføres effektivt.

Brug af Agile løser mange af disse problemer, fordi det snarere end en trinvis proces fungerer som mere en filosofi og ramme, der sigter mod at hjælpe holdene samarbejde, reagere på forandringer og opbygge et færdigt produkt, der indeholder flere input fra alle parter, inklusive brugere.

Agile praksis

Fremkomsten af ​​Agile-metodik er ikke mindre end en revolutionerende reform i softwareudviklingsmetodikken, fordi den giver plads nok til, at projektgrupperne er kreative og alsidige, mens de stadig tager kollektivt ejerskab af hver fase af produktet. Ved at følge Agile-stien er individuelle deltagere i softwareudviklingsteamet i stand til at konditionere deres sind til at omfavne usikkerhed, håndtere ændringer og opbygge et bedre produkt som en proces snarere end i diskrete, ubundne trin.

Selvom der ikke findes nogen omfattende liste over Agile-principper, er der visse fremgangsmåder, som Agile formerer. Disse inkluderer:

  1. Testdrevet udvikling (TDD)
    Ideelt set bør udviklere først skrive testcases for det stykke funktionalitet, de skal kode for. Dette vil sikre kode af god kvalitet, som mindre sandsynligt går i stykker under ekstraordinære forhold. Denne proces hjælper også med at sikre, at brugerspecifikationer er blevet adresseret.
  2. Parprogrammering
    I Agile-udvikling arbejder programmerere generelt med det samme problem i par, hvor den ene person skriver koden (driveren) og den anden gennemgår koden og giver ideer og forslag (navigator). Dette forbedrer produktiviteten og reducerer den tid, der kræves for at gennemgå kode.
  3. Code Refactoring
    Code refactoring involverer opdeling af koden i mindre og enklere moduler, der kan (og bør) eksistere uafhængigt af det ideelle scenarie. Dette forbedrer kodens læsbarhed, testbarhed og vedligeholdelighed i vid udstrækning.
  4. Aktiv deltagelse fra faktiske interessenter
    Efter regelmæssige intervaller af en bestemt tidsperiode (benævnt "ss"), skal klienter modtage en betydelig arbejdsprototype af softwaren. Dette giver udviklere mulighed for at få feedback om, hvad de bygger, mens de går.
  5. Behandl krav som en prioriteret stak
    I Agile er det vigtigt at kategorisere kravene på grundlag af deres betydning. Dette kan omfatte både implicitte såvel som eksplicitte kundeforventninger til det softwareprodukt, der udvikles. Softwareudviklingsteamet bør samlet estimere tiden og ressourcerne de vil investere i implementering af funktionen og kortlægge det baseret på brugerkrav og den relative rækkefølge, som de skal tackle hver del af projektet.
  6. Regressionstest
    Regressionstest involverer test af funktionaliteten af ​​en hel applikation efter tilføjelse af en ny funktion eller ændring af den eksisterende funktionalitet i koden. Dette hjælper med at sikre, at ændringerne ikke har brudt den eksisterende kode.

Hvorfor gå agile?

Agile ordinerer visse fremgangsmåder, men det håndhæver dem ikke på et softwareudviklingshold. Når alt kommer til alt, hvis der ikke er plads til justeringer og afvigelser, er formålet med Agile i vid udstrækning besejret. At inkorporere endda et par aspekter af Agile-udvikling i et projekt kan hjælpe softwareudviklingshold med at klare uventede udfordringer og i sidste ende opbygge et bedre produkt på en mere effektiv måde.

Ingen fejl, ingen stress - Din trinvis vejledning til oprettelse af livsændrende software uden at ødelægge dit liv

Du kan ikke forbedre dine programmeringsevner, når ingen er interesseret i softwarekvalitet.