Scrum & XP – van https://dzone.com/articles/scrum-and-extreme-programming-xp
Philip Rogers

Volgen

30 aug, 2017 – 4 min read

Iets wat ik al geruime tijd ergerlijk vind is hoe gebruikelijk het is voor velen in de industrie om termen als “Scrum maar ….”in pejoratieve zin, waarmee wordt geïmpliceerd dat teams alleen de kleine set van praktijken zouden moeten volgen die deel uitmaken van Scrum. De realiteit is dat voor een Agile team om in staat te zijn herhaaldelijk werkende software op te leveren gedurende een significante tijdspanne, Scrum op zichzelf niet voldoende is. Of ze het zich nu realiseren of niet, de overgrote meerderheid van de teams die zichzelf Scrum-teams noemen, werken als een Scrum-XP hybride, of een Scrum-Kanban-XP hybride, waar ze op zijn minst een subset van de technische praktijken gebruiken die hun oorsprong vinden in XP.

Laat me on the record gaan en zeggen dat teams die alleen de Scrum-praktijken volgen waarschijnlijk niet succesvol zullen zijn op de lange termijn, omdat op zijn minst een subset van de technische XP-praktijken een must is voor blijvend succes als een Agile delivery-team.

Ik heb gemerkt dat er niet genoeg mensen zijn die begrijpen wat Scrum wel en niet omvat, dus laten we daar beginnen.

Wat Scrum is – een reeks managementpraktijken

Scrum is de toepassing van empirische procesbeheersing, wat een deftige manier is om te zeggen dat we beslissingen moeten nemen op basis van ervaring, niet op basis van een of andere hypothetische reeks veronderstellingen die niet in de realiteit zijn gegrond.

Eenvoudig gezegd, bestaat Scrum uit een kleine reeks managementpraktijken die bedoeld zijn om teams te helpen effectief samen te werken en werk af te leveren op een iteratieve manier (laat me nogmaals benadrukken – er zijn nul technische praktijken in Scrum).

Om de inhoud van de Scrum-gids kort samen te vatten:

  • Er is een Scrum-team, dat bestaat uit ontwikkelaars, de Product Owner, en de Scrum Master.
  • Er zijn Scrum Events, die bestaan uit de Sprint, Sprint Planning, de Daily Scrum (aka Daily Standup, in XP), Sprint Review, en Sprint Retrospective.
  • Er zijn Scrum Artifacts, die bestaan uit de Product Backlog, de Sprint Backlog, en het Increment, waarbij een Increment bestaat zodra één item uit de Sprint Backlog voldoet aan de Definition of Done.
  • Er is een Definition of Done, waarbij elk Scrum Team een gedeelde opvatting heeft over wat “done” betekent voor elk Product Backlog Item. Merk op dat in tegenstelling tot Acceptatiecriteria, de Definitie van Gereed globaal wordt toegepast, terwijl Acceptatiecriteria specifiek zijn voor individuele Product Backlog Items.

Wat Scrum niet is

In tegenstelling tot wat vaak wordt gedacht, maakt geen van de volgende dingen deel uit van Scrum:

  • User stories. De werkitems in de Product Backlog of Sprint Backlog van een Scrum team worden geschreven als user stories (vaak in het formaat “Als een <persona/rol>, wil ik <doel>, zodat <gewenst resultaat>”), maar Scrum schrijft geen bepaalde constructie of formaat voor. Merk op dat user stories deel uitmaken van XP.
  • Schatting. Hoewel de overgrote meerderheid van Scrum teams op een of ander niveau schatten, maakt de praktijk van het schatten geen deel uit van Scrum.
  • Velocity. Snelheid is ook geen onderdeel van Scrum; het begrip projectsnelheid is onderdeel van XP.
  • Technische praktijken. Zoals hierboven opgemerkt, is er geen notie van technische praktijken (CI, CD, pair programming, TDD, enz.) in Scrum. De overgrote meerderheid van de technische praktijken die teams gewoonlijk volgen, vindt zijn oorsprong in XP.

Wat is Extreme Programming?

Het is meer dan twee decennia geleden dat het eerste Extreme Programming (XP) team werd gevormd, waar ze werkten aan een project genaamd Chrysler Comprehensive Compensation (C3). De methoden die dat team gebruikte, stammen voor een belangrijk deel uit de jaren tachtig, toen Kent Beck en vele anderen experimenteerden met betere manieren om software te ontwikkelen, d.w.z. een alternatief voor de “waterval”-aanpak die tegen die tijd dominant was geworden.

Het visueel maken van werk is altijd een belangrijke manier geweest om te informeren hoe Agile teams werken. Daarom, als een inleiding tot XP, adviseer ik dat iedereen die meer wil leren goed zou worden gediend door te beginnen met deze diagrammen:

  • Extreme Programming Project (end-to-end diagram)
  • Iteration (diagram gericht op wat er binnen een iteratie gebeurt; merk op dat wat XP een iteratie noemt, conceptueel vergelijkbaar is met wat Scrum een Sprint noemt)
  • Development (diagram gericht op ontwikkelingsinteracties en -activiteiten)
  • Collective Code Ownership (diagram gericht op de kerntechnische praktijken)

Note: Voor een visual die veel van de elementen uit de bovenstaande diagrammen combineert op één pagina, zie Bill Wake’s Extreme Programming Overview.

Aanvullend lezen over XP

Als de bovenstaande afbeeldingen u genoeg intrigeren om meer over XP te willen lezen, zie dan de volgende informatiebronnen, die min of meer zijn gerangschikt in volgorde van kortst te lezen > langst te lezen:

  • Don Wells, Extreme Programming: a gentle introduction
  • Martin Fowler, BeckDesignRules (zie ook Xp Simplicity Rules)
  • Kent Beck, Ward Cunningham, et al., Extreme Programming Core Practices (aka de 12 XpXtudes)
  • Don Wells, The Rules of Extreme Programming
  • Ward Cunningham, et al.,Extreme Programming (aka de WikiWikiWeb)
  • Ron Jeffries, What is Extreme Programming?
  • Kent Beck & Cynthia Andres, Extreme Programming Explained: Embrace Change (2nd Ed.)

Additional References

Alle referenties in deze sectie zijn afkomstig van Don Wells’ XP website, tenzij anders vermeld.

  • Agile Modellen zijn Schilderijen, geen Foto’s (alle modellen zijn fout; sommige zijn nuttig)
  • Agile Proces Spreuken (woorden voor elk team om naar te leven)
  • Bill Wake, Arrange, Act, Assert (patroon voor het schrijven van unit tests)
  • Bill Wake, Sudoku Solver (interessante variatie op TDD)
  • Bill Wake, Tests from a Hat (een creatieve benadering van het schrijven van unit tests)
  • Honest Plans (hoe schatten er in de praktijk uitziet)
  • Manage Your Goals Instead of Activities (belangrijkste verschillen tussen Waterval en Agile ontwikkeling)
  • The Values of Extreme Programming (Eenvoud, Communicatie, Feedback, Respect, Moed)
  • XP en Databases (een patroon gebaseerd op gouden > zilveren > bronzen databases )

Articles

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.