Agile Softwareontwikkeling 101

Schrijver: Judy Howell
Datum Van Creatie: 26 Juli- 2021
Updatedatum: 23 Juni- 2024
Anonim
What is Agile?
Video: What is Agile?

Inhoud


Afhaal:

Deze software-ontwikkelingsmethode stimuleert samenwerking en flexibiliteit om een ​​kwalitatief hoogstaand product te leveren.

Er is veel gezoem rond Agile geweest in de wereld van software engineering en applicatie-ontwikkeling. Agile is geen concept, maar een mentaliteit. Zoals de naam al doet vermoeden, concentreert het zich op flexibel en dynamisch zijn. Deze methode verwijdert ook de isolatie tussen de fasen van softwareontwikkeling en moedigt het ontwikkelingsteam aan om samen te werken met kwaliteitsanalisten. Het benadrukt ook de betrokkenheid van klanten bij het ontwikkelen, bouwen en leveren van een kwalitatief hoogwaardig product. Bekijk hier Agile, hoe het werkt en enkele best practices voor deze populaire methode voor softwareontwikkeling.

Een kort overzicht van de levenscyclus van softwareontwikkeling

De software-ontwikkelingslevenscyclus (SDLC) is het proces van het creëren van software-oplossingen of het wijzigen van de bestaande structuren die bedoeld zijn om een ​​bepaald probleem aan te pakken. Het omvat verschillende stappen, die in een logische volgorde worden gevolgd. In traditionele SDLC-modellen zijn dit de stappen die na elkaar worden gevolgd en meestal afzonderlijk worden uitgevoerd:


  1. Vereisten verzamelen van de klanten
  2. Systeem- en haalbaarheidsanalyse
  3. Ontwerp en modellering
  4. Codering of implementatie
  5. testen
  6. Implementatie en levering
  7. Onderhouds- en wijzigingsverzoeken

In een typische cyclus van softwareontwikkeling zijn de daadwerkelijke gebruikers of klanten betrokken bij het verzamelen van vereisten en vervolgens bij bètatests. Het probleem met dit traditionele model is echter dat het onderhoudsgedeelte van de cyclus een moeilijke en vrij dure aangelegenheid wordt. Vaak is er geen ruimte voor verbeteringen of wijzigingen binnen het systeem. In het ergste geval is de software die is ontwikkeld of ontwikkeld niet in overeenstemming met de daadwerkelijke klantspecificaties en verwachtingen, wat betekent dat het ontwikkelingsteam mogelijk het hele proces opnieuw moet starten.

Waarom Agile-ontwikkelingen anders

De meest voorkomende traditionele modellen van SDLC - het watervalmodel, snel applicatiemodel, iteratief model, spiraalmodel, enz. - hebben hun eigen voor- en nadelen. Het heeft eeuwen geduurd voordat mensen konden analyseren hoe realistisch deze modellen waren. Ze passen perfect in ideale scenario's, maar ze waren niet altijd praktisch als het ging om toepassingen in de echte wereld. Het gevolg was dat softwareontwikkelteams voor veel uitdagingen stonden. Enkele beperkingen van conventionele SDLC-modellen zijn:


  • Hiermee kunnen vereisten in een later stadium niet worden gewijzigd, omdat deze worden bevroren in het specificatiedocument voor softwarevereisten. In bepaalde gevallen blijven de verwachtingen van de gebruikers onuitgesproken of verkeerd begrepen.
  • De eindgebruikers zien het systeem pas als het compleet is. Dit biedt zeer weinig ruimte voor het doen van suggesties en wijzigingen.
  • Traditionele SDLC kan een enorme communicatiekloof creëren tussen ontwikkelaars en testers, omdat het afzonderlijke fasen zijn en er geen samenwerking is tussen de twee partijen.
  • White box-testen kunnen niet effectief worden uitgevoerd.

Het gebruik van Agile lost veel van deze problemen op, omdat het in plaats van een stapsgewijs proces meer fungeert als een filosofie en raamwerk dat is bedoeld om teams te helpen samenwerken, te reageren op verandering en een afgewerkt product te bouwen dat meer input van iedereen omvat partijen, inclusief gebruikers.

Agile praktijken

De opkomst van Agile-methodologie is niet minder dan een revolutionaire hervorming van de software-ontwikkelingsmethodologie, omdat het voldoende ruimte biedt voor de projectteams om creatief en veelzijdig te zijn en toch collectief eigendom blijft van elke fase van het product. Door het Agile-pad te volgen, kunnen individuele deelnemers in het software-ontwikkelingsteam hun geest conditioneren om onzekerheid te omarmen, om te gaan met veranderingen en een beter product als een proces te bouwen, in plaats van in afzonderlijke, losse stappen.

Hoewel er geen uitgebreide lijst met Agile-principes bestaat, zijn er bepaalde praktijken die Agile propageert. Deze omvatten:

  1. Test Driven Development (TDD)
    Idealiter moeten ontwikkelaars eerst testcases schrijven voor het stuk functionaliteit waarvoor ze gaan coderen. Dit zorgt voor code van goede kwaliteit, die in uitzonderlijke omstandigheden minder snel breekt. Dit proces helpt ook om ervoor te zorgen dat gebruikersspecificaties zijn aangepakt.
  2. Paar programmeren
    In Agile-ontwikkeling werken programmeurs over het algemeen in paren aan hetzelfde probleem, waarbij de ene persoon de code schrijft (stuurprogramma) en de andere de code bekijkt en ideeën en suggesties geeft (navigator). Dit verhoogt de productiviteit en vermindert de tijd die nodig is om code te herzien.
  3. Code refactoring
    Coderefactoring omvat het opsplitsen van de code in kleinere en eenvoudigere modules die onafhankelijk kunnen (en moeten) bestaan ​​in het ideale scenario. Dit verbetert de leesbaarheid, testbaarheid en onderhoudbaarheid van de code in grote mate.
  4. Actieve deelname van daadwerkelijke belanghebbenden
    Na regelmatige tussenpozen van een bepaalde periode (aangeduid als "ss"), moeten klanten een aanzienlijk werkend prototype van de software ontvangen. Hierdoor kunnen ontwikkelaars feedback krijgen over wat ze bouwen terwijl ze bezig zijn.
  5. Behandel vereisten als een stapel met prioriteit
    In Agile is het essentieel om vereisten te categoriseren op basis van hun belang. Dit kan zowel impliciete als expliciete verwachtingen van de klant zijn voor het softwareproduct dat wordt ontwikkeld. Het software-ontwikkelingsteam moet gezamenlijk een schatting maken van de tijd en middelen die ze gaan investeren in de implementatie van de functie, en deze in kaart brengen op basis van gebruikersvereisten en de relatieve volgorde waarin ze elk onderdeel van het project zullen aanpakken.
  6. Regressietesten
    Regressietesten omvat het testen van de functionaliteit van een hele applicatie na het toevoegen van een nieuwe functie of het wijzigen van de bestaande functionaliteit in de code. Dit helpt ervoor te zorgen dat de wijzigingen de bestaande code niet hebben verbroken.

Waarom Agile gaan?

Agile schrijft bepaalde werkwijzen voor, maar legt deze niet op aan een softwareontwikkelteam. Immers, als er geen ruimte is voor aanpassingen en afwijkingen, wordt het doel van Agile grotendeels verslagen. Door zelfs maar een paar aspecten van Agile-ontwikkeling in een project te integreren, kunnen software-ontwikkelingsteams onverwachte uitdagingen het hoofd bieden en uiteindelijk een beter product op een efficiëntere manier bouwen.

Geen bugs, geen stress - Uw stapsgewijze handleiding voor het creëren van levensveranderende software zonder uw leven te vernietigen

Je kunt je programmeervaardigheden niet verbeteren als niemand om softwarekwaliteit geeft.