Verschil Tussen Extreme Programmering En SCRUM

Verschil Tussen Extreme Programmering En SCRUM
Verschil Tussen Extreme Programmering En SCRUM

Video: Verschil Tussen Extreme Programmering En SCRUM

Video: Verschil Tussen Extreme Programmering En SCRUM
Video: SCRUM VS EXTREME PROGRAMMING | WHAT ARE THE MAJOR DIFFERENCES? 2024, April
Anonim

Extreme programmering versus SCRUM | XP versus SCRUM

Er zijn in de loop der jaren een aantal verschillende softwareontwikkelingsmethoden gebruikt in de software-industrie, zoals de Waterfall-ontwikkelingsmethode, V-Model, RUP en enkele andere lineaire, iteratieve en gecombineerde lineair-iteratieve methoden. Agile-model (of beter gezegd: een groep methodologieën) is een recenter softwareontwikkelingsmodel dat is geïntroduceerd door het Agile-manifest om de tekortkomingen in die traditionele softwareontwikkelingsmethodologieën aan te pakken.

Agile-methoden zijn gebaseerd op iteratieve ontwikkeling en gebruiken de feedback van de gebruikers als het belangrijkste controlemechanisme. Agile kan een mensgerichte benadering worden genoemd dan traditionele methoden. Agile-model levert al heel vroeg een werkende versie van het product door het systeem op te splitsen in zeer kleine en beheersbare subonderdelen, zodat de klant al vroeg enkele voordelen kan realiseren. De testcyclustijd van Agile is relatief kort in vergelijking met traditionele methoden, omdat testen parallel aan de ontwikkeling plaatsvindt. Vanwege al deze voordelen hebben Agile-methoden momenteel de voorkeur boven de traditionele methoden. Scrum en Extreme-programmering zijn twee van de meest populaire varianten van Agile-methoden.

Wat is SCRUM?

Zoals hierboven vermeld, is SCRUM een incrementeel en iteratief projectmanagementproces dat behoort tot de familie van Agile-methoden. SCRUM is gebaseerd op het geven van hoge prioriteit aan de deelname van de klant aan het begin van de ontwikkelingscyclus. Het raadt aan om het testen door de klant vroeg en zo vaak mogelijk op te nemen. Er wordt op elk punt getest wanneer een stabiele versie beschikbaar komt. De basis van SCRUM is gebaseerd op het starten van testen vanaf het begin van het project en doorgaan tot het einde van het project.

De belangrijkste waarde van SCRUM is "kwaliteit is de verantwoordelijkheid van het team", wat benadrukt dat de kwaliteit van de software de verantwoordelijkheid is van het hele team (niet alleen het testteam). Een ander belangrijk aspect van SCRUM is het opsplitsen van de software in kleinere, beheersbare onderdelen en deze zeer snel aan de klant te leveren. Het afleveren van een werkend product is van het grootste belang. Vervolgens blijft het team de software verbeteren en continu leveren bij elke belangrijke stap. Dit wordt bereikt door zeer korte releasecycli (sprints genoemd) te hebben en aan het einde van elke cyclus feedback te krijgen voor verbetering.

SCRUM definieert verschillende sleutelrollen voor de soepele werking van een ontwikkelteam. Dit zijn de Product owner (die de klant vertegenwoordigt en de product backlog bijhoudt), Scrum master (die optreedt als de organisator en coördinator van het team door scrum meetings te houden, sprint backlog bij te houden en af te branden grafieken) en andere teamleden. Een team kan bestaan uit traditionele rollen, maar meestal zijn het zelfsturende teams. Belangrijkste Scrum-artefacten zijn Product backlog / release backlog (verlanglijst), Sprint backlogs / defect backlogs (taken in elke iteratie), Burn-down grafieken (resterend werk vs. datum). De belangrijkste SCRUM-ceremonies zijn Product backlog meeting, Sprint meeting en Retrospect meeting.

Wat is extreem programmeren?

Extreme Programming (afgekort XP) is een softwareontwikkelingsmethodologie die behoort tot het Agile-model. Extreme programmering voert fasen uit in zeer kleine continue stappen (vergeleken met traditionele methoden). De eerste pas, die slechts een dag of een week duurt, is opzettelijk onvolledig. Om concrete doelen te stellen voor het ontwikkelen van de software, worden bij aanvang geautomatiseerde tests geschreven. Vervolgens doen de ontwikkelaars de codering. De focus ligt op het programmeren in paren. Zodra alle tests zijn geslaagd, wordt de codering als voltooid beschouwd. De volgende fase is ontwerp en architectuur, die zich bezighouden met het herstructureren van de code door dezelfde set programmeurs. Aan het einde van deze fase wordt een onvolledig (maar functioneel) product gepresenteerd aan de stakeholders. Hierna begint de volgende fase (die zich richt op de volgende set van belangrijkste features).

Wat is het verschil tussen Extreme Programming en SCRUM?

Extreme Programming en SCRUM zijn begrijpelijkerwijs zeer vergelijkbare en op elkaar afgestemde methodologieën. Er zijn echter subtiele maar belangrijke verschillen tussen deze twee methoden. SCRUM-sprints duren 2-4 weken, terwijl typische XP-iteraties korter zijn (laatste 1-2 weken). Normaal gesproken staan SCRUM-teams geen wijzigingen in sprints toe, maar XP-teams zijn iets flexibeler voor wijzigingen binnen iteraties. Na de sprintplanning blijft de set items van die sprint bijvoorbeeld ongewijzigd, maar een functie waaraan nog niet is begonnen, kan op elk moment worden vervangen door een andere functie in XP. Een ander verschil tussen XP en SCRUM is dat de volgorde van de functies die in XP zijn ontwikkeld, strikt geprioriteerd is door de klant, terwijl het SCRUM-team de volgorde van de items bepaalt (nadat de productachterstand is geprioriteerd door de Producteigenaar van het SCRUM).

In tegenstelling tot XP legt SCRUM geen technische praktijken vast. XP wordt bijvoorbeeld aangestuurd door praktijken zoals testgestuurde ontwikkeling (TDD), paarprogrammering, refactoring, enz. Sommigen zijn echter van mening dat het verplicht stellen van een reeks praktijken aan zelforganiserende teams een negatieve impact kan hebben, en dit kan worden overwogen een tekortkoming van XP. Een andere tekortkoming van Extreme-programmering is dat onervaren teams de neiging hebben om te refactoren zonder geautomatiseerde tests of TDD (of gewoon hacken). Daarom suggereren sommigen dat SCRUM beter is om weg te staren (omdat het grote verbeteringen oplevert door simpelweg gefocuste timeboxed iteraties) en dat XP geschikt is voor enigszins volwassen teams die de waarde van bovengenoemde praktijken hebben ontdekt (in plaats van ze te gebruiken omdat ze zijn gevraagd om dit te doen).

Aanbevolen: