KolibriSupport KolibriWazzup

Over hoe we werken en waarom we zo werken

Door 15 oktober 2018 oktober 28th, 2019 No Comments

Door Joey van Boxel, lead product designer bij Wazzup

Als lead product designer bij Wazzup opereer ik op het snijvlak van onze development, commerciële en support teams en onze gebruikers. Ik ben verantwoordelijk voor het vertalen van de behoeftes van onze gebruikers naar gebruiksvriendelijke ontwerpen en begeleid onze ontwikkelaars bij het ontwikkelen van onze producten.

Voor het ontwikkelen van onze software gebruiken we een methode die Scrum heet. We gebruiken deze methode omdat het ons in staat stelt om op hoog tempo software te ontwikkelen en nieuwe functionaliteiten op te leveren, terwijl we flexibel blijven zodat we kunnen bouwen wat onze gebruikers van ons vragen.

In deze blog ga ik in op deze ontwikkelmethode en waarom we deze methode gebruiken.

Eerst een stapje terug

Om in te gaan op wat Scrum is moet ik eerst een stap terug. Scrum is wat we noemen een ‘agile’ ontwikkelmethode. Er zijn veel meer agile ontwikkelmethodes, maar Scrum is de meest bekende. Er zijn ook niet-agile ontwikkelmethodes, zoals de watervalmethode. Er zijn grote verschillen tussen deze twee agile en niet-agile methodes. Hieronder in het kort wat centraal staat bij deze methodes en wat de verschillen zijn.

Niet-agile ontwikkelmethodes

Watervalmodel

Bij een niet-agile ontwikkelmethode, bijvoorbeeld de watervalmethode werk je linear. Je begint bij het uitwerken van een uitgebreid plan, waarin alle functionaliteiten die je gaat bouwen van voor tot achter worden uitgewerkt. Daarna maak je ontwerpen, ga je bouwen, testen, bugfixen en helemaal aan het einde lever je een compleet en af product. 

Dat klinkt best goed, maar er zijn twee grote nadelen bij deze methode.

De eerste is dat je van te voren moet bepalen wat je eindproduct is. Latere wijzigingen aan dit plan zijn eigenlijk niet meer mogelijk.

De tweede is dat je na goedkeuring van het plan de deur op slot doet en gaat ontwikkelen. Je bouwt alles wat in het plan staat en pas als het helemaal af is lever je het product op, precies volgens plan. Tussentijds maak je geen opleveringen.

Je kunt je voorstellen dat dat niet fijn is. De kans dat je van te voren precies weet wat er aan het einde van de rit nodig is klein. En tussentijds lever je niets op om te eiken of je plan nog klopt.

Agile ontwikkelmethodes

Agile ontwikkelmethoden

Bij agile ontwikkelmethodes zoals Scrum werk je in korte iteraties met een multi-disciplinair team. Agile methodes focussen op het voortdurend opleveren van functionaliteit aan gebruikers. In plaats van grote plannen die vooraf worden geschreven werk je in korte ontwikkelperiodes. Aan het einde van zo’n periode lever je een werkende functionaliteit of een deel daarvan op aan je gebruikers. Aan het einde van elke periode (die spreek je van te voren af en is meestal tussen de 2 en 6 weken) eik je of je nog maakt wat je gebruikers van je vragen en bepaal je wat je de komende periode gaat ontwikkelen.

De twee grootste voordelen zijn:

Gebruikers kunnen in een vroeg stadium starten met het werken met het product dat je maakt en daar vroegtijdig feedback op geven.

Gebruikers hebben een grote invloed op het eindproduct. Daarmee is de kans dat we maken wat gebruikers nodig hebben veel groter.

Die twee voordelen zijn ook de voornaamste redenen waarom we werken zoals we werken.

Over Scrum

Omdat we het belangrijk vinden dat we voortdurend aan onze gebruikers vragen wat zij vinden dat onze producten moeten kunnen – en we ze graag vaak nieuwe functionaliteit laten zien kiezen wij voor een agile ontwikkelmethode. Wij hanteren Scrum, de meest bekende agile ontwikkelmethode.

Bij de Scrum ontwikkelmethode staan 6 principes centraal:

Besluiten nemen op basis van observatie en experimenten

Bij de Scrum methode maak je keuzes op basis van observatie en expirementen in tegenstelling tot een gedetailleerde planning die je vooraf maakt. Drie dingen zijn daarbij belangrijk:

Transparantie: iedereen bij Wazzup weet waaraan werken gaan werken, hoe we werken en hoe goed we dat doen.

Inspectie: we hebben veel contact met onze gebruikers om te testen of wat we maken goed is, en te bepalen wat de volgende te ontwikkelen functionaliteiten zijn.

Aanpassingsvermogen: door voortdurend kritisch te kijken naar hoe we werken en daar verbeteringen aan te brengen worden we steeds efficiënter.

Prioriteiten stellen op basis van waarde

Bij Scrum bepaal je de prioriteit van de dingen die je gaat ontwikkelen op basis van hoe waardevol dat is voor je gebruikers. Dat zorgt ervoor dat je in kunt spelen op de markt en dat je maakt wat nu belangrijk is.

Zelfsturende teams

Een zelfsturend team spreekt met elkaar af hoe ze de gebruikers het beste van dienst kunnen zijn. Iedereen in het team is in staat om zelfstandig producten te leveren aan onze gebruikers, omdat ze snappen voor wie we het maken en waarom we dat doen. Door het team te begeleiden maar vrijheid te geven in hoe we het meest efficiënt ontwikkelen kunnen we sneller, mooiere functionaliteiten opleveren.

Sprints

Bij Scrum werk je in, vooraf afgesproken, ontwikkelperiodes. Meestal zijn die tussen de 2 en 6 weken. Zo’n periode noemen we een sprint. Het werken in sprints zorgt ervoor dat je:

  • Een overzichtelijk ontwikkelproces hebt
  • Weinig overhead hebt
  • Op hoge snelheid kunt ontwikkelen
  • Flexibel bent

Samenwerking

Een Scrum team bestaat uit alle disciplines die nodig zijn om van een idee naar het eindproduct te komen. De voordelen zijn:

  • Dat iedereen weet aan het team welk werk gedaan moet worden om tot het eindresultaat te komen. Daardoor is het duidelijk hoe je aan het grotere geheel bijdraagt.
  • Werk moet opgedeeld worden in kleine, behapbare brokken. Zo is werk makkelijker overdraagbaar, werk je efficiënter en kun je sneller opleveren.
  • Je kunt snel werk dat een ander teamlid heeft gemaakt integreren met jouw werk, zodat je kunt zien of alles samen goed werkt.

Iteraties

Bij Scrum staat het opleveren van producten met de hoogst haalbare waarde in zo kort mogelijke tijd centraal. Om dat te doen werken we in korte iteraties. Bij elke iteratie kun je toetsen of wat je hebt gemaakt het juiste is en of de richting waarin je ontwikkelt de juiste is.

Een paar belangrijke termen

Nu je weet wat de principes van Scrum zijn (en je waarschijnlijk inmiddels weet waarom we deze methode zo fijn vinden) kan ik je kennis laten maken met een aantal belangrijke rollen en termen binnen Scrum. Je zal ons af en toe horen praten over deze rollen of termen dus dan ben je gelijk op de hoogte. 😊

De Scrum Master

De Scrum master heeft een faciliterende rol voor Scrum teams. De Scrum master zorgt er voor dat het team niets in de weg staat om goed werk te kunnen verrichten. Daarnaast zorgt de Scrum master er voor dat de Scrum methode correct wordt uitgevoerd. Bij Wazzup ben ik dat.

De Backlog

In de backlog staan alle Stories (wensen van onze gebruikers) beschreven. De stories staan geprioriteerd op basis van de waarde die ze hebben voor onze gebruikers.

Product Owner

De product Owner is het centrale aanspreekpunt in het Scrum Team. verzamelt ideeën, zet de koers uit, bewaakt de voortgang van het project en stuurt waar nodig bij. De Product Owner is voortdurend bezig met de markt om te leren wat gebruikers willen.

Sprints

Ik vertelde je er al eerder over. Een Sprint is een vooraf bepaalde ontwikkelperiode van meestal tussen de 2 en 4 weken. In die 2 tot 4 weken lever je functionaliteiten of werkende delen daarvan op aan je gebruikers.

Scrum Team

Het multi-disciplinaire team dat er voor zorgt functionaliteiten van voor tot achter uitgewerkt worden.

Meetings

Meetings klinken saai, maar zijn voor Scrum teams noodzakelijk en we proberen ze zo kort mogelijk te houden. We hebben:

Een dagelijkse stand-up (je mag niet zitten tijdens deze meeting) van maximaal 15 minuten. Daarin bespreken we wat we de vorige dag hebben afgerond, waar we vandaag aan werken en of we problemen hebben. Elke dag is het dus voor iedereen duidelijk waar een ander aan werkt en hoe we bijdragen aan het grotere geheel.

Sprint planning. Voor de start van elke sprint bespreken we wat we in de eerstvolgende sprint gaan bouwen.

Sprint review. In de sprint review delen we met collega’s (en soms ook gebruikers) wat we de afgelopen sprint hebben gemaakt. Zo zorgen we ervoor dat iedereen op de hoogte is.

Sprint retrospective. Aan het einde van elke sprint bespreken we wat we beter hadden kunnen doen en maken we een actieplan over hoe we dat de komende sprint ook echt beter gaan doen. Zo worden we elke sprint een stukje beter en slimmer.

Conclusie - waarom we zo werken

Als je zo ver bent gekomen, bedankt voor het lezen! Ik denk het inmiddels duidelijk is waarom we werken met de Scrum methode. Ik kan er (alweer) een lang verhaal van maken, maar in het kort werken we zoals we werken omdat:

  • Onze gebruikers op deze manier ontzettend belangrijk zijn en ons hele waardevolle feedback geven
  • We heel vaak nieuwe functionaliteiten op kunnen leveren
  • We super flexibel zijn

Ik snap het helemaal als de Scrum methode nog een beetje vaag blijft na het lezen van mijn verhaal. Als je Scrum eens in het echt wilt zien ben je natuurlijk van harte welkom om eens bij ons op kantoor mee te kijken. Stuur me een mailtje op joey@wazzupsoftware.com en dan plannen we dat in!

Joey

Joey

Product Manager