Verschil tussen extreme programmering en SCRUM

Anonim

Extreme Programming vs SCRUM | XP vs SCRUM

Er zijn in de softwareindustrie in de softwareindustrie een aantal verschillende software-ontwikkelingsmethoden gebruikt, zoals Waterfall-ontwikkelingsmethode, V-Model, RUP en enkele andere lineaire, iteratieve en gecombineerde lineaire iteratieve methoden. Agile model (of meer correct, een groep methodologieën) is een recentere software ontwikkelingsmodel die is geïntroduceerd door het Agile-manifest om de tekortkomingen in deze traditionele software-ontwikkelingsmethoden aan te pakken.

Agile methodes zijn gebaseerd op iteratieve ontwikkeling en gebruiken de feedback van de gebruikers als hoofdcontrolemechanisme. Agile kan een mensengerichte aanpak worden genoemd dan traditionele methodes. Agile model levert heel vroeg een werkende versie van het product door het systeem in te breken tot zeer kleine en beheersbare onderdelen, zodat de klant vroeger een aantal voordelen kan realiseren. De testcyclus van Agile is relatief kort in vergelijking met traditionele methoden, omdat het testen parallel met de ontwikkeling is uitgevoerd. Door al deze voordelen zijn Agile methoden op dit moment de voorkeur boven de traditionele methodologieën. 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 vroeg in de ontwikkelingscyclus. Het beveelt aan het testen door de klant vroegtijdig en vaak mogelijk te maken. Testen worden gedaan op elk moment wanneer een stabiele versie beschikbaar wordt. De basis van SCRUM is gebaseerd op het starten van testen vanaf het begin van het project en doorlopend tot aan het einde van het project.

Belangrijkste waarde van SCRUM is "kwaliteit is de verantwoordelijkheid van het team", wat onderstreept dat de kwaliteit van de software de verantwoordelijkheid van het hele team is (niet alleen het testteam). Een ander belangrijk aspect van SCRUM is het breken van de software in kleine, beheersbare onderdelen en leveren ze snel naar de klant. Het leveren van een werkproduct is van groot belang. Dan blijft het team de software verbeteren en continu leveren bij elke belangrijke stap. Dit wordt bereikt door zeer korte cycli te hebben (genaamd sprints) en aan het einde van elke cyclus feedback te krijgen voor verbetering.

SCRUM definieert een aantal sleutelrollen voor de goede werking van een ontwikkelingsteam. Zij zijn de Producteigenaar (die de klant vertegenwoordigt en de product achterstand houdt), Scrum Master (die als organisator en coördinator van het team optreedt door scrumvergaderingen te houden, de achterstand van de sprint te behouden en grafieken te verbranden) en andere teamleden.Een team kan bestaan ​​uit traditionele rollen, maar meestal zijn ze zelfbeheersende teams. Belangrijkste Scrum artefacten zijn Product achterstand / vrijblijvende achterstand (wenslijst), Sprint achterstanden / defect achterstanden (taken in elke iteratie), Tabellen verbranden (resterend werk versus datum). Belangrijkste SCRUM ceremonies zijn product backlog meeting, Sprint meeting en Retrospect meeting.

Wat is extreme programmering?

Extreme Programmering (verkorte XP) is een software ontwikkeling methodologie die behoort tot het Agile model. Extreme programmering verricht fases in zeer kleine continue stappen (in vergelijking met traditionele methodes). De eerste pas, die slechts een dag of een week duurt, is opzettelijk onvolledig. Om concrete doelstellingen voor de ontwikkeling van de software te geven, worden bij het begin automatisch geautomatiseerde tests geschreven. Dan doen de ontwikkelaars de codering. De focus ligt op het programmeren van paren. Zodra alle testen zijn doorgegeven, wordt de codering als volledig beschouwd. De volgende fase is ontwerp en architectuur, die zich bezighoudt met het refacteren van de code door dezelfde reeks programmeurs. Aan het eind van deze fase wordt onvolledig (maar functioneel) product aan de stakeholders voorgelegd. Hierna begint de volgende fase (die zich richt op de volgende set van belangrijkste functies).

Wat is het verschil tussen Extreme Programming en SCRUM?

Extreme Programmering en SCRUM zijn begrijpelijk zeer vergelijkbare en uitgelijnde methodologieën. Er zijn echter subtiele maar belangrijke verschillen tussen deze twee methoden. SCRUM sprints duurt 2-4 weken, terwijl typische XP iteraties korter zijn (laatste 1-2 weken). Gewoonlijk maken SCRUM teams geen veranderingen mogelijk in sprints, maar XP-teams zijn een beetje flexibeler voor veranderingen binnen iteraties. Bijvoorbeeld, na de sprintplanning, blijft de set items van die sprint ongewijzigd, maar een functie die nog niet is gestart, kan op elk moment worden vervangen door een ander kenmerk in XP. Een ander verschil tussen XP en SCRUM is dat de bestelling van functies die in XP is ontwikkeld, door de klant een prioriteit heeft, terwijl het SCRUM-team de volgorde van de items bepaalt (nadat de product achterstand voorop staat door de SCRUM Product Owner).

In tegenstelling tot XP legt SCRUM geen engineering praktijken neer. Bijvoorbeeld, XP is gedreven door praktijken zoals testgedreven ontwikkeling (TDD), paar programmering, refactoring, enz. Maar sommigen geloven dat het aannemen van een reeks praktijken op zelforganiserende teams negatieve gevolgen kan hebben, en dit kan overwogen worden een tekortkoming van XP. Een andere tekortkoming van extreme programmering is dat onervaren teams kunnen reageren zonder automatische tests of TDD (of gewoon hacking). Daarom suggereren sommige dat SCRUM beter is om uit te staren (aangezien het grote verbeteringen door middel van gerichte timeboxed iterations) brengt en XP geschikt is voor licht volwassen teams die de waarde van bovengenoemde praktijken hebben ontdekt (in plaats van ze te gebruiken omdat ze gevraagd zijn om dat te doen).