De betekenis van iteratief ontwikkelen

De betekenis van iteratief ontwikkelen

Iteratief ontwikkelen, een term die je vaak hoort in de wereld van softwareontwikkelaars en designers. Maar wat betekent het eigenlijk? In dit artikel leggen we het je uit.

In deze blog lees je:

  • Wat de betekenis van iteratief ontwikkelen is
  • Wat iteratief werken inhoudt
  • Waaruit een iteratief proces bestaat
  • Wat het verschil is tussen iteratief en incrementeel werken
  • Waarom Trive met iteratieve sprints werkt

Iteratief werken kan op meerdere manieren

Binnen het ontwerpen, of het nu om product of software gaat, zijn er talloze werkmethodes aan te wijzen. Echter zijn er twee stromingen waar deze methodes onder vallen, namelijk:

  • Iteratief
  • Incrementeel

Op het eerste gezicht lijken beide methodes op elkaar, maar er zit wel degelijk een verschil tussen beiden. Waar het verschil in zit? Dat leggen we je graag uit.

Wat is de betekenis van iteratieve ontwikkeling?

Iteratieve ontwikkeling is een benadering van softwareontwikkeling die het proces van het ontwikkelen van een grote applicatie in kleinere delen opsplitst. Elk onderdeel, een ‘iteratie’ genoemd, vertegenwoordigt het hele ontwikkelingsproces en bevat stappen voor de planning, het ontwerp, de ontwikkeling en het testen van de applicatie. Deze stappen leggen we later in het artikel een voor een uit.

Bij iteratief ontwikkelen wordt op korte termijn een eerste voorlopige versie van het systeem, design, product, of branding opgeleverd. Op deze versie kunnen belangrijke stakeholder en gebruikers vrijuit schieten, waardoor ontwikkelaars snel te weten komen of je op de juiste weg zitten. Daarnaast hebben opdrachtgevers een duidelijk beeld van hoe het project er voor staat. Aan de hand van de gegeven feedback wordt het project constant aangepast.

Bij iteratief ontwikkelen is er van tevoren alleen een globaal idee van het uiteindelijke resultaat, maar er is nog geen idee van hoe dit resultaat moet worden behaald. Het antwoord op deze vraag krijg je gaandeweg aan de hand van de gegeven feedback. Goed om te onthouden: het is niet nodig om het product bij elke iteratie tot in de perfectie af te hebben. Het is mooi meegenomen als dat het geval is, maar niet de verwachting. De verwachting is namelijk dat het product bij elke iteratie een stukje verbeterd wordt.

Voorbeeld

Stel dat je een e-commercewebsite bouwt met behulp van een iteratief proces. De eerste release heeft een uitgeklede versie van alle vereiste functionaliteiten, namelijk: zoeken, productinformatie, een winkelmandje, afrekenen, favorieten en klantrecensies.

Bij de tweede iteratieve release zou het team een ​​deel van de bestaande basisfunctionaliteit verbeteren, rekening houdend met feedback van stakeholders of klanten. Bij elke volgende iteratieve release worden nieuwe ideeën en vereisten toegevoegd of bepaalde functionaliteiten worden verwijderd.

Wat is incrementeel werken?

Incrementeel werken was jarenlang de standaard voor ontwerpers. Deze stroming gaat uit van een duidelijk probleem. In tegenstelling tot iteratief werken, weet je bij incrementeel werken van tevoren exact wat je gaat maken. Via een grondige analyse wordt er (rechtstreeks) naar een oplossing toegewerkt. Er is zeker ruimte voor feedback gedurende het ontwikkelproces, maar vergeleken met het iteratief ontwikkelen wordt er weinig feedback van stakeholders gevraagd. Bij iteratief werken wordt er daarentegen stap voor stap, en met veel feedback momenten toegewerkt naar een eindproduct. Elke nieuwe increment bouwt voort op de bestaande vrijgegeven functionaliteit.

Voorbeeld

Stel dat je dezelfde e-commercewebsite als bij het vorige voorbeeld wilt bouwen, maar dan nu met behulp van incrementele ontwikkeling. Je weet van te voren dat het uiteindelijke product de functies zoeken, productinformatie, een winkelmandje, afrekenen, favorieten en klantrecensies heeft.

Voor de eerste increment bouwt het team de basisfunctionaliteit om een ​​product te kopen. Het omvat zoeken, productinformatie, producten toevoegen aan een winkelmandje en afrekenen. Dit eerste segment wordt pas vrijgegeven als het voltooid is. De tweede vrijgegeven uitbreiding bouwt voort op die basisfunctionaliteit en zou nog een mogelijkheid toevoegen, zoals: favorieten. Het zou worden vrijgegeven wanneer de favorietenfunctionaliteit is voltooid. De derde vrijgegeven stap voegt klantrecensies toe zodra die voltooid zijn, enzovoort.

Wat is Agile ontwikkelen?

Je wordt met de term om de oren geslagen: Agile werken. In de basis is een Agile een submethode van iteratief werken. De basis voor Agile werd gelegd in 2001. Tijdens een bijeenkomst van 17 softwareontwikkelaar werd het Manifesto for Agile Software Development opgesteld en daar zijn we bij Trive maar wat blij mee. Het idee achter Agile is om het risico op mislukking van een project zo klein mogelijk te maken. Een project wordt opgedeeld in kleinere stukjes, die volgens herhaalde cycli worden uitgevoerd. Bij het Agile ontwikkelen van software, worden incrementeel en iteratief toegepast. Sommige onderdelen worden toegevoegd (incrementeel) en andere functionaliteiten worden verder verbeterd (iteratief). Ontwerpers leren zo van de ervaring die is opgedaan bij het ontwikkelen van voorgaande versies van de software - superefficiënt dus!

Wat is een iteratief proces?

Het iteratieve ontwikkelproces is cyclisch; in tegenstelling tot een watervalmodel, waarbij de ontwikkeling regelmatig en vloeiend naar beneden loopt, volgt het geen rigide proces. Zodra je klaar bent met de initiële planning, die niet per se goed gedefinieerd hoeft te zijn, worden de rest van de stappen voor elke iteratie keer op keer uitgevoerd met uitgebreide tests totdat de implementatiefase is bereikt. Bij elke stap wordt een beslissing genomen om te bepalen of het geproduceerde resultaat wordt bewaard of weggegooid voor de volgende cyclus. Dit wordt ook wel incrementele prototyping genoemd omdat de software wordt ontwikkeld door tijdens elke iteratie aan kleinere brokken te werken.

Om het makkelijker te maken hebben we hieronder de stappen van het proces van iteratief ontwikkelen opgesomd.

Stap 1: planning en analyseren

De eerste stap van iteratief ontwikkelen is de planning, waarbij de ontwikkelaars en klanten bij elkaar zitten om de vereisten, de vereisten van het bedrijf en de stakeholders te identificeren. In dit stadium is het niet nodig om de risico's die aan het project zijn verbonden te identificeren, omdat deze stap zal worden herhaald voor de volgende iteratie. Pas als je klaar bent met deze stap, ga je door naar de volgende. Dit is hoe de iteratief ontwikkelen werkt.

Stap 2: ontwerpen

Zodra de fase van het plannen en analyseren is voltooid, begint de ontwerpfase. Tijdens de ontwerpfase worden eventuele technische vereisten vastgesteld die zullen worden gebruikt om aan de behoeften van de analysefase te voldoen.

Stap 3: implementatie

Zowel in de implementatie als in een testfase wordt het systeem ontwikkeld door het coderen en bouwen van de user interface die vervolgens wordt getest in de testfase. Houd er rekening mee dat implementatie en testen (deze stap bespreken we na deze stap) soms na elkaar worden herhaald om ervoor te zorgen dat er geen fouten meer zijn. Als je twijfelt of u een deel van bijvoorbeeld een code onjuist hebt geschreven, kun je na het testen de code herschrijven en doorgaan naar de volgende iteratie.

Stap 4: testen

De volgende stap is het doorlopen van een reeks testprocedures om mogelijke bugs of problemen te identificeren en te lokaliseren. Dit kan gedaan worden door middel van het product door de doelgroep te laten testen. In de fase na de productimplementatie wordt de beoordelingsfase uitgevoerd om het gedrag en de validiteit van het ontwikkelde product te controleren. Als er een fout wordt gevonden, begint het proces opnieuw.

Stap 5: evaluatie

In de beoordelingsfase wordt de software gecontroleerd. Vervolgens worden verdere vereisten besproken en beoordeeld voor een update in de volgende iteratie. Zodra alle stappen voor elke iteratie zijn gevolgd, evalueer je uiteindelijk het hele project. Je draagt ​​het project over aan de klant, die het eindproduct zal beoordelen.

Dit is de eerste iteratiecyclus waarin je de basisversie hebt ontwikkeld. Om verdere veranderingen in het eindproduct op te nemen, ga je terug naar stap 1 en volg je elke stap opnieuw voor de volgende iteratiecyclus. Het proces wordt herhaald totdat er geen verbeteringen meer nodig zijn. Nadat alle iteraties met succes zijn voltooid, is het project klaar.

Wanneer gebruik je een iteratief model?

Nu we de wetenschap achter het iteratieve procesmodel kennen, is de belangrijke vraag die opkomt wanneer je het iteratief model kan gebruiken. Je gebruikt het wanneer:

  • Een softwaretoepassing is groot
  • Vereisten zijn niet goed gedefinieerd, maar gemakkelijk te begrijpen
  • Het is nodig om in de toekomst eventuele vereisten te wijzigen
  • De bronnen voor enkele iteraties zijn niet beschikbaar op het moment van gebruik, maar kunnen in latere iteraties worden gebruikt.

Om de beste methode voor jouw software te kiezen, hebben we een aantal van de voor- en nadelen van het model op een rij gezet.

Waarom wij bij Trive iteratief ontwikkelen

Iteratieve ontwikkeling is een levenscyclusmodel voor softwareontwikkeling dat met kleine iteraties werkt om uiteindelijk efficiëntie en hoogwaardige software te garanderen. Als je elke stap van dit model goed volgt, krijg je een product dat uiteindelijk beter aansluit bij de gewenste functionaliteit, dit in tegenstelling tot software die is ontwikkeld met het meer rigide watervalmodel.

Door te werken met iteratieve sprints (met sprints bedoelen we gelijkwaardige tijdsblokken die uitbouwen op hetzelfde product). creëren we samen producten die klaar zijn voor de toekomst. Bij Trive ontwikkelen we elk product vanuit deze iteratieve gedachten. Wij ontwikkelen met én voor mensen, constante feedback maakt dit mogelijk. De mening van onze opdrachtgevers en eindgebruikers, gecombineerd met onze experts, zorgt ervoor dat we dat maken wat nodig is.

Maar waarom iteratief? Omdat je nooit echt weet wat je wilt (en je dus nooit van tevoren weet wat voor een product je wilt hebben). Het analyseren van alles kost daarbij ook enorm veel tijd, tijd die je beter kan investeren in iteraties met verschillende feedbackmomenten bij de gebruiker. Daarnaast kan feedback van gebruikers ervoor zorgen dat de software of product weer aangepast moet worden.

We helpen je graag verder

We hopen dat we al je vragen over het iteratieve proces hebben kunnen beantwoorden. Mocht je toch nog vragen hebben, neem dan gerust contact met ons op, Trive helpt je graag verder.

Deel dit artikel

Wil jij nieuwe diensten ontwikkelen?

Of je nu een vraag hebt over features, prijzen, of een demo nodig hebt, ons team staat klaar om al je vragen te beantwoorden!