Agilní vývoj softwaru 101

Autor: Judy Howell
Datum Vytvoření: 26 Červenec 2021
Datum Aktualizace: 23 Červen 2024
Anonim
Agilní vývoj softwaru 101 - Technologie
Agilní vývoj softwaru 101 - Technologie

Obsah


Odnést:

Tato metoda vývoje softwaru podporuje spolupráci a flexibilitu při poskytování vysoce kvalitního produktu.

Ve světě softwarového inženýrství a vývoje aplikací se kolem Agile objevilo mnoho buzzů. Agilní není koncept, ale myšlení. Jak název napovídá, soustředí se na flexibilitu a dynamiku. Tato metodika také odstraňuje izolaci mezi fázemi vývoje softwaru a povzbuzuje vývojový tým ke spolupráci s analytiky kvality. Zdůrazňuje také zapojení zákazníků do vývoje, konstrukce a dodávky vysoce kvalitního produktu. Zde se dobře podívejte na Agile, jak to funguje a na některé doporučené postupy pro tuto populární metodu vývoje softwaru.

Krátký popis životního cyklu vývoje softwaru

Životní cyklus vývoje softwaru (SDLC) je proces vytváření softwarových řešení nebo modifikace existujících struktur určených k řešení konkrétního problému. Zahrnuje různé kroky, které jsou sledovány v logickém pořadí. V tradičních modelech SDLC se jedná o kroky, které se sledují jeden po druhém a obvykle se provádějí izolovaně:


  1. Shromažďování požadavků od klientů
  2. Analýza systému a proveditelnosti
  3. Návrh a modelování
  4. Kódování nebo implementace
  5. Testování
  6. Nasazení a dodání
  7. Požadavky na údržbu a změnu

V typickém cyklu vývoje softwaru jsou skuteční uživatelé nebo klienti zapojeni do procesu shromažďování požadavků a poté během testování beta verze. Problém s tímto tradičním modelem je však v tom, že údržbová část cyklu se stává obtížnou a poněkud nákladnou záležitostí. Mnohokrát v systému neexistuje prostor pro vylepšení nebo změny. V nejhorším případě není software, který byl zkonstruován nebo vyvinut, v souladu se skutečnými specifikacemi a očekáváními zákazníků, což znamená, že vývojový tým bude možná muset celý proces začít znovu.


Proč se agilní vývoj liší

Nejběžnější tradiční modely SDLC - model vodopádu, model rychlé aplikace, iterační model, spirálový model atd. - mají svůj vlastní soubor výhod a nevýhod. Trvalo věky, než mohli lidé skutečně analyzovat, jak realistické jsou tyto modely. Perfektně se hodí do ideálních scénářů, ale vždycky byly praktické, pokud jde o aplikace v reálném světě. V důsledku toho čelily týmy pro vývoj softwaru mnoha výzvám. Mezi omezení konvenčních modelů SDLC patří:

  • Neumožňují změnu požadavků v pozdějších fázích, protože jsou zmraženy v dokumentu specifikace softwarových požadavků. V některých případech jsou očekávání uživatelů nezměněná nebo nepochopená.
  • Koncoví uživatelé nevidí systém, dokud není kompletní. To poskytuje velmi malý prostor pro vytváření návrhů a změn.
  • Tradiční SDLC může vytvořit obrovskou komunikační mezeru mezi vývojáři a testery, protože se jedná o oddělené fáze a neexistuje žádná spolupráce mezi oběma stranami.
  • Testování bílé skříňky nelze provést efektivně.

Použití Agile řeší mnoho z těchto problémů, protože spíše než postupný proces, působí spíše jako filozofie a rámec, jehož cílem je pomáhat týmům spolupracovat, reagovat na změny a vytvářet hotový produkt, který zahrnuje více vstupů od všech strany, včetně uživatelů.

Agilní praktiky

Vznik metodiky Agile není ničím jiným než revoluční reformou v metodice vývoje softwaru, protože poskytuje projektovým týmům dostatek prostoru k tomu, aby byli kreativní a všestranní a přitom stále převzali kolektivní vlastnictví každé fáze produktu. Tím, že následují Agilní cestu, jsou jednotliví účastníci týmu vývoje softwaru schopni kondici své mysli přijmout nejistotu, vyrovnat se se změnami a vybudovat lepší produkt jako proces, spíše než v diskrétních, nepřipojených krocích.

Přestože neexistuje úplný seznam agilních principů, existují určité praktiky, které Agile propaguje. Tyto zahrnují:

  1. Testem řízený vývoj (TDD)
    V ideálním případě by vývojáři měli nejprve napsat testovací případy pro část funkčnosti, pro kterou budou kódovat. Tím se zajistí kvalitní kód, který je za výjimečných podmínek méně pravděpodobný. Tento proces také pomáhá zajistit, aby byly řešeny uživatelské specifikace.
  2. Párové programování
    V agilním vývoji programátoři obvykle pracují na stejném problému ve dvojicích, kde jedna osoba píše kód (ovladač) a druhá revizi kódu a poskytuje nápady a návrhy (navigátor). To zvyšuje produktivitu a zkracuje čas potřebný k revizi kódu.
  3. Změna kódu
    Refaktoring kódu zahrnuje rozdělení kódu na menší a jednodušší moduly, které mohou (a měly by) existovat nezávisle v ideálním scénáři. Tím se do značné míry zlepší čitelnost, testovatelnost a udržovatelnost kódu.
  4. Aktivní účast skutečných zúčastněných stran
    V pravidelných intervalech v určitém časovém období (dále jen „ss“) by klienti měli dostávat významný funkční prototyp softwaru. To umožňuje vývojářům získat zpětnou vazbu o tom, co budují, jak postupují.
  5. Požadavky považujte za prioritní zásobník
    V Agile je nezbytné kategorizovat požadavky podle jejich důležitosti. To může zahrnovat implicitní i explicitní očekávání zákazníků ohledně vyvíjeného softwarového produktu. Tým pro vývoj softwaru by měl společně odhadnout čas a zdroje, které investují do implementace funkce, a mapovat to na základě požadavků uživatele a relativního pořadí, v jakém budou řešit každou část projektu.
  6. Regresní testování
    Regresní testování zahrnuje testování funkčnosti celé aplikace po přidání nové funkce nebo úpravě stávající funkce v kódu. To pomáhá zajistit, aby změny neporušily existující kód.

Proč jít agilní?

Agile předepisuje určité postupy, ale nevynucuje je v týmu pro vývoj softwaru. Koneckonců, pokud není prostor pro úpravy a odchylky, je účel Agile z velké části poražen. Začlenění i několika aspektů agilního vývoje do projektu může pomoci týmům pro vývoj softwaru vyrovnat se s neočekávanými výzvami a v konečném důsledku efektivněji vytvořit lepší produkt.

Žádné chyby, žádný stres - Váš průvodce krok za krokem k vytváření softwaru pro změnu života, aniž by došlo ke zničení vašeho života

Nemůžete zlepšit své programovací schopnosti, když se nikdo nestará o kvalitu softwaru.