Agile ontwikkelproces

iASSET Wordt ontwikkeld met een team dat werkt met het Agile framework Scrum.

De belangrijkste doelstellingen voor deze keuze zijn:

  • betere kwaliteit leveren (minder incidenten levert minder verstoring op voor ons ontwikkelproces);
  • beter aansluiten bij de vraag van onze opdrachtgevers;
  • voorspelbaarder worden in het inschatten van levertijden.

Een uitgangspunt van Agile werken is dat het onmogelijk is een vaste functionaliteit tegen een vaste prijs in een vaste tijd te leveren.

Vaak wordt dit wel beloofd maar loopt de tijd uit de hand of wordt het beloofd en gehaald maar is er te veel betaald en ruimte ingebouwd voor uitloop. Onze nieuwe aanpak is om tijd en prijs vast te leggen en vervolgens flexibel om te gaan met de geleverde functionaliteit. Om te zorgen dat het product in ieder geval het meest waardevolle doet worden de wensen en incidenten van al onze klanten geordend op prioriteit.

De afweging die deze prioriteit bepaalt is tussen de meerwaarde ('Business value') en de relatieve kosten ('Estimated Cost'). De business value is een lastige, gevoelsmatige afweging. Hierbij spelen bijvoorbeeld de volgende factoren een rol:

  • Hoeveel gebruikers kunnen hierdoor niet / beter werken met iASSET?
  • Kunnen ze dan iets nieuws of is levert het tijdwinst op?
  • Heeft de functionaliteit waarde in commerciële zin?
  • Zijn er andere wensen die op basis van deze wens (beter) gebouwd kunnen worden?
  • Zijn er afgesproken deadlines?

Hardere limieten zoals uitval van infrastructuur of functionaliteit en afgesproken deadlines krijgen een hoge prioriteit zonder deze afwegingen te maken.

De resulterende prioriteiten van geplande ontwikkelingen worden bijgehouden inonze roadmap. Dit document is voor iedereen te bekijken en als je een Trello account hebt of maakt kan je commentaar leveren op de taken.

De workflow van een incidentmelding of ontwikkelwens tot acceptatie door de opdrachtgever (of interne klant) is als volgt.

  1. Ontvangst ticket door helpdesk.
  2. Volledig omschrijven als een incident of ontwikkelwens¹.
  3. Dan prioritering² in balans met alle andere wensen en incidenten.
  4. Planning in een tweewekelijkse cyclus.
  5. Uitvoering en testen.
  6. Release in een maandelijkse cyclus of bij urgente incidenten direct in productie.
  7. Acceptatie door de opdrachtgever (of interne klant).

¹ Issue types

We kennen de volgende 'issue types':

Ontwikkeling

Een gewenste functionaliteit die nog niet in iASSET zit. Deze wordt beschreven met een User Story

Verbetering

Een bestaande functie van iASSET die verbeterd moet worden, bijvoorbeeld om de applicatie consequenter of beter te begrijpen te maken. Deze wordt meestal ook beschreven met een User Story.

Incident

'Onverwacht gedrag' dat gebruik van een functie van iASSET bemoeilijkt of onmogelijk maakt. Hiervoor wordt onderstaand incident sjabloon gebruikt.

Wat was ik aan het doen – Stappen om dit te reproduceren
... (Zo specifiek mogelijk, object, menu namen, bestandsnamen etc.)
Wat ik verwachtte en wat er gebeurde – Incident
... (gevolgd door screenshots, voorbeeldbestanden etc.) – Informatie ter bepaling van de urgentie
Wat ik met het resultaat wil doen en wanneer ik het nodig heb
Implementatie

Administratieve of gegevensgerelateerde taken zoals het maken of aanpassen van gebruikersrechten, (sub)thema's en imports en exports die niet in de interface beschikbaar zijn.

² Prioriteiten

We kennen de volgende prioriteiten:

Priority Definition Oplostijd
Urgent Blokkerend, gegevensverlies, domein kapot, website niet bereikbaar, onmogelijk in te loggen, onmogelijk te werken (als in: ik kan ook niets anders oppakken) Zo snel mogelijk in lopende sprint oppakken
Hoog Prioriteit, Probleem treed voor alle domeinen op, ernstige hinder, meerdere gebroken links, export/import 1 á 2 sprints na nu
Gemiddeld Normale ontwikkeling, bugs zonder directe ernstige gevolgen 3 tot 5 sprints
Laag Veranderingen met een grote impact, lage meerwaarde, hoge kosten Langer
Afgewezen FIXME