1. Inleiding

1.1 Opdracht

Wij hebben van het bedrijf JDI de opdracht gekregen om voor hen een HR-portaal te bouwen. Zelf gebruikte zij telkens excelsheets om veel dingen bij te houden zoals reiskostenvergoedingen en verlof. Zij wouden dit makkelijker maken door een groot deel ervan te automatiseren en het op een centraal punt te kunnen doen. In ons portaal zouden wij verschillende dingen opnemen zoals; het reserveren van een werkplek, reiskosten declaraties aan kunnen maken op basis van je thuis locatie en het kantoor of twee zelf ingevulde locaties, automatisch declaraties aanmaken voor mensen die die dag een plek gereserveerd hebben, verlof aanvragen kunnen doen en deze goedkeuren als je de juiste rechten hebt en wat algemene CRUD mogelijkheden voor het aanmaken, aanpassen en verwijderen van dingen zoals medewerkers, locaties en werkplekken.

1.2 Inhoudelijke uitdagingen

Voor mij is het een aardige tijd geleden dat ik heb geprogrameerd in de talen die we zouden gebruiken in dit project, als herkanser heb ik niet veel lessen gevolgt, dit was dus een beetje opfrissen weer. Verder is een grote uitdaging voor mij dit verslag schrijven en optijd afkrijgen, ik heb al meerdere malen het ISE en OOSE project gedaan en echter alleen vorig semester het ISE project ook daadwerkelijk afgerond.

1.3 Leerdoelen

Leerdoel 1: Duidelijker aangeven aan de groep waar ik aan werk.

Bij het vorige ISE-project werd er door de andere leden aangegeven dat het niet altijd duidelijk was waar ik aan werkte, dit kwam ook een deel doordat we veel vanuit huis werkte. In dit project wil ik dus duidelijker maken wat ik aan het doen ben op de dag.

Acties die ik ga ondernemen om dit te behalen:

  • Elke dag bij de daily stand-up aanwezig zijn en duidelijk aangeven wat ik ga doen.
  • In de middag na de pauze nog een keer laten weten wat ik de rest van de dag ga doen.
  • Bij het online werken na de daily stand-up vragen of het duidelijk is wat ik ga doen.

Mijn leerdoel zal behaald zijn als ik gemiddeld minder dan 1x per week een vraag krijg over wat ik aan het doen ben (buiten de daily stand-up om natuurlijk).

Leerdoel 2: Optijd aanwezig zijn op locatie.

Bij de eerste sprint review was er een retrospective puntje naar voren gekomen, dit was minder te laat zijn. Dit was niet alleen op mij gericht maar meer een iedereen in de groep moet dit doen maar ik merkte van mezelf wel dat dit bij mij inderdaad wel regelmatig voor kwam. Door de bus die ik neem ben ik altijd of 5 minuten te laat of ik moet de bus een half uur eerder nemen, vandaar dat ik vaak net iets later aan kwam.

Acties die ik ga ondernemen om dit te behalen:

  • De bus eerder pakken zodat ik altijd optijd ben.
  • Als er iets is waardoor ik wat later ben, dit optijd en duidelijk aangeven.

Mijn leerdoel zal behaald zijn als ik gemiddeld minder dan 1x per week later kom dan de afgesproken tijd.

2. Deelproducten

2.1 PvA

Het Plan van Aanpak (PvA) dient duidelijke te maken wat het plan is voor de duur van het project en duidelijke regels opstellen voor zowel de groep als de opdrachtgever.

Hieronder een tabel met per kwaliteitseis een beoordeling en toelichting:

Kwaliteitseis

Beroordeling

(goed, neutraal,

matig, zwak)

Toelichting
Voldoet aan de AIM-controlekaart (zie bijlage 10.2)GoedHet document is voorzien van alle punten die betrekking hebben tot het document en de vereisten van werken op confluence. Het bevat een inhoudsopgave en is opgebouwd uit hoofdstukken, paragrafen en alinea’s. Het document is doelgericht geschreven, woorden en werkwoorden zijn correct gespeld en het is geschreven in de lijdende vorm. Echter zijn alleen de tabellen en afbeeldingen niet genummerd.
Verwerking feedbackGoedEr is tussentijds niet erg veel feedback ontvangen over het PvA, de enige punten gingen over wat tijden die waren aangepast die nog niet verwerkt waren in het PvA, dat is nu wel gedaan.
Eisen van de opdrachtgever zijn duidelijk terug te zienGoedIn hoofdstuk 3 is duidelijk aangegeven wat de opdrachtgever van groep verwacht en wat er uiteindelijk opgeleverd wordt.
Het document laat geen ruimte voor uitendelijke duscussie met de opdrachtgeverGoedDe opgenomen projectgrenzen en randvoorwaarden dekken alle mogelijke verwarring af en zorgen ervoor dat er voor de opdrachtgever geen valse verwachtingen heeft en de projectgroep niet meer hoeft te maken dan al is afgesproken.
Het document bevat duidelijke en goed opgestelde kwaliteitseisenNeutraalDe opgenomen kwaliteitseisen zijn erg schaars en gaan bij productkwaliteit vooral over of ze voldoen aan de documentatie richtlijnen, bij de proceskwaliteit gaat het bijna alleen om het goedkeuren door 2 groepsleden en de tevredenheid van de opdrachtgever en begeleider.

Tabel 1: kwaliteitsoordeel PvA

Ik vind dat de kwaliteit van het PvA goed is, alle belangrijke punten worden aangetikt en zijn van voldoende of hogere kwaliteit. Ook is het doel van het document behaald.

2.2 Onderzoeksverslag

Het onderzoek dient verdieping te tonen over de API en een conclusie te trekken die betrekking heeft tot het project. Het onderzoel dat ik zal beoordelen is het Google Distance Matrix API Onderzoek.

Hieronder een tabel met per kwaliteitseis een beoordeling en toelichting:

Kwaliteitseis

Beroordeling

(goed, neutraal,

matig, zwak)

Toelichting
Voldoet aan de APA-richtlijnenNeutraalEr zijn bronnen gebruikt bij het schrijven van het onderzoek, deze zijn echter niet in de tekst zelf vermeld en ook staat de bronnenlijst niet op de APA manier vermeld. Dit laatste punt zal echter vooral komen doordat het allemaal links zijn van de documentatie over de API van google zelf, veel informatie zoals de auteur, datum etc zijn niet beschikbaar.
Voldoet aan de AIM-controlekaart (zie bijlage 10.2)GoedHet document is voorzien van alle punten die betrekking hebben tot het document en de vereisten van werken op confluence. Het bevat een inhoudsopgave en is opgebouwd uit hoofdstukken, paragrafen en alinea’s. Er is sprake een bronnenlijst. Het document is doelgericht geschreven, woorden en werkwoorden zijn correct gespeld en het is geschreven in de lijdende vorm. Echter zijn alleen de tabellen niet genummerd.
Verwerking feedbackGoedVoor dit onderzoek was er eerst een erg kleinschalig document opgezet waarbij veel onderdelen die het een echt onderzoek zouden maken ontbraken, hier is dus redelijk wat feedback over gekomen. Vervolgens heb ik voor dit onderzoek alle feedback zo goed mogelijk toegepast en aangevuld waar nodig.
Doel van het onderzoek is duidelijk en behaaldGoedEr is een duidelijke doelstelling vermeld en met de conclusie die getrokken wordt, wordt dit doel ook behaald.
Het onderzoek bestaat uit duidelijke deel en hoofd vragenGoedHet onderzoek is duidelijk verdeeld over 1 hoofdvraag en 3 deelvragen, de deelvragen samen geven genoeg informatie om de hoofdvraag te kunnen beantwoorden.
De aanpak voor het onderzoek is duidelijkNeutraalEr is een duidelijke methode opgesteld over hoe het onderzoek uitgevoerd zal worden. Dit zou echter misschien wel iets uitgebreid kunnen worden.
Er is een duidelijke conclusie getrokkenGoedIn de conclusie worden kort alle antwoorden op de deelvragen samengevat en hiermee wordt de hoofdvraag beantwoord. Hiermee wordt ook het doel van het document behaald.

Tabel 2: kwaliteitsoordeel onderzoeksverslag

Ik vind dat de kwaliteit van het onderzoek dus goed is, alle belangrijke punten zijn aangetikt en zijn van voldoende of hogere kwaliteit. Ook is het doel van document behaald.

2.3 SRS

Het Software Requirements Specification (SRS) dient als een soort van plattegrond en plan voor het bouwen van de software, het moet duidelijk maken welke functionaliteit er wordt geimplementeerd en hoe het eruit zal gaan zien zonder te technish te worden.

Hieronder een tabel met per kwaliteitseis een beoordeling en toelichting:

Kwaliteitseis

Beroordeling

(goed, neutraal,

matig, zwak)

Toelichting
Voldoet aan de AIM-controlekaart (zie bijlage 10.2)GoedHet document is voorzien van alle punten die betrekking hebben tot het document en de vereisten van werken op confluence. Het bevat een inhoudsopgave en is opgebouwd uit hoofdstukken, paragrafen en alinea’s. Er is sprake een bronnenlijst. Het document is doelgericht geschreven, woorden en werkwoorden zijn correct gespeld en het is geschreven in de lijdende vorm. Echter zijn alleen de tabellen en afbeeldingen niet genummerd.
Verwerking feedbackGoedOver dit document was veel feedback ontvangen tussentijds, een groot deel waren kleine dingen zoals dat de NFR's in een appart hoofdstuk moesten, dit was verkeerd gegaan doordat er geen H1 bovenaan de pagina stond, dit soort dingen en alle andere feedback punten zijn verwerkt in het document.
Er is een duidelijk domein modelGoedEr is een duidelijk domein model opgesteld dat het domein waarmee gewerkt wordt goed in kaart brengt. Ook is er een duidelijke glosary opgesteld die het domein verduidelijkt.
Er is een duidelijk use case modelNeutraalEr is een duidelijk use case model opgesteld die duidelijk maakt welke use cases er zijn en welke actoren hierbij horen. Er is echter wel iets veranderd aan hoe het verlof systeem werkt dat hier niet in is verwerkt.
Er zijn fully dressed use case descriptions uitgewerktGoedAlle use cases die niet alleen over CRUD-operaties gaan zijn uitgewerkt in fully dressed use case descriptions, deze bevatten alle benodigde informatie en ook een alternative flow waar dit toepasselijk is.
Er zijn functional requirements opgesteldGoedEr zijn zowel other functional requirements als non functional requirements omschreven die alles omvatten dat buiten de usecases valt, de non functional zijn ook opgedeeld door middel van de FURPS+ methode.
Er zijn user interface sketchesGoedEr zijn user interface sketches die duidelijk maken hoe de applicatie er uiteindelijk uit gaat zien, hierin zijn alle schermen die de gebruiker te zien krijgt verwerkt.

Tabel 3: kwaliteitsoordeel SRS

Ik vind dat de kwaliteit van het SRS goed is, alle punten zijn aangetikt en zijn van voldoende of hogere kwaliteit. Ook is het doel van het document behaald.

2.4 SDD

Het Software Design Description (SDD) dient het te verduidelijken van het ontwerp van de softwarestructuur en alle sub systemen die deel uit maken van de applicatie.

Hieronder een tabel met per kwaliteitseis een beoordeling en toelichting:

Kwaliteitseis

Beroordeling

(goed, neutraal,

matig, zwak)

Toelichting
Voldoet aan de APA-richtlijnenGoedEr is een bron gebruikt bij het opstellen van het SDD, deze staat vermeld in de bronnenlijst in de APA-stijl. Dit is echter wel maar 1 bron, dit komt vooral doordat dit document gaat over onze softwarestructuur en bronnen dus niet echt nodig zijn.
Voldoet aan de AIM-controlekaart (zie bijlage 10.2)GoedHet document is voorzien van alle punten die betrekking hebben tot het document en de vereisten van werken op confluence. Het bevat een inhoudsopgave en is opgebouwd uit hoofdstukken, paragrafen en alinea’s. Er is sprake een bronnenlijst. Het document is doelgericht geschreven, woorden en werkwoorden zijn correct gespeld en het is geschreven in de lijdende vorm. Echter zijn alleen de tabellen en afbeeldingen niet genummerd.
Verwerking feedbackGoedOver dit document was niet veel feedback ontvangen tussentijds, dit kwam grotendeels doordat het nog niet helemaal af was en een groot deel verkeerd begrepen was en dus verkeerd was neergezet. De feedback is vervolgens allemaal toegepast en het document is aangevult tot volledigheid.
Er is een duidelijk achitectueel overviewGoedEr is een duidelijk diagram aanwezig met daarin een schets van de architectuur van onze applicatie.
Er is een duidelijk deployment diagramGoedEr is een duidelijk deployment diagram aanwezig met daarin een schets van de uiteindelijke deployment van onze applicatie.
Bevat alle sub systemen en deze zijn goed uitgewerktMatigHet sub systeem van de backend is goed uitgewerkt en volledig, het bevat een volledig klassen diagram met daarin alle klasses van de backend. Ook zijn er sequence diagrammen aanwezig van use cases die de interactie tussen klassen laten zien. Echter ontbreekt op het moment van schrijven nog wel een sub systeem uitwerking voor de frontend, dit is dus wel een heel onderdeel dat nog mist.
Er zijn design desicions vermeldNeutraalEr zijn meerdere design decisions opgesteld voor de backend, deze zijn echter wel aan het einde pas opgesteld dus het kan zo zijn dat er beslissingen zijn genomen die we vergeten zijn te vermelden. Ook ontbreekt dus het gedeelte van de frontend op moment van schrijven, hier zijn dus ook geen design decisions over opgenomen.
Er is een duidelijk database design met een PDM, tabelbeschrijvingen en design decisionsGoedHet database design is goed en volledig uitgewerkt, er is een PDM aanwezig welke is gegenereerd uit een CDM en aangepast waar nodig, er zijn tabelbeschrijvingen aanwezig voor elke tabel en kolom en er zijn design decisions opgenomen.

Tabel 4: kwaliteitsoordeel SDD

Ik vind dat de kwaliteit van het onderzoek neutraal is, de onderdelen die erin zitten zijn goed uitgewerkt en voldoen aan de eisen, maar er ontbreekt nog een cruciaal onderdeel. Hierdoor is ook het doel niet helemaal behaald, het dient het ontwerp te verduidelijken en dat doet het ook voor de backend en de database maar niet over het geheel.

2.5 Unittests

De unittests dienen aan te tonen dat de geschreven code goed werkt en ook tijdens het project door blijft werken.

Hieronder een tabel met per kwaliteitseis een beoordeling en toelichting:

Kwaliteitseis

Beroordeling

(goed, neutraal,

matig, zwak)

Toelichting
Er zijn unittests geschreven voor alle methodes waarbij dit van belang isNeutraalEr zijn unittests geschreven voor alle methodes in de service laag, de rest van de klasses worden niet getest door unittests. De recource laag en DAO van de backend en de methodes van de frontend worden wel getest door flow tests. In zowel de frontend als backend hadden er nog wel meer unittests geschreven kunnen worden.
Er is een 80% of hoger line coverage over de klassen waarbij dit van belang isGoedAls er gekeken wordt naar de line coverage van de services laag is er een line coverage van 85% (433/507).
Alle unittests zijn nuttigGoedAlle unittests die geschreven zijn testen ook daadwerkelijk de uitkomst van de functie, er zijn geen 1=1 unittests geschreven.
Alle unittests slagenGoedVan de 91 unittests slagen er 91, dit is een 100% slagings percentage.

Tabel 5: kwaliteitsoordeel unittests

Ik vind dat de kwaliteit van de unittests goed is, alle unittests slagen, ze zijn allemaal nuttig en er is een line coverage van 85% over de onderdelen waar het toe doet.

2.6 Stuk code

De code dient als functionaliteit van de applicatie, het is een uitwerking van de use cases en/of non/other functional requirements. Het stukje code dat ik zal beoordelen is DeclaratieAuto.java.

Hieronder een tabel met per kwaliteitseis een beoordeling en toelichting:

Kwaliteitseis

Beroordeling

(goed, neutraal,

matig, zwak)

Toelichting
Code is goed onderhoudbaarGoedDe hoofdmethode is opgedeeld in meerdere methodes die elk hun eigen ding doen. Ook zijn er geen magic numbers of strings gebruikt, deze zijn allemaal aangemaakt als variabelen dus als deze aangepast moeten worden kan dit op 1 plek en is het gelijk duidelijk wat het is.
Code maakt gebruik van dependency injectionZwakIn het stukje code wordt geen dependency injection gebruikt, er wordt een nieuwe instantie aangemaakt van alle DAO's die gebruikt worden.
Er zijn unittests geschreven voor de codeGoedEr zijn voldoende unittests geschreven voor de code, het is maar een unittest maar die loopt alle scenarios door.
Geen monster methodes die alles doenGoedDe methode is opgedeeld in kleinere methodes die elk hun eigen ding doen.

Tabel 6: kwaliteitsoordeel stuk code

Ik vind dat de kwaliteit van de code voldoende is, als er gebruik gemaakt wordt van dependency injection zou het naar een goed gaan, de rest is namelijk wel meer dan voldoende.

2.7 Testrapport

Het Testrapport dient aan te tonen hoe het testen verlopen is en of er ergens nog problemen zijn.

Hieronder een tabel met per kwaliteitseis een beoordeling en toelichting:

Kwaliteitseis

Beroordeling

(goed, neutraal,

matig, zwak)

Toelichting
Voldoet aan de AIM-controlekaart (zie bijlage 10.2)GoedHet document is voorzien van alle punten die betrekking hebben tot het document en de vereisten van werken op confluence. Het bevat een inhoudsopgave en is opgebouwd uit hoofdstukken, paragrafen en alinea’s. Er is sprake een bronnenlijst. Het document is doelgericht geschreven, woorden en werkwoorden zijn correct gespeld en het is geschreven in de lijdende vorm. Echter zijn alleen de tabellen en afbeeldingen niet genummerd.
Er is duidelijk hoe is getest en welke tools hiervoor worden gebruiktGoedEr staat duidelijk aangegeven dat er getest wordt met unittests en flow tests, ook staat er aangegeven welke tooling zowel de frontend als backend hiervoor gebruiken.
Er zijn bekende errors/bugs opgesteld als deze aanwezig zijnGoedEr zijn bugs bekend bij het team en deze zijn ook verwerkt in het testrapport met duidelijk aangegeven wanneer dit gebeurdt en hoe dit opgelost zou kunnen worden.
Alle tests zijn aanwezigMatigVoor de backend zijn alle unittests opgenomen, ook zijn flowtests opgenomen die de frontend, backend en database testen. Er zijn op het moment van schrijven echter nog geen frontend unittests opgenomen in het document.
Er is een 100% slagings percentageGoedAlle tests die zijn opgenomen in het testrapport slagen.

Tabel 7: kwaliteitsoordeel testrapport

Ik vind dat de kwaliteit van het testrapport nog net voldoende is, voor de frontend ontbreken wel de unittests maar de frontend is niet helemaal niet getest, deze wordt ook meegenomen in de flow tests. Echter is het wel een belangrijk deel dat ontbreekt.

3. Eindproduct

Het doel van het eindproduct was de werkzaamheden van JDI versimpelen door te automatiseren wat kan en er een centraal portaal voor te maken waardoor de excel sheets en persoonlijke aanvragen niet meer nodig zijn.

Hieronder een tabel met per kwaliteitseis een beoordeling en toelichting:

Kwaliteitseis

Beroordeling

(goed, neutraal,

matig, zwak)

Toelichting
Er is de mogelijkheid om in te loggenGoedEr is een gebruikers systeem waardoor gebruikers moeten inloggen op het portaal om het te kunnen gebruiken.
Er is de mogelijkheid om gebruikers te beherenGoedVoor beheerders is er de mogelijkheid om gebruikers en alle toepasselijke gegevens aan te passen, te verwijderen of aan te maken.
Er is de mogelijkheid om een werkplek te reserveren en ook weer uit te schrijvenGoedGebruikers van het portaal kunnen in het werkplek overzicht een werkplek aankliken om hier op ingeschreven te worden als hier plek voor is. Als een werknemer toch niet op de werkplek wil werken kunnen zij of een andere plek aan klikken of de thuis plek kiezen om zo uitgeschreven te worden.
Er is de mogelijkheid om werkplekken te beherenGoedVoor beheerders is er de mogelijkheid om werkplekken en alle toepasselijke gegevens aan te passen, te verwijderen of aan te maken.
Er is de mogelijkheid om locaties te beherenGoedVoor beheerders is er de mogelijkheid om locatiesen alle toepasselijke gegevens aan te passen, te verwijderen of aan te maken.
Er is de mogelijkheid om reiskosten te declarerenGoedGebruikers van het portaal kunnen op de declaratie pagina een overzicht zien van hun huidige declaraties en hier ook een nieuwe declaratie aanmaken op basis van of ze thuis hebben gewerkt, op locatie of naar een klant zijn geweest. Hierbij wordt bij woon-werk automatisch de afstand berekend tussen de thuislocatie en het kantoor, ook heeft de gebruiker de mogelijkheid om zelf 2 locaties in te vullen, deze worden dan via een google API opgehaald om ervoor te zorgen dat het legitieme locaties zijn.
Reiskosten worden elke dag automatisch gedeclareerdGoedVoor alle gebruikers in het systeem wordt er elke dag automatisch een declaratie aangemaakt, als zij dit zelf niet al hadden gedaan, deze wordt vervolgens aangemaakt op basis van de invulling van het werkplek schema. Dus als ze niks hadden ingevuld en op thuis stonden werd dit automatisch in de declaratie verwerkt en zo ook voor als ze stonden ingeschreven op een werkplek.
Er is de mogelijkheid om declaraties te beherenGoedVoor beheerders is er de mogelijkheid om declaraties en alle toepasselijke gegevens aan te passen, te verwijderen of aan te maken.
Er is de mogelijkheid verlof aan te vragenGoedGebruikers van het portaal kunnen op de verlof pagina een overzicht zien van van hun huidige verlof aanvragen en hier ook een nieuwe aanvraag doen. Hierbij wordt er automatisch uitgerekend hoeveel verlofuren ze dit zou kosten.
Er is de mogelijkheid verlof aanvragen goed/af te keurenNeutraalGebruikers met de rol Product owner of Lead link kunnen in het portaal verlof aanvragen goed keuren op dezelfde manier en volgoorde die JDI ook gebruikt op moment. Bij een aanvraag moet deze eerst goedgekeurd worden door een PO en vervolgens door een LL en dan is deze geaccepteerd, als een PO of LL een aanvraag doet hoeft alleen een LL dit goed te keuren. Op moment is er alleen een bekende bug waardoor het menu waarin ze deze aanvragen kunnen zien en goedkeuren verborgen is voor alle niet beheerders en dus ook PO's en LL's, de functionaliteit is er echter wel.
Het product bevat geen bugsNeutraalDe enige bug die op moment bekend is, is het verborgen menu voor niet beheerders waardoor verlof aanvragen niet goedgekeurd kunnen worden tenzij de PO's en LL's ook beheerders zijn, dit zou echter een simpele fix zijn.

Tabel 8: kwaliteitsoordeel eindproduct

Ik vind dat de kwaliteit van het eindproduct erg goed is, alle bovengenoemde punten zijn voldoende of beter. Alle wensen van de opdrachtgever zijn behandeld op een slack koppeling toevoegen na, hier had de opdrachtgever zelf al vroeg over aangegeven dat dit een heel erg optioneel deel was en meer een extra als er tijd zou zijn. Verder is de enige bug die functionaliteit breek die van het verlof keuren, deze kan echter heel simpel opgelost worden als hier wat tijd voor zou zijn.

4. Projectmethode

De projectmethode die wij hanteerde was Scrum, Scrum is een agile softwareontwikkelmethode, dat wil zeggen dat er in sprints gewerkt zal worden. Bij Scrum wordt er ook incrementeel gewerkt, dit betekendt dat elke sprint een onderdeel volledig wordt uitgewerkt met documentatie, tests en functionaliteit. Hierdoor krijg je bij elke sprint een opleverbaar product dat elke sprint groeit. Per sprint zijn er een paar use cases gepakt en uitgewerkt, zo heeft de opdrachtgever ook een duidelijk beeld van wat ze die sprint kunnen verwachten. Ook maakte we gebruik van bepaalde Scrum ceremonies zoals; de daily standup, deze deden we elke dag om 9:30, soms is er ook gekozen in de middag nog een kleine standup te doen. Ook hebben we gebruik gemaakt van sprint planningen om de volgende sprint in te delen op basis van de tijden die uit ons planningspoker kwam. Verder hebben we ook een sprint retrospective gehouden na elke sprint om terug te kijken naar wat goed ging, wat beter kon en waar we mee moesten stoppen. Tot slot hebben we ook nog gebruik gemaakt van sprint reviews waarbij we de opdrachtgever lieten zien wat we die sprint af hebben gekregen, wat niet af was en wat we de volgende sprint wouden gaan doen.

Ik vind wij dat dit project goed gebruik hebben gemaakt van wat Scrum ons aanbood, de daily standups waren handig om iedereen op een lijn te krijgen over wat iedereen aan het doen was. De sprint planningen zorgde ervoor dat de sprints goed ingepland konden worden, het kwam natuurlijk wel voor dat we soms net iets te veel taken hadden opgenomen maar het is ook lastig schatten. De sprint retrospectives hielpen erg om te leren van wat goed ging en wat niet zodat we dit de volgende sprint konden aanpassen en hierdoor beter konden werken. Tot slot de sprint reviews waren goed om aan de opdrachtgever aan te tonen wat er gedaan was en wat het plan was voor de volgende sprint. Doordat het incrementeel was hadden we ook elke sprint iets om te laten zien aan de opdrachtgever, dat was voor hun ook een stuk fijner is dan hoe het werkte bij de RUP-methode van ISE-P.

5. Rol

Tijdens het project had ik samen met Connor de rol kwaliteitsmanager dit is uiteindelijk erg goed uitgekomen aangezien ik vooral aan de backend en database werkte en Connor aan de frontend, zo had elk sub systeem zijn eigen kwaliteitsmanager. Tijdens het project heb ik mij buiten mijn eigen bijdrage aan het programeren en documenteren ook beziggehouden met het zorgen dat alles van goede kwaliteit was. Ik heb veel documenten doorgelopen om deze te controleren en heb ook aardig wat pull requests gereviewed, ik kan natuurlijk niet alles nakijken dus als iemand anders dit deed zouden zij zich houden aan de kwaliteitseisen en definition of done die ik heb geschreven en zijn opgenomen in het PvA. Ook heb ik me beziggehouden met wat feedback toepassen die we tussentijds onvangen hadden van onze procesbegeleider.

Situatiebeschrijvingen:

In week 1 had ik in het PvA het hoofdstuk 'Op te leveren producten en kwaliteitseisen' geschreven als kwaliteitsmanager, hier hadden we na het assessment van het PvA feedback op gekregen van de procesbegeleider. Vervolgens ben ik deze aan gaan passen om ervoor te zorgen dat deze beter geformuleert, meer concreet en meer toepasselijk en meetbaar zouden zijn. Na het aanpassen liet ik andere team leden het zien om te vragen of het zo beter was en ze waren hier tevreden mee, dit was fijn want nu wist ik dat ik ze goed verbeterd had. Nu hadden we dus beter opgestelde proces en kwaliteitseisen en was het voor de rest duidelijk waar iets aan moest voldoen als zij dit zouden reviewen.

Tijdens sprint sprint 3 had Thijmen een pull request aangemaakt voor de functionaliteit gebruikers lijst ophalen. Ik ben deze pull request gaan nakijken om te bepalen of hij van voldoende kwaliteit was. Omdat er een paar stukjes code in stonden die terwijl hij aan het programeren was veranderd waren moesten die delen ook aangepast worden in zijn pull request om ervoor te zorgen dat er geen niet werkende code op de develop kwam. Ook werd er in een van de functies het wachtwoord mee opgehaald, deze was voor deze functie niet van belang dus ook daar liet ik een comment over achter. Thijmen zag dat ik de comments had achtergelaten en was aan de slag gegaan met het aanpassen, toen dit gedaan was keek ik er weer overheen en vond ik een verandering die bestaande functionaliteit in de knoop zou kunnen brengen dus ook hier liet ik een comment over achter. Hier kreeg ik vervolgens een reactie op die mij geruststelde en vervolgens kon het dus gemerged worden. Nu hadden we dus een voldoende stuk code die goede functionaliteit toevoegde en niks anders in de problemen bracht.


Tijdens het uitvoeren van mijn rol heb ik geleerd om soms iets zorgvuldiger te kijken na het werk dat ik na kijk en ook niet te vergeten de code ook zelf te runnen om te kijken of het bij mij ook goed gaat, dit deed ik soms wel soms niet. Voor een volgende keer kan ik hier dus beter op letten.

Deze rol past best goed bij mij vind ik zelf, ik vind het vaak wel leuk om werk na te kijken en ben er ook wel redelijk zorgvuldig in. Ook ben ik zelf soms wel een beetje een perfectionist als het gaat om dingen gelijk en consistent krijgen dus dit kan soms ook hiermee helpen.

6. Competenties

6.1 OOSE P-04

De student ontwerpt de software van een systeem en documenteert deze onder andere met behulp van UML diagrammen en decision templates in een Software Design Specification (SDD).

De eerste stap voor het ontwerpen van de database, de datastructuur achter de hele applicatie, was een CDM opstellen. Deze heb ik samen met de hulp van Niels gemaakt. Ik heb vervolgens in het SDD het data ontwerp voor de database gemaakt, hierin is het PDM opgenomen met tabel beschrijvingen en per kolom een omschrijving. Ook zijn hierin de design decision opgenomen die ik heb gemaakt bij het opstellen van de uiteindelijke versie van de database. Omdat we incrementeel werkte is de database niet in een keer volledig afgerond, deze is door de loop van het project meerdere malen aangepast (PDM op 29-04-22, PDM op 09-06-22). Het goed hebben van de database was erg belangrijk omdat elk ander sub systeem afhankelijk is van de datastructuur die hier is opgenomen.

6.2 OOSE P-05

De student implementeert een gedistribueerd systeem, evalueert het ontwerp en de realisatie daarvan en zorgt voor traceerbaarheid daartussen en naar de functionele en niet-functionele eisen.

In het SRS is het domein model opgenomen, omdat we incrementeel werkte heb ik deze regelmatig aangepast en uitgebreid tot de uiteindelijke versie die daar nu is te vinden (Domein model op 08-04-22). Verder waren er in het SRS ook User stories opgenomen, deze heb ik gekoppeld aan de use cases die we hadden opgesteld om traceerbaarheid toe te voegen. Ook gebruikte wij op Jira de Story Map om taken op te delen in epics, ik heb de bijbehorende use cases toegevoegd aan de epics om meer traceerbaarheid toe te voegen. Tot slot heb ik ook al mijn branches via Jira aangemaakt zo stond altijd de issue bij de branch en de issue was dus via de epic terug te leiden naar de bijbehordende use case. Dit allemaal zorgt ervoor dat de code en documentatie erg traceerbaar zijn en het makkelijk te achterhalen is wat waarbij hoort en waarom het dus is gedaan. Bij mijn vorige project kregen we als commentaar vaak dat de traceerbaarheid niet genoeg was, daarom heb ik daar deze keer extra goed op gelet.

6.3 OOSE P-07

De student bewaakt continu de kwaliteit van de software en het proces door o.a. reviews en gestructureerd testen en stuurt waar nodig bij. 

Zoals ik beschreven heb bij hoofdstuk 5 was mijn rol kwaliteitsmanager, hier heb ik 2 situatiebeschrijvingen verwoord met daarin elk 1 voorbeeld van een concrete bijdrage. De eerste situatie beschreef het opstellen van het hoofdstuk 'Op te leveren producten en kwaliteitseisen' in het PvA en de feedback die hierop ontvangen was verwerken. De tweede situatie beschreef een review doen over een pull request gemaakt door Thijmen en hier comments op achter laten die vervolgens verbeterd zijn. Verder heb ik ook de sprint retrospectives bijgewoond, hierbij heb ik een foto van het bord van de eerste retro gemaakt. Verder heb ik ook tests geschreven voor de code die ik heb gemaakt, een voorbeeld hiervan zijn de tests van de methode addWerkplek. Dit allemaal was natuurlijk erg belangrijk voor het project zodat de kwaliteit conctinu bewaakt werd en alles van hoge kwaliteit was en ook daadwerkelijk wekte naar behoren.

7. Leerdoelen

7.1 Leerdoel 1: Duidelijker aangeven aan de groep waar ik aan werk.

Mijn eerste leerdoel ging over het duidelijker aangeven aan de rest van de groep waar ik aan werk, dit was namelijk iets dat werd aangegeven als feedback door mijn groepsgenoten uit mijn vorige project. We werkte vooral veel thuis en hier was niet super veel communicatie door de dag heen dit heeft hier ook voor gezorgd natuurlijk, maar we hebben ook wel op locatie gewerkt dus het was niet alleen dat. Nu hebben we dit project bijna elke dag wel op school gewerkt en slechts enkele dagen vanuit huis, dit hielp ook erg hiermee.

De acties die ik had opgesteld waren als volgt:

  • Elke dag bij de daily stand-up aanwezig zijn en duidelijk aangeven wat ik ga doen.
  • In de middag na de pauze nog een keer laten weten wat ik de rest van de dag ga doen.
  • Bij het online werken na de daily stand-up vragen of het duidelijk is wat ik ga doen.

Mijn leerdoel zal behaald zijn als ik gemiddeld minder dan 1x per week een vraag krijg over wat ik aan het doen ben (buiten de daily stand-up om natuurlijk).

Voor mijn eerste actie, ik heb het niet gered om elke dag optijd te zijn voor de daily standup, dit was vooral aan het begin van het project, later in het project ben ik wel bijna altijd bij geweest. Nu heb ik aan het begin dan wel als ik te laat was alsnog even in de groep aangegeven waar ik op moment mee bezig was op wat ik van plan was om te gaan doen. Voor de tweede actie, als ik in de middag bezig was met iets anders dan ik had aangegeven heb ik dit vermeld, soms deden we ook een kleine mid daily standup om dit aan te geven. Voor de derde actie, bij de daily standup hebben we geprobeerd erin te houden aan het einde een kleine samenvatting te geven van wat iedereen nu ging doen, diet diende dus ook bij te dragen aan deze actie voor mij. Verder heb ik tijdens het project amper gehoord dat mensen niet wisten wat ik deed.

Als ik nu dus kijk naar de acties die ik heb ondernomen en de resultaten daarvan kan ik zeggen dat dit leerdoel behaald is. Het doel dat ik heb opgesteld is behaald en ik voelde ook dat alles een stuk duidelijker verliep, dat kan ook komen doordat ik het erg fijn vond om in deze groep te werken, de sfeer was erg fijn dus had ik niet zo veel moeiten met dingen aantonen.

 Voor een volgende keer zal ik proberen het zo te houden, misschien zou ik alleen wel wat beter ook kunnen vragen aan andere of het ook daadwerkelijk duidelijk is aangezien ik dat nu niet echt heb gedaan en daar dus niks concreets voor heb.

7.2 Leerdoel 2: Optijd aanwezig zijn op locatie.

Mijn tweede leerdoel ging over het optijd aanwezeg zijn op locatie, dit is iets wat in de eerste sprint retrospective naar boven kwam als een feedback punt op de groep, er waren niet veel dagen waarop iedereen er optijd was. Ik herkende dit ook wel bij mezelf en weet van mezelf dat als mijn motivatie daalt ik meer geneigt ben om te laat te komen. Hier wou ik deze keer dus iets tegen doen. De tweede helft van het project is het nu ook een stuk beter gegaan.

De acties die ik had opgesteld waren als volgt:

  • De bus eerder pakken zodat ik altijd optijd ben.
  • Als er iets is waardoor ik wat later ben, dit optijd en duidelijk aangeven.

Mijn leerdoel zal behaald zijn als ik gemiddeld minder dan 1x per week later kom dan de afgesproken tijd.

Voor mijn eerste actie, ik heb geprobeerd elke dag een bus eerder te pakken dit betekende dat ik 25 minuten voor de afgesproken tijd aanwezig was op school, dit ging wel goed. Ik heb het echter niet elke dag gered, soms pakte ik nog de bus waardoor ik 5 minuten later was, maar dit was wel flink verminderd. Voor de tweede actie, de momenten waarop ik de bus later pakte liet ik dit weten voor de tijd waarop we zouden beginnen, dit zou vaak 30 minuten zijn voor begintijd. Voor dagen waarbij ik van te voren wist dat ik afwezig zou zijn of later zou aansluiten liet ik dit ook van tevoren ook weten, vaak een paar dagen van te voren en herhaalde ik het nog een keer de dag ervoor of het stond ook in onze calender. Dit allemaal zorgte voor een vlottere werksfeer waarbij de daily standup optijd kon beginnen met iedereen aanwezig, ook de algemene sfeer in een groep is natuurlijk beter als je niet steeds te laat bent. Als ik kijk naar de tweede helft van het project ben ik niet vaak meer telaat gekomen waarbij ik dit niet al van tevoren had aangegeven, dit is dus wel minder dan 1x per week gemiddeld geweest.

Als ik nu dus kijk naar de acties die ik heb ondernomen en de resultaten daarvan kan ik zeggen dat dit leerdoel behaald is. Het doel dat ik heb opgesteld is behaald en alles liep een stuk soepeler.

Voor een volgende keer zal ik proberen dit voort te zetten en nog meer erop te letten en bewust te zijn van wat de invloed hierop is in de groep. Ook als verbetering van de uitvoering van dit leerdoel zou ik zeggen dat ik meer dingen concreet bij moet houden zoals het aantal keren dat het wel voor kwam zodat ik hier direct een conclusie uit zou kunnen trekken.

8. Conclusie

Het project is afgerond en het eindproduct is opgeleverd. Wij hebben ons best gedaan om alle wensen van JDI te implementeren en een voldoende portaal op te leveren. Voor JDI zelf hebben wij op 15-06-22 om 16:00 nog een presentatie om ons werk gemaakt voor hun voor te leggen. Ook hebben wij voor school nog een assessment om ons project voor te dragen en beoordeeld te worden, dit is op 23-06-22 om 11:00, op mijn verjaardag. Het product dat wij hebben opgeleverd bevat alle wensen van de opdrachtgever die haalbaar waren binnen de gegeven tijd. Het doel van het project zou ook gedekt moeten zijn, het doel zoals opgenomen in de inleiding was een HR-portaal maken die het werk van JDI zou versimpelen. Op dit moment hebben wij van de opdrachtgever nog geen tevredenheid of oordeel ontvangen, hier kan ik dus nog niks over zeggen, alleen dat ze telkens tijdens de sprint reviews telkens al positief verast waren met het product. Ik als onderdeel van de projectgroep kan echter zeggen dat ik tevreden ben met ons resultaat.

In mijn inleiding heb ik het gehad over inhoudelijke uitdagingen, hierin beschreef ik dat ik twee verschillende uitdagingen had: het programeren in de taal waarmee we aan de slag gingen, en het schrijven van mijn projectverslag, dit verslag. Voor het eerste deel, ik pakte al snel weer op hoe we hiermee te werk gingen, na de eerste week programeren ging alles al erg soepel en zat ik er weer helemaal terug in. Voor het tweede deel, het schrijven van dit verslag, ik heb wederom tussentijds niks ingeleverd hiervoor, ik heb dus ook geen feedback kunnen krijgen hierover. Dit kwam doordat ik er op dat moment nog niet aan had gewerkt, ik werk goed onder tijdsdruk en aangezien het tussentijds optioneel is maakte ik me hier geen zorgen over. Nu heb ik uiteindelijk wel een goed en volledig verslag geschreven dat hopelijk de voldoende waard is.

Verder zijn er mijn leerdoelen, deze heb ik in het hoofdstuk hierboven besproken. Beide leerdoelen heb ik wel behaald, dit is een goede vooruitgang aangezien dit wel punten waren waarop ik wist dat ik vaak de mist in ging. Het is dus erg fijn hier iets aan te hebben gedaan.

Tot slot nog het project als geheel. De projectgroep was erg fijn om mee te werken, de sfeer was erg goed en ik denk nog wel het beste van alle groepjes waar ik tot nu toe in heb gezeten. Er was een goede balans tussen serieus werken en ook nog wel wat grappen tussendoor maken. Ook de gezamelijke wandeling naar de Coop en de afsluiter aan het einde van de dag hielpen hier ook wel echt mee. Zo had je een moment dat niet werkgericht was om toch een beetje te bonden. Ook de projectmethode waarmee we hebben gewerkt was erg fijn en paste goed bij het project in mijn ogen. Verder heb ik ditmaal ook mijn verslag wederom optijd af gekregen dus hopelijk ben ik nu wel klaar met het project (op de assessment na).

Als laatste moet ik wel zeggen dat dit verslag op confluence maken erg vervelend was, ik mis veel van de functionaliteiten zoals het simpel kunnen linken naar een hoofdstuk in plaats van alleen de gehele pagina. Hierdoor heb je als je naar meerdere dingen in een document wilt verwijzen telkens dezelfde link en moet er in het document gezocht worden naar het deel waar het over gaat. Ook zorgt dit ervoor dat de link telkens hetzelfde is terwijl er over ander werk gepraat wordt, maar voor het verslag wordt er wel steeds gezeged 'links naar 3-5 specifieke bijdragen'. Dit is een punt wat ik wel jammer vond.

9. Bronnenlijst

HAN Studiecentra - APA: Bronnenlijst. (2022, 9 mei). HAN. Geraadpleegd op 9 juni 2022, van https://specials.han.nl/sites/studiecentra/auteursrechten/bronnen-vermelden/apa-normen/

10. Bijlage

10.1 Factsheet

Voor de uitgeschreven competenties zie bijlage 10.3.

CompetentieLink naar productBeschrijving eigen bijdrage
OOSE P-1Projectverslag H2.1Ik heb in mijn verslag een oordeel geschreven over het PvA
OOSE P-1Projectverslag H4Ik heb in mijn verslag een evaluatie gegeven over onze projectmethode
OOSE P-1Projectverslag H4Ik heb hier aangetoon hoe wij het project hebben uitgevoerd met betrekking tot de Scrum methodes
OOSE P-1Projectverslag H5Ik heb in mijn verslag aangetoont dat ik mijn rol heb uitgevoerd en het ook gehad over het evalueren en aanpassen van het PvA
OOSE P-2SRS H2Ik heb in het SRS het domein model aangepast tot aan de huidige versie zodat hij de wensen van de opdrachtgever ondersteund
OOSE P-2SRS H4Ik heb in het SRS veel feedback gegeven en toegepast op de use case descriptions
OOSE P-2SRS H5, H6, H7Ik heb in het SRS een deel van de other functional requirements, non functional requirements en user stories opgesteld
OOSE P-3Projectverslag H2.2Ik heb in mijn verslag de kwaliteit van mijn onderzoek beoordeeld als goed
OOSE P-3Google Distance Matrix API OnderzoekIk heb het onderzoek over de Google API geschreven en aangepast
OOSE P-3Database onderzoekIk heb samen met een ander lid gewerkt aan de eerste versie van het Database onderzoek
OOSE P-4Projectverslag H6.1Ik heb in mijn verslag geschreven over het halen van deze competentie met meerdere bewijsstukken
OOSE P-4SDD H2Ik heb in het SDD het achitectueel overview toegelicht
OOSE P-4SDD H3.4Ik heb in het SDD het PDM verwerkt aan de hand van het eerst opgestelde CDM
OOSE P-4SDD H3.4Ik heb in het SDD het PDM toegelicht met tabel beschrijvingen voor elke kolom
OOSE P-4SDD H3.4Ik heb in het SDD design decisions opgenomen over de database
OOSE P-5Project verslag H6.2Ik heb in mijn verslag geschreven over het halen van deze competentie met meerdere bewijsstukken
OOSE P-5Domein model (08-04-22, 10-06-22)Ik heb door het project heen het domein model geevalueerd en aangepast om te zorgen dat dit overal overeen komt
OOSE P-5OFR (12-05-22)Ik heb de userstories gekoppeld aan de use cases om traceerbaarheid toe te voegen
OOSE P-5Jira Stroy MapIk heb op Jira de epics gekoppeld aan de use cases om traceerbaarheid toe te voegen
OOSE P-5Screenshot Bitbucket branchesIk heb al mijn branches op Bitbucket die te maken hadden met een taak aangemaakt via Jira om traceerbaarheid toe te voegen
OOSE P-6Jira issueIk heb tijdens het project gebruik gemaakt van Jira
OOSE P-6PvAIk heb tijdens het project confluence gebruikt om het PvA op te stellen waarin we het project organiseren
OOSE P-6Bitbucket commitsIk heb tijdens het project gebruik gemaakt van bitbucket
OOSE P-7Projectverslag H6.3Ik heb in mijn verslag geschreven over het halen van deze competentie met meerdere bewijsstukken
OOSE P-7Projectverslag H5Ik heb in mijn verslag aangetoond dat ik mijn rol als kwaliteitsmanager heb uitgevoerd
OOSE P-7PvA H6Ik heb in het PvA de kwaliteitseisen opgenomen als richtlijnen voor de groep
OOSE P-7Pull request met commentsIk heb op een pull requests comments achter gelaten ter commentaar op de kwaliteit van de code
OOSE P-7Sprint retro bordIk heb meegedaan aan de eerste sprint retrospective en heb hierbij een foto van het bord gemaakt
OOSE P-7UnittestsIk heb tijdens het project constant unittests gemaakt voor de code die ik had geschreven, dit is een voorbeeld hiervan
OOSE P-8Projectverslag H7Ik heb in mijn verslag geschreven over mijn leerdoelen en hier ook bij aangegeven eventuele verbeteringen en voorderingen voor een volgende keer
OOSE P-8Projectverslag H5Ik heb in mijn verslag geschreven over mijn rol en hoe ik hier een volgende keer verbeteringen aan kan inbrengen
OOSE P-8ProjectverslagIn mijn verslag evalueer ik veel punten van het project en hoe deze beter zouden kunnen. Dit verslag dient als een grote zelfreflectie met punten om zelf een volgende keer in te kunnen verdiepen

10.2 AIM controlekaart


CONTROLEKAART DOCUMENTEN_
Een document dient aan alle onderstaande criteria te voldoen.
Algemeen
1. Het document is op tijd en op de juiste plek en wijze ingeleverd.
2. Het document oogt netjes (geen verspringend lettertype, geen rommelige vormgeving en geen onleesbare stukken tekst).
3. Het document is voorzien van een titel, studentnaam of -namen (alfabetisch geordend), studentnummers, klas, groepsnummer, docentnaam of -namen, datum, course/semestergegevens en versienummer.
4. Het document is voorzien van een inhoudsopgave en paginanummers. Opbouw
5. Het stuk is opgebouwd uit hoofdstukken, paragrafen en alinea’s. Het document bevat in ieder geval een inleiding, kerntekst en conclusie.
6. Bijlagen, plaatjes en tabellen hebben een naam en een nummer en zijn een zinvolle aanvulling op de hoofdtekst.
7. Er is sprake van APA-bronvermelding en er is een APA-literatuurlijst aanwezig. Stijl, spelling en grammatica
8. Het document is doelgericht geschreven en in de schrijfstijl is rekening gehouden met de doelgroep.
9. Vervoegingen van werkwoorden zijn correct gespeld. Er staan maximaal drie foutief gespelde werkwoorden op een willekeurige pagina.
10. Woorden zijn correct gespeld. Er staan maximaal drie foutief gespelde woorden op een willekeurige pagina.
11. Het document is in de actieve vorm geschreven. Het bevat nagenoeg geen lijdende zinnen.

10.3 Uitgeschreven competenties

In het OOSE-project (schooljaar 2021-2022) moet je voldoen aan acht competenties. Dit zijn:


OOSE P-01. De student kan een project uitvoeren op basis van Scrum en een plan van aanpak en hierop zowel op individueel als projectniveau evalueren en reflecteren.
OOSE P-02. De student maakt een analyse van de eisen en wensen voor de software van een systeem, en documenteert deze in een Software Requirements Specification (SRS)
OOSE P-03. De student voert een kwalitatief en kwantitatief onderzoek op een systeem uit en levert hierover een onderzoeksrapport op
OOSE P-04. De student ontwerpt de software van een systeem en documenteert deze onder andere met behulp van UML diagrammen en decision templates in een Software Design Specification (SDD)
OOSE P-05. De student implementeert een gedistribueerd systeem, evalueert het ontwerp en de realisatie daarvan en zorgt voor traceerbaarheid daartussen en naar de functionele en niet-functionele eisen.
OOSE P-06. De student maakt gebruik van de aangereikte ontwikkeltools om het project te organiseren en bij te sturen en ondersteunt de leden van het ontwikkelteam bij hun taakuitoefening
OOSE P-07. De student bewaakt continu de kwaliteit van de software en het proces door o.a. reviews en gestructureerd testen en stuurt waar nodig bij.
OOSE P-08. De student kan zich zelfstandig verder verdiepen in de beroepstaak. 

  • No labels

0 Comments

You are not logged in. Any changes you make will be marked as anonymous.