Stageopdracht: Estimation App

Kevin en Leandro tijdens hun stage

Opdracht & probleemstelling

Tijdens onze stageperiode mochten wij, Leandro Pachis en Kevin Put, werken aan een interne applicatie voor JIDOKA. Eén van de hoofdtaken van JIDOKA is het uitwerken van applicatie projecten. Om deze projecten in goede banen te leiden moeten ze ingeschat worden naargelang grootte en complexiteit. 

Tijdens de eerste fase worden alle stories uitgeschreven waarna deze samen in een team worden ingeschat aan de hand van een aantal factoren. Deze inschattingen gebeuren momenteel met behulp van een excelsheet die gedeeld wordt tijdens een online-meeting. Elke deelnemer in de meeting brengt per story zijn stem uit op de verschillende factoren die worden overlopen. Hierna wordt er telkens een finale score per factor bepaald in overleg met de deelnemers.

Dit proces verloopt vrij traag en is niet geautomatiseerd. Ook is de spreadsheet niet overzichtelijk en is het vaak moeilijk voor deelnemers van de sessie om deze te volgen. 

Kevin en Leandro tijdens hun stage

Als oplossing bouwden we een desktop-app voor de organisator van de meeting waarin projecten met bijhorende stories kunnen worden toegevoegd en het stemmen kan worden beheerd. 

Hiernaast ontwikkelden we een cross-platform (Android & iOS) mobiele applicatie die bestemd is voor het stemmen op de stories. Beide apps worden ondersteund door een backend gemaakt in Java Spring Boot en een Flutter-frontend.

We leerden ook nieuwe technieken zoals het gebruiken van een monorepository. Dit houdt in dat er dat er assets kunnen gedeeld en dus hergebruikt kunnen worden tussen meerdere projecten. Het bespaart veel tijd en vermindert dubbele code. Voor de twee Flutter applicaties werd Melos gebruikt als monorepo technologie. 

Hiernaast maakten we ook gebruik van WebSockets om in de mobiele voting-app een pop-up te tonen wanneer de administrator een stemronde heeft gestart vanuit de desktop app. Dit is een soort message-queue waarop er kan gesubscribed worden zodat er op het moment dat er een bericht binnenkomt een actie kan uitgevoerd worden.

Aanmaken van een inschatting

Op de homepagina van de desktop applicatie wordt er een overzicht getoond van alle open en gesloten inschattingen of “estimations”. Vanuit dit scherm kan een bestaande inschatting geopend worden of een nieuwe aangemaakt worden.

Wanneer een bestaande estimation geopend wordt, worden de details van deze inschatting weergegeven. Hierin kan de naam, inschattingsstrategie en lijst van stories van de estimation teruggevonden worden. Vanuit dit scherm kan je ook een aantal gegevens wijzigen, of kunnen er nieuwe stories worden toegevoegd.

Als er naar de sessie tab genavigeerd wordt, worden de eerder toegevoegde lijst van stories getoond. Er kan door de stories geklikt worden om de details ervan te bekijken. Ook kan de administrator een inschattingssessie beheren vanuit deze pagina. Er wordt automatisch een zescijferige code gegenereerd die te zien is naast de titel “Story Voting”. Met deze code kunnen deelnemers eenvoudig deelnemen aan een inschattingssessie via de mobiele app.

Inschatten van een user story

Op de startpagina van de Voting-app dient de zescijferige code ingevuld te worden om deel te nemen aan een sessie.
Vervolgens wordt er verzocht een naam in te geven om aan de andere deelnemers te tonen wie er stemt.
Eens de deelnemer in de sessie zit krijgt hij een overzicht te zien van alle stories die ingeschat gaan worden.

Er verschijnt een pop-up in de mobiele app wanneer de administrator in de desktop applicatie een stemsessie voor een bepaalde story gestart heeft. De gebruiker van de mobiele app kan er voor kiezen om meteen deel te nemen aan een stemronde of verder de stories te bekijken en later deel te nemen door de pop-up terug uit te klappen.

Eens een stemronde gestart is ziet de administrator een timer-icoontje naast die specifieke story staan en kan hij de stemming stoppen door op de “stop voting” knop te klikken.

Tijdens het stemmen moet de deelnemer een aantal velden (afhankelijk van de eerder gekozen strategie) invullen. De getoonde strategie is de JIDOKA-strategie. Hier wordt een story ingeschat volgens algemene complexiteit, technische uitdaging, UI/UX-complexiteit, aantal schermen en de mate van onzekerheid.

Als de administrator de stemsessie stopzet wordt er een overzicht gegenereerd van alle doorgevoerde stemmen. Onderaan de tabel kan er dan een finale score ingevuld worden die in overleg met het team wordt bepaald.

Nadat de finale score is toegekend kan deze teruggevonden worden in de overzichtspagina van de desktop applicatie.

Reflectie

Flutter was ons nog onbekend bij aanvang van de stageperiode. De eerste dagen bestonden vooral uit zelfstudie over het Flutter-framework met Dart als programmeertaal. Hierna konden we aan de slag gaan met het bouwen van de applicaties. Dankzij de goede ondersteuning van collega’s raakten we snel op gang.

We vonden het een zeer leerrijke en leuke ervaring om aan deze app te mogen werken in een professionele omgeving. Beide applicaties bevatten allerlei verschillende functionaliteiten en elementen wat voor veel variatie in het ontwikkelen zorgde. Ook de eerste ervaring met Flutter verliep erg positief. Er kunnen snel mooie en goed functionerende apps geschreven worden met behulp van dit framework.

Hoe gaan wij om met de coronacrisis

Lees meer

Mijn eerste week als stagiaire bij JIDOKA

Lees meer
Mijn eerste week als stagiaire bij JIDOKA

Van statisch naar dynamisch, een tools page verhaal

Lees meer