Extreme Programming (XP)

Extreme Programming (XP) - toolshero

Word lid van ons e-learning platform en boost your skills! Bekijk de mogelijkheden

In dit artikel wordt Extreme Programming (XP) praktisch uitgelegd. Na het lezen begrijp je de basis van deze krachtige tool voor internettechnologie.

Wat is Extreme Programming (XP)?

Extreme Programming (XP) is een softwareontwikkelingsraamwerk bestaande uit verschillende agile-technieken. Het principe wordt gebruikt om de kwaliteit van softwareoplossingen te verbeteren, en daarnaast om gericht in te spelen op de wensen en eisen van de klant. Extreme Programming bestaat onder anderen uit verschillende principes en best practices die in het verleden duidelijk effectief bleken in programmaontwikkeling.

Deze tak van sport wordt software-engineering genoemd. Net als met elke andere vorm van engineering en commerciële bedrijfsvoering, moeten IT-professionals nieuwe manieren vinden om te voldoen aan de alsmaar veranderende eisen van de consument. Om hieraan te kunnen voldoen moet een organisatie nieuwe manieren vinden om deze veranderingen te monitoren, en ontwikkelingen eenvoudig door te voeren.

Ontstaan van Extreme Programming

17 specialisten op het gebied van software stelden in 2001 de Agile projectmanagementfilosofie op. Deze principes waren gericht op flexibiliteit, snelheid en samenwerking voor het ontwikkelen van nieuwe softwareoplossingen. Deze principes werden uiteengezet in het Agile Manifesto. Extreme Programming (XP) is een van deze Agile raamwerken. De nadruk van deze methode wordt gelegd op technische aspecten van softwareontwikkeling, wat het duidelijk anders van aard maakt dan de andere benaderingen.

Het was software-engineer Ken Beck die XP introduceerde in de jaren negentig. Zijn doel was om nieuwe manieren te vinden om snel hoogwaardige softwareoplossingen te leveren die de wensen en eisen van de consument bevredigen. In 1999 verfijnde hij de methodiek in zijn boek Extreme Programming Explained: Embrace Change.

Extreme Programming vandaag de dag

Extreme Programming (XP) werd met de nodige belangstelling ontvangen in de softwaregemeenschappen eind jaren negentig van de vorige eeuw en het begin van de eenentwintigste eeuw. Het prijzen van deze benadering was echter van korte duur. Door de hoge mate van discipline die vereist is voor het succesvol uitvoeren van softwareaanpassingen met Extreme Programming (XP), werden veel van deze praktijken als rigide beschouwd, en gedeprecieerd en niet voltooid. In deze jaren zijn andere agile-methoden ook ontwikkeld, en zo blijft XP ook verbeteren. In de tweede editie van Extreme Programming Explained, voegde Beck meer praktijken en principes toe, waarbij hij ook onderscheid maakte tussen primaire en bijbehorende zaken.

Wat zijn de waardes van Extreme Programming?

Extreme Programming (XP) is een reeks van technische praktijken en maatregelen. Ontwikkelaars moeten er alles aan doen om de uitvoering van deze praktijken tot een succes te brengen. Dat is waar de term ‘extreem’ erin komt. Om te begrijpen wat het betekent voor managers om boven zichzelf uit te stijgen, is het belangrijk dat de principes van Extreme Programming (XP) begrepen worden. Deze staan hieronder toegelicht.

Simpliciteit

Eenvoud is een van de speerpunten van Extreme Programming. Eenvoud wordt nagestreefd door jezelf constant af te vragen: wat is de eenvoudigste oplossing die zal werken’? Eenvoud is belangrijk omdat het verspilling (LEAN) voorkomt. Alleen absoluut noodzakelijke dingen worden uitgevoerd en geïmplementeerd. Voorbeelden van noodzakelijke elementen zijn het ontwerp, en de basisfuncties. Alles moet in het teken staan van een ontwerp dat zo eenvoudig is, dat het onderhouden, ondersteunen en herzien een simpele taak is.

Communicatie

Communicatie is een tweede belangrijke waarde van Extreme Programming (XP). Softwareontwikkeling wordt vaak uitgevoerd in een team. Om kennis over te dragen van een teamlid op een ander teamlid, is communicatie cruciaal. Extreme Programming benadrukt door middel van deze waarde het belang van juist gebruik van communicatie. Zo worden persoonlijke discussies en groepsgesprekken gestimuleerd, en wordt het gebruik van whiteboards of andere hulpmiddelen sterk aangeraden.

Moed/lef

Beck definieert moed als effectief kunnen handelen in situaties waarin angst heerst. Moed is nodig om organisatorische kwesties aan het licht te brengen die de effectiviteit van een team kunnen verminderen. Er is moed nodig om te stoppen met zaken die niet werken, en iets anders te gaan proberen. Ook is moed vereist om feedback te kunnen incasseren, erop te reflecteren, en handelingen aanpassen indien de situatie dit vereist.

Feedback

Het is algemeen bekend dat zowel individuen als teams met feedback verbeterpunten kunnen identificeren en hun acties herzien. Feedback is een belangrijk onderdeel van Extreme Programming (XP), en is tevens zeer eenvoudig toe te passen. Het team komt op een moment in de tijd samen om te praten over ontwikkelingen of een product of dienst dat geleverd is. Door feedback te verzamelen over het ontwerp en de implementatie, en veranderingen door te voeren waar nodig, wordt het product eenvoudiger, effectiever en efficiënter.

Respect

De laatste waarde van Extreme Programming (XP), later toegevoegd bij de eerste herziening van de methode, is respect. De verschillende leden van een team moeten elkaar respecteren om de bovenliggende waardes uit te kunnen voeren. Alleen bij de aanwezigheid van wederzijds respect kan feedback gegeven worden, en goed geïnterpreteerd worden. Het gevoel van samenhorigheid in het samenwerken en ontwerpen van oplossingen is essentieel, en kan een project doen slagen of breken.

Wat zijn de principes van Extreme Programming (XP)?

De principes van Extreme Programming zijn afgeleid van de waardes van XP. De principes zijn concreter dan de waardes, en zijn bedoeld om besluitvorming in het team te ondersteunen. De principes feedback, simpliciteit en verandering worden hieronder kort toegelicht:

Feedback

Zoals besproken is binnen Extreme Programming (XP) feedback erg belangrijk. Feedback wordt als meest nuttig beschouwd indien het vaak en snel wordt gedaan. Deze twee punten zijn belangrijk om voor een minimale vertraging te zorgen tussen feedback en actie. Dit is cruciaal om te leren, en met name belangrijk om snel te kunnen handelen in een snel veranderende en sterk competitieve omgeving. Ook feedback van de consument afkomstig speelt een belangrijke rol. De klant heeft een praktisch inzicht in het systeem, en kan specifieke feedback geven. Deze feedback stuurt de ontwikkeling van het product. Met frequente feedbackmomenten kan een verkeerde ontwerpbeslissing snel aan het licht komen en worden gecorrigeerd.

Simpliciteit veronderstellen

Extreme Programming (XP) schrijft voor om elk probleem te behandelen alsof de oplossing extreem eenvoudig is. Traditionele methoden zeggen vaak: plan, en codeer voor hergebruik. XP verwerpt deze visie. Aanhangers van XP zeggen dat het doorvoeren van grote veranderingen in een keer niet werkt. In plaats daarvan past XP incrementele veranderingen door. Dat betekent dat de veranderingen geen grote wijzigingen betekenen voor zowel het ontwerp als gebruik.

Verandering omarmen

Aan de andere kant wordt verandering wel gestimuleerd. Dit principe van XP vertelt de gebruiker dat veranderingen niet tegengewerkt moeten worden. Als bijvoorbeeld blijkt dat de eisen en wensen van de consument drastisch zijn veranderd, moet er niet te lang bij worden stilgestaan waarom dit zo is, maar moet er gelijk actie worden ondernomen.

Wat zijn de verschillende fases van Extreme Programming (XP)?

Extreme Programming komt met een handleiding waarin verschillende fases besproken worden. In elke fase wordt een aantal activiteiten genoemd die essentieel zijn voor een succesvolle implementatie van Extreme Programming (XP)- methoden. Hieronder worden de verschillende fases met activiteiten toegelicht.

Extreme programmering fasen - toolshero

Fase 1: plannen

In de eerste fase vindt planning plaats. De consument schrijft korte gebruikersverhalen in plaats van lange documenten met vereisten. Deze gebruikersverhalen onthullen alle functionaliteiten die de softwareoplossing moet bevatten. Gebruikersverhalen hoeven niet lang of technisch te zijn. Het is voldoende om net genoeg details erin te laten om het team te helpen een goede oplossing te ontwikkelen. Gebruikersverhalen kunnen ondersteund worden met bijvoorbeeld een basisstroomschema waarin alle gewenste functionaliteiten zijn opgenomen.

Vanuit dit punt maakt het team een releaseschema. Ook wordt het project in verschillende iteraties verdeeld (Product Breakdown System).

Fase 2: beheren

In de tweede fase zorgt de projectmanager ervoor dat een geschikt team bij elkaar komt om met het project aan de slag te gaan. Een dynamisch, goed samenwerkend team is zeer belangrijk voor de uitvoering van Extreme Programming, en dus neemt de projectmanager verschillende maatregelen vooraf:

  • De projectmanager zorgt voor een open werkplek voor het team
  • De projectmanager stelt een duurzaam werktempo in
  • De projectmanager plant de dagelijkse stand-up meetings en feedbacksessies
  • De projectmanager meet de projectsnelheid
  • De projectmanager wijst werkpakketten toe met het oog om kennisverlies en dubbel werk te voorkomen
  • De projectmanager wijzigt de regels van Extreme Programming als deze niet goed werken

Fase 3: ontwerpen

In de derde fase wordt de nadruk gelegd op de waarde van eenvoud. Het team dient met het meest eenvoudige ontwerp te beginnen op zoek naar het geschikte eindproduct. Complexe functionaliteiten worden niet overhaast geïmplementeerd, maar in plaats daarvan zoekt het team naar oplossingen die nog eenvoudiger zijn.

Zonder een goed ontwerp wordt de implementatie van een systeem extreem moeilijk. Wanneer erg complexe onderdelen deel uitmaken van het ontwerp, zal het onderhoud altijd kostbaar blijven. Een goed en eenvoudig ontwerp resulteert in eliminatie van complexe afhankelijkheden, en zorgt ervoor dat onderhoud betaalbaar blijft.

Fase 4: coderen

In de vierde fase wordt de code, of softwareoplossing geïmplementeerd. In sommige situatie gaat het bij Extreme Programming om een geheel nieuwe oplossing, in andere gevallen gaat het om een kleine aanpassing aan een bestaand ontwerp. Tijdens deze fase is het belangrijk dat continue contact wordt gehouden met de klant. Hij of zij moet bij voorkeur op locatie aanwezig zijn, zodat zowel eisen als vragen gesteld kunnen worden.

Fase 5: testen

In de laatste en vijfde fase wordt de nieuwe oplossing getest. Het projectteam voert gedurende deze fase verschillende tests uit. Daarnaast worden kleine foutjes zoals bugs hersteld. Ook worden er acceptatietesten uitgevoerd. Extreme Programming (XP) hecht veel waarde aan het testen van de oplossing om de kans op foutloze software te verhogen.

Luisteren en feedback

Gedurende al deze fases is het belangrijk dat geluisterd wordt naar de klant, en dat feedback gegeven wordt door teamleden aan elkaar. Als eerste is het belangrijk dat de ontwikkelaars en de projectmanagers goed luisteren naar de wensen en eisen van de klant. Het is van wezenlijk belang dat de organisatie goede kwaliteit aflevert. De programmeurs die de functionaliteiten van het systeem ontwikkelen moeten tot in de puntjes op de hoogte zijn van alles wat de klant verwacht en eist. Daarnaast is ook feedback tijdens deze fases erg belangrijk. Het is niet voor niks dat feedback als een van de belangrijkste aspecten van XP bekroond werd. Veelvuldig contact met de klant biedt perspectief, en maakt de ontwikkeling van het eindproduct effectief. Ook teamleden onder elkaar hebben profijt van feedbacksessies. Door elkaar te helpen, helpen zij elkaar te groeien.

Wat zijn de voor- en nadelen van Extreme Programming?

Hieronder worden zowel voordelen als nadelen genoemd die verbonden zijn aan het gebruik van de Extreme Programming (XP)-methode. Neem deze zorgvuldig in overweging, en neem daarna de beslissing of XP geschikt is voor de taak die jij voor ogen hebt.

Voordelen

  • Het grootste voordeel van XP is dat deze methode bedrijven in staat stelt de kosten tijd te besparen die nodig is voor de succesvolle afronding van projecten.
  • Tijdswinst is mogelijk omdat XP focust op het tijdig leveren van de eindproducten.
  • Geld en andere middelen worden bespaard omdat teams niet veel documentatie vereisen
  • Het gehele XP-proces is transparant
  • Ontwikkelaars moeten zich vastbijten in de taak en laten vooruitgang zien
  • Constante feedback is een sterk voordeel en noodzakelijk om wijzigingen op tijd door te kunnen voeren
  • XP helpt om software sneller en betrouwbaarder te maken vanwege de testfase
  • XP draagt bij aan medewerkerstevredenheid en behoud (retentie) van personeel

Nadelen

  • Verschillende specialisten wijzen erop dat XP meer gericht is op code dan het ontwerp. Dit kan problemen opleveren omdat het ontwerp belangrijk is voor softwaretoepassingen
  • In verschillende XP-projecten blijkt dat de defectdocumentatie niet altijd goed gaat. Dit kan leiden tot het optreden van zogenaamde bugs en andere defecten
  • Aan kwaliteitsmanagement wordt geen extra aandacht geschonken. Ook dit kan voor verdere defecten zorgen

Nu is het jouw beurt

Wat denk jij? Herken jij de uitleg over Extreme Programming (XP)? Ben jij bekend met programmeren? Wat zou jij nog meer graag willen weten over Extreme Programming? Klinkt deze methode complex, of eenvoudig? Wordt in jouw werkomgeving gebruik gemaakt van dit raamwerk? Heb jij tips of opmerkingen?
Deel jouw kennis en ervaring via het commentaar veld onderaan dit artikel.

Als je het artikel handig of praktisch vond voor jouw eigen kennis, deel dit vooral met jouw netwerk of meld je aan voor onze gratis nieuwsbrief. Je kunt ons ook vinden op Facebook, LinkedIn, Twitter en Youtube.

Meer informatie

  1. Beck, K. (1999). Embracing change with extreme programming. Computer, 32(10), 70-77.
  2. Beck, K., & Fowler, M. (2001). Planning extreme programming. Addison-Wesley Professional.
  3. Beck, K. (2000). Extreme programming explained: embrace change. addison-wesley professional.

Citatie voor dit artikel:
Janse, B. (2020). Extreme Programming (XP). Retrieved [insert date] from toolshero: https://www.toolshero.nl/informatie-technologie/extreme-programming/

Wilt u linken naar dit artikel, dat kan!
<a href=”https://www.toolshero.nl/informatie-technologie/extreme-programming/”>toolshero: Extreme Programming (XP)</a>

Interessant artikel?

Geef je waardering of deel het artikel via social media!

Gemiddelde beoordeling 5 / 5. Totaal aantal beoordelingen: 1

Dit artikel is nog niet beoordeeld! Wees de eerste met jouw beoordeling.

We vinden het jammer dat het artikel niet waardevol voor je was

Laat ons dit artikel verbeteren!

Vertel ons wat er beter kan aan het artikel? Wat mis je bijvoooebeeld of wat kan worden aangevuld?

Word lid en ontvang onbeperkt toegang

Door lid te worden van onze e-learning platform, krijg je onbeperkt toegang tot alle artikelen (1000+), templates, video's en meer!

Tagged:

Geef een reactie