You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 45 Next »

Inleiding

Het is de opdracht om een HR-portaal te ontwikkelen, het hoofddoel van het portaal is werkplaatsbezetting op te slaan, op basis opgeslagen gegevens wordt het declaratieformulier automatisch ingevuld. Daarnaast komen de mogelijkheden om verlofaanvragen te doen en handmatig te declaraties door te geven. Een van de inhoudelijke uitdagingen is kennis op doen van front-end technologie, het framework dat wij gaan gebruiken om het portaal te realiseren is Vue. Het is een framework dat is ontwikkeld door middel van JavaScript, van beide heb ik geen kennis bij aanvang van het project. Het is nodig om onderzoek te doen naar front-end technologie om mijn kennis uit te breiden.

Voor het project heb ik twee leerdoelen, de eerste is dat ik de stappen ga visualiseren die mogelijk nodig zijn om een bepaalde functionaliteit te realiseren voordat ik begin met coderen. Zo heb ik een beter beeld van de nodige stappen zodat ik overzicht kan houden over het geheel. Mijn andere leerdoel is dat ik ervoor wil zorgen dat er zo min mogelijk misverstanden zijn bij op te leveren producten, als er misverstanden zijn doordat verschillende personen aan een taak gaan werken kan het voorkomen dat er onduidelijkheden zijn die niet worden besproken. Hierdoor gaat er tijd verloren als het blijkt dat er onderling misverstand is en de implementaties van elkaar afwijken. In het kort samengevat ga ik werken aan mijn vaardigheden om nieuwe onderwerpen te leren en groepscommunicatie vaardigheden.


Beoordeling deelproducten

Deelproduct: Toevoegen van werkplekken (Tussentijdse verslag)

Criteria

Criteria waarop er wordt beoordeeld zijn: User Interface (UI) en code kwaliteit. Als richtlijn worden de volgende criteria voor de UI aangehouden (Telvak, 2019)

  • Typography: Text moet duidelijk zichtbaar zijn ten opzien van de achtergrond en andere elementen. Er mogen niet meer dan twee fonts zijn, en er moet een duidelijk verschil zijn tussen de koppen en de hoofdtext.

  • Style conformity: De pagina's moeten voldoen aan dezelfde huisstijl. Er wordt maximaal 1 stijl aangehouden.

  • The functionality use: Zorg dat alle knoppen die zichtbaar zijn functionaliteit bevatten, en alle elementen voldoende groot zijn.

  • Check the spelling

Voor codekwaliteit worden de volgende criteria aangehouden: 

  • Dont Repeat Yourself (Karanth, 2016) Dit betekent dat het de bedoeling is om geen dubbele code te schrijven. Door dit principe aan te houden wordt de leesbaarheid, testbaarheid en herbruikbaarheid van de code verhoogt.
  • Clean Code (Summary of “Clean Code” by Robert C. Martin, z.d.) Dit is een boek geschreven door Robert C. Martin die meerdere software design principes heeft bedacht (https://en.wikipedia.org/wiki/Robert_C._Martin) door de principes aan te houden die zijn omschreven in zijn boek zou iedereen uit het team de code moeten begrijpen (https://gist.github.com/wojteklu/73c6914cc446146b8b533c0988cf8d29) "Code is clean if it can be understood easily – by everyone on the team. Clean code can be read and enhanced by a developer other than its original author. With understandability comes readability, changeability, extensibility and maintainability."

Oordeel

User Interface

De UI voldoet aan de grotendeels criteria Typograpy want, de text is duidelijk leesbaar t.o.v. de achtergrond, verder is het zichtbaar wat de hoofdzaak is van de pagina. Er zijn meer dan twee fonts gebruikt, om de kwaliteit te verbeteren moet ik de styling van de pagina aanpassen zodat er niet meer dan twee fonts worden gebruikt. De criteria Style Conformity voldoet grotendeels want, de wireframe en de uiteindelijke implementatie verschillen van elkaar. Om de User Experience (UX) te verbeteren heb ik het mogelijk gemaakt om de capaciteit te verhogen of te verlagen door middel van een druk op de knop, dit dekt de criteria The functionality use af. Anders had de gebruiker zelf de waarde moeten invullen. De input velden en opmaak komen wel overeen. Een ander verbeterpunt is de lege ruimte, hiervoor moet ik de opmaak aanpassen zodat er geen lege vlakken meer zijn. En als laatst is de spelling correct en voldoet de laatste criteria ook.

 Code kwaliteit

Het principe DRY waarborg ik door de v-for functionaliteit van Vue toe te passen. Hierdoor wordt er voor iedere werkplek de soort automatisch weergegeven. Als ik deze functionaliteit niet zou gebruiken zou ik handmatig een lijst moeten schrijven van alle werkplaats soorten (FIGUUR).

De code voldoet aan de volgende clean code principes: "Be consistent, If you do something a certain way, do all similar things in the same way", "use searchable names", "Functions do one thing", "Don't comment out code. Just remove".

 Eindoordeel Tussentijds

Als ik het product een cijfer zou geven op dit moment dan, geef ik een 6.3 op basis van de onderstaande tabel. De UI voldoet grotendeels aan de criteria die hiervoor gelden. De code kwaliteit is beoordeeld op basis van de principes die van toepassing zijn op de code, en voldoet de code aan een aantal principes uit het boek clean code. Na het verbeteren van de opmerkingen, is het mogelijk om van het cijfer een voldoende een goed te maken.

CriteriaCijferToelichting

Typography

6Text is duidelijk zichtbaar en er zijn 2 fonts toegepast, door een font te gebruiken zou ik deze criteria een 8 geven.
Style conformity4Er is geen huisstijl toegepast op de invoer velden, stijl komt niet overeen met de wireframe.
The functionality use:7Duidelijk zichtbaar wat de knop is en bevat functionaliteit, elementen zijn voldoende groot.

Check the spelling

8Er zijn geen spellingsfouten


 Eindoordeel

Hieronder de verbeterde versie van de popup om werkplekken toe te voegen.

Het cijfer dat ik nu geef is een 8, zoals in de onderstaande tabel is te zien heb ik de feedback aangepast van het eindoordeel tussentijds §2.1.3. Het onderdeel voldoet dus aan de criteria die gelden voor een UI.

CriteriaCijferToelichting

Typography

8Text is duidelijk zichtbaar en er zijn niet meer dan 2 fonts.
Style conformity8Bulma framework toegepast waardoor er de huisstijl wordt aangehouden.
The functionality use:8Duidelijk zichtbaar wat de knop is en bevat functionaliteit, elementen zijn voldoende groot.

Check the spelling

8Er zijn geen spellingsfouten



Onderzoeksverslag database


Software design document

Voor het SDD zijn er in het plan van aanpak criteria opgesteld. Deze criteria staan in de onderstaande tabel. Per criteria geef ik een cijfer, de losse cijfers vormen gezamenlijk het eindcijfer.


CriteriaCijferToelichting
Architecturaal overzicht6Overzicht geeft de architectuur weer, voor een hoger raad ik aan om de logo's te gebruiken van de te software e.d. omschrijvingen van de drie systemen mogen uitgebreider.
Deployment diagram8Het deployment diagram voldoet aan de volgende omschrijving (https://creately.com/blog/diagrams/deployment-diagram-tutorial/) Er is terug te zien welke devices, servers en verbindingsprotocollen er nodig zijn. Het diagram komt overeen met de omgevingen waar het zich in afspeelt.
Sub-systemen6Er is een omschrijving bij ieder subsysteem aanwezig, voor de database is iedere kolom toegelicht.
Database ontwerp5,5Alle data die in het domein thuis horen staan in de database. In het ISE-semester is er aangeleerd om verwoordingen op te stellen en deze met de opdrachtgever te bespreken. Dit is niet gedaan en zijn er op eigen inzicht tabellen aangemaakt. Hierdoor bevatten tabellen meer data dan nodig. Zo staat er in de werknemerstabel welke rechten de werknemer heeft. De rechten horen los van elkaar in aparte tabellen te staan. Wat resulteert dat de database in de tweede normaalvorm staat (https://nl.wikipedia.org/wiki/Databasenormalisatie
Ontwerpbeslissingen7,5Beslissingen zijn opgebouwd op basis van een probleem, daarop is er voor iedere beslissing een oplossing gegeven met onderbouwing. Enkele beslissingen bevatten alternatieve oplossingen.
Commentaar verwerken8Al het commentaar verwerkt na de tussentijdse feedback.
Eindcijfer deelproduct6,8


Unit tests

Voor de unit tests zijn er in het plan van aanpak criteria opgesteld. Deze criteria staan in de onderstaande tabel. Per criteria geef ik een cijfer, de losse cijfers vormen gezamenlijk het eindcijfer. De criteria en de toelichting is op basis van de door mij geschreven test voor de front end.

CriteriaCijferToelichting
Alle gemaakte test slagen voor 100%8Alle tests slagen. Geen verdere toelichting.
De test coverage is hoger dan 80% van de code waar het nodig is om te testen6De onderdelen die worden getest hebben een dekking van 80% en hoger. Er zijn componenten die ik heb gemaakt die geen tests hebben omdat het simpele functionaliteit bevat. Omdat er dus onderdelen zijn die niet worden getest geef ik voor deze criteria een 6.
Alle tests zijn zinnig en hebben toegevoegde waarde6Ik heb de tests voor de http requests uitgeschreven. Er zijn tests die alleen kijken http requests worden geaccepteerd.
Test Driven Development toegepast4Tests driven development niet toegepast. Ben pas begonnen met testen nadat ik Vue ben gaan beheersen.
Arrange-Act-Assert pattern (https://betterprogramming.pub/clean-code-with-unit-tests-5f28020828a5)6Er wordt een soortgelijk patroon toegepast waar een mock wordt voorbereid en daarna wordt vergeleken of de uitkomsten overeenkomen.
Evaluate a single concept per test (https://betterprogramming.pub/clean-code-with-unit-tests-5f28020828a5)7Per test wordt een onderdeel per functie getest
Er is maximaal 1 assertion per test (Summary of “Clean Code” by Robert C. Martin, z.d.)8Iedere test bevat maximaal een assertion.
Eindcijfer deelproduct6,2


Testrapport



TODO lijst deelproducten

-Verbetering onderdeel TT verslag toelichten


Oordeel eindproduct

Samenvatting van de opgeleverde deelproducten met een cijfer dat erbij hoort op basis van de kwaliteit.

Het eindproduct dat wordt opgeleverd aan de opdrachtgever geef ik een ... op basis van de oordelen op de deelproducten die ik heb beoordeeld in hoofdstuk 2.

OnderdeelCijfer
Code8
Onderzoek6.5
SDD6.8
Unit tests

6.2

Testrapport

De uiteindelijke code van alle onderdelen samen geef ik een 7 op het moment van schrijven, omdat alle code functioneel is. Er ontbreken op sommige vlakken ontwerp principes, zoals het toepassen van interfaces. Zo hebben de mappers geen interface waardoor ze niet voldoen aan het open closed principe. Er zijn nog refactor mogelijkheden op de frontend code. Doordat ik front end development ben gaan leren had ik niet alle kennis om de code de eerste keer perfect op te bouwen. Hierdoor zijn enkele componenten groter dan nodig en is het nog nodig om deze componenten op te delen in kleinere componenten, i.v.m. tijd tekort neem ik dit mee als leerpunt voor volgende front end opdrachten.

Voor het eindoordeel is het nodig om het product te beoordelen op basis van de specificaties in het SRS. Hiervoor heb ik de onderstaande criteria opgesteld.

CriteriaCijferToelichting
Alle use cases zijn geïmplementeerd8Alle use cases geïmplementeerd.
Implementatie wijkt niet af van de use case flows7Stap 5 uit use case 2 komt niet overeen met de implementatie omdat er geen succes melding wordt gegeven. Verder werkt het systeem volgens de omschrijvingen uit de use cases.
Alle pagina's komen overeen met de wireframes8De pagina's komen overeen met de wireframes, op iedere pagina is het bulma framework toegepast.
Systeem voldoet aan de other funcitonal requierements8Het systeem voert iedere dag om dezelfde tijd een update uit, om api kosten te besparen is er logica om ervoor te zorgen dat, de afstand van thuisadressen naar werkadressen worden opgeslagen.
Systeem voldoet aan de non funcitonal requierements7

voor NFR7 ligt de verantwoordelijkheid om de gebruiker te verwijderen na het beindigen van het dienstverband. Het product voldoet niet aan NFR 11 omdat er niet na iedere actie een succes bericht wordt verstuurd naar de gebruiker. NFR12 kan pas blijken als er een probleem is ondervonden, hierdoor is het niet mogelijk om deze eis mee te nemen in de eindbeeordeling. Er voldoet een eis niet, de andere eisen zijn met succes geïmplementeerd.

Op basis van de bovenstaande criteria kom ik uit op een 7,6. het gemiddelde cijfer uit mijn eindoordel komt uit op een ... Het doel van de opdrachtgever is bereikt want, het is niet meer nodig om drie spreadsheets bij te houden. Het systeem maakt het nu mogelijk om werkplekken te reserveren, declaraties aan te maken en in te zien. Hetzelfde geldt voor verlofaanvragen. Op basis van het werkplekoverzicht worden automatisch de declaratieformulieren bijgewerkt.


Evaluatie gehanteerde projectmethode

De projectmethode zoals omschreven in het plan van aanpak

". . . Aan de hand van Scrum wordt iedere sprint een iets groter product opgeleverd, . . . Dit betekend dat het HR Portaal wat JDI Smart Web applications voor ogen heeft incrementeel tot stand zal komen. Alhoewel er vanaf het begin van het project door het team gekeken wordt naar de globale requirements, wordt bij elke individuele sprint echt vastgelegd welke use cases er na de desbetreffende sprint af moeten zijn. . . . Voordat het ontwikkelteam begint met de incrementele sprints, zal in de eerste week nog een globaal overzicht van het project worden gevormd aan de hand van overlegmomenten en doormiddel van dit Plan van Aanpak. Om dit project goed via Scrum te kunnen uitvoeren, zijn een aantal vaste momenten van belang. Ten eerste zal het ontwikkelteam dagelijks tussen 9:00 en 9:15 een daily standup houden. . . . kan er ook nog gekozen worden om een mid-daily standup te houden. Dit is hetzelfde als de daily standup, maar dan om te checken of iedereen die ochtend goed aan de slag is geweest en om een planning te maken voor de rest van de dag. Of er ook ruimte en belang is voor een mid-daily standup zal tijdens de eerste sprint duidelijk worden. Naast de daily standups zullen er tussen de sprints ook sprint planning en sprint retrospective ceremonies plaatsvinden. . . . Denk hierbij bijvoorbeeld aan het selecteren van de use cases die in de volgende sprint worden opgepakt. Ten slotte wordt er na iedere sprint ook een sprint review gehouden, . . . "

Zoals omschreven houden we iedere morgen een daily standup, en is er in de eerste week een beeld gevormd van het op te leveren product. Na het overleg hebben we een vragenlijst doorlopen met de opdrachtgever om er zeker van te zijn dat er geen onduidelijkheden zijn. In de eerste week zijn we erachter gekomen dat het houden van een mid-daily standup niet nodig is op het moment, als iemand ergens mee klaar is geeft die persoon het aan en vertelt diegene aan welke taak de persoon gaat werken. Op het moment van schrijven is er een retrospective gehouden, tijdens de retrospective heb ik feedback ontvangen en ben op basis hiervan een leerdoel gaan formuleren §7.1. Een verbeterpunt voor het werken met de projectmethode is het aanhouden van de uit te werken use cases tijdens de nieuwe sprints. Het is namelijk voorgekomen dat er twee use cases zijn vastgesteld in de eerste sprint. Het doel van scrum is ook om dan alleen de use cases te werken die zijn vastgesteld. Tijdens de eerste sprint is het namelijk voorgekomen dat er aan taken zijn gewerkt die niet op de planning staan. Daardoor was er een database schema opgesteld voor het hele domein en niet voor de onderdelen uit de use case, hetzelfde geldt voor het domeinmodel en de schermontwerpen. Wat hiervan het gevolg kan zijn is dat er wijzigingen komen in de implementatie en daardoor kan er tijd verloren gaan door overbodig werk. Om dit te voorkomen is er tijdens de tweede retrospective afgesproken dat er in de rest van de sprints aan de gekozen use cases gaan werken. Met als doel overbodig werk te besparen en doelgericht te werk kunnen gaan.

STARR werken met Pull requests

Uitkomst eerste retrospective dat het de bedoeling is om gehele functionaliteit aan te leveren in een pull request, hieruit begreep ik dus dat het de bedoeling was om de gehele functionaliteit op te leveren van een use case. Wat ik vanaf toen heb gedaan is het werk committen naar de bijhorende branche en na het afronden van een use case er een pull request van maken. Hierdoor had ik dus maar één pull request. Tijdens de tweede retrospective kreeg ik de vraag hoe het komt dat ik maar een pull request heb, en heb toen het bovenstaande toegelicht. De situatie die hierdoor is onstaan is dat groepsgenoten wachten op functionaliteit die al af is, maar niet in de develop branche staat. Daardoor moesten andere groepsgenoten mijn werk over zetten van mijn branche naar hun branches. Nadat er is verhelderd waar het probleem ligt ben ik gaan werken met pull requests in plaats van commits naar de branche. Het is dus zo dat als er een bepaald onderdeel klaar is dat, ik een pull request maak in plaats van alleen een losse commit. Na dit twee weken te hebben geprobeerd, heb ik de feedback gekregen dat mijn code nu toegankelijker is voor de groepsgenoten en dat het beoordelen van de onderdelen nu makkelijker gaat, omdat er nu losse delen worden toegevoegd in plaats van hele uitwerkingen. Wat ik hiervan heb geleerd is dat branches per feature nodig zijn, en niet complete use cases hoeven te bevatten. Daarnaast merk ik dat er minder code conflicten zijn bij het opleveren van kleine functionaliteit ten opzien van complete use cases. Voor de rest van mijn loopbaan weet ik nu het belang van pull request maken.

STARR Opstellen gespreksagenda kennismaking

Voor het eerste gesprek met de opdrachtgever was het nodig om te verdiepen in de opdracht, hieruit volgen een aantal vragen. Om de opdrachtgever te laten weten waar hij aan toe is heb ik voorgesteld een gespreksagenda te maken met daarin de onderwerpen die aan bod komen met de tijd de we hebben per onderdeel om het gesprek optimaal te benutten. Door tijden erbij te zetten kunnen we ervoor waken dat er niet te lang over een onderwerp wordt gesproken. Door de vragen en de agenda aan te leveren weet de opdrachtgever waar hij aan toe is en wat er wordt verwacht. Het resultaat is dat, de opdrachtgever bij aanvang van het gesprek aangeeft dat wij de eerste groep zijn die een gespreksagenda toe stuurt. Hij gaf aan dat hij hier zeer content mee is. Wat ik hieruit meeneem is dat ik bij volgende kennismakingsgesprekken met een opdrachtgever een gespreksagenda ga opstellen, omdat dit als professioneel wordt ervaren en zo weten beide partijen wat er besproken wordt. Wat ik volgende keer anders zou doen is bij de vragenlijst enkele vragen toevoegen die andere vragen tegenspreken. Als er dan in het gesprek blijkt dat de juiste en onjuiste vraag beide goed zijn, dan weet ik dat het nodig is om door te vragen omdat er dan toch onduidelijkheden zijn.


Wat werkt wel


Wat werkt niet

Beschrijving rollen

Voor het project heb ik de rol kwaliteitsmanager op me genomen. Zoals omschreven in het plan van aanpak "Eindverantwoordelijke voor de kwaliteit van het project. Belangrijke rol bij de code reviews.". In de functie-omschrijving van een kwaliteitsmanager (https://nl.indeed.com/personeel/functiebeschrijving/kwaliteitsmanager) staat dat de kwaliteitsmanager de bedrijfsprocessen gaat monitoren die invloed hebben op de kwaliteit van een product. Hierbij hoort het uitvoeren van kwaliteitsanalyses en het voorzien van kwaliteitsverbeteringen aan de implementatie. Ik wil er tijdens dit project achter komen hoe de rol kwaliteitsmanager invloed heeft op de uiteindelijke implementatie. Om dit doel te behalen heb ik het leerdoel dat te lezen is in §6.2 opgesteld. De situatiebeschrijving ... beschrijft hoe ik aan mijn leerdoel heb gewerkt en tevens komt hier mijn rol als kwaliteitsmanager naar voor. Het opstellen van deze documentatie heeft een positief effect op de verdere werkzaamheden. Wat verbeterd kan worden is dat de API documentatie niet mee is genomen tijdens het reviewen. Met als gevolg dat er van enkele endpoints geen documentatie beschikbaar is. Wat ik de volgende keer anders ga doen is ervoor zorgen dat de documentatie onderdeel wordt van de taak. Door het als verplicht onderdeel op te nemen is het nodig dat er een review komt. Door ervoor te zorgen dat er een review komt vinden de groepsleden mogelijke fouten en of gebrekken in de documentatie.

Tijdens dit project heb ik geleerd dat, een kwaliteitsmanager stevig in zijn schoenen moet staan. Want het is nodig om aan te geven dat onderdelen niet voldoen aan de eisen, daarnaast is het ook nodig om daarop te anticiperen en daardoor een ander teleur moet stellen omdat er werk aangepast moet worden of extra werkzaamheden toewijzen om aan de eisen te voldoen. Ik merk dat een kwaliteitsmanager de conflicthanteringsstijlen (https://www.icm.nl/extra/5-conflictstijlen-thomas-kilmann-omgaan-conflicten/) doordrukken, samenwerken en compromis sluiten toe moet passen. Doordrukken omdat het nodig is om met deze rol op te komen voor de kwaliteit en daarom andere erop aan spreken, ook als er andere groepsgenoten het er niet mee eens zijn. De stijl compromis sluiten en samenwerken hangen sterk samen met doordrukken omdat het beter werkt om als team tot een oplossing te komen, in plaats van een oplossing door te drukken. Uit de volgende bron (https://www.ag5.com/nl/samenwerken-binnen-een-team-tips/) blijkt dat het nodig is om met elkaar in overleg te gaan over de kwaliteit en elkaar daarop aanspreken, want als dit niet wordt gedaan lever je zelden het best mogelijke resultaat.

Deze rol is voor mij weggelegd maar niet op het lijf geschreven. Ik heb een groot belang bij kwaliteit van producten, hierdoor houd ik me graag bezig met procesverbetering. Hetgeen dat ik minder vind aan de rol is dat het nodig is om volhardend te zijn in discussies met name de stijl doordrukken toepassen. Soms vermijd ik een discussie ten goede van de groepsband, hier ga ik een leerdoel van maken voor de volgende keer als ik kwaliteitsmanager wordt.



Competenties

OOSE-P04 Software Design Description


OOSE-P05 Implementeren en distribueren van een systeem

Om de traceerbaarheid mogelijk te maken zijn er user strories opgesteld op basis van de usecases, op basis van de user stories zijn er taken opgesteld. Het is de afspraak dat in in Jira branches worden aangemaakt per taak. Zo is het nu te zien welke branche bij welke taak hoort. Het is voorgekomen dat ik via Github desktop of Bitbucket branches heb aangemaakt, het gevolg hiervan is dat er bij die taken niet terug te vinden in Jira. Ik ben hier op aangesproken door een groepslid. Hierna was het mij duidelijk wat hier mis mee is, en ben vanaf dat moment taken gaan aanmaken in Jira. Zoals te zien is in de onderstaande afbeeling is het niet duidelijk welke branches horen bij een taak. Na het toepassen van de feedback worden branches aangemaakt zoals de onderste. Ik heb hiervan geleerd hoe ik software traceerbaar maak. In vervolg project ga ik taken aanmaken vanuit Jira om ervoor te zorgen dat het overzichtelijk blijft welke taak bij welke branche hoort. zoals te lezen in §7.2.2.1 heb ik ervoor gezorgd dat er API documentatie wordt opgesteld, door dit voor te stellen is er traceerbaarheid mogelijk gemaakt voor de communicatie tussen front- en backend.


OOSE-P07 Bewaken van kwaliteit

Tijdens dit project heb ik de rol als kwaliteitsmanager, zoals te lezen in §7.2.2.1 is mij opgevallen dat de communicatie tussen front- en backend niet soepel verliep. Om daar iets aan te doen heb ik het initiatief genomen om API documentatie op te stellen. De groepsleden zijn akkoord gegaan met het voorstel en zijn het gaan toepassen sinds dien. Omdat ik dit project een van de front end developers ben heb ik de meeste pull requests met betrekking tot de front end beoordeeld. Om ervoor te zorgen we de kwaliteit en funtionaliteit waarborgen heb ik unit tests geschreven voor de front end, dit zijn werkzaamheden die ik samen met Tobias heb uitgevoerd. Een ander document waar ik veel aandacht aan heb besteed is het SRS, hier heb ik 41 comments geplaatst en deze verwerkt met de groepsgenoten.

Leerdoelen

Leerdoel: Visualiseren

Uit de eerste retrospective blijkt dat ik bij onduidelijkheid de neiging heb om eerst hulp te zoeken bij andere groepsleden. Hier is mij aangeraden om eerst het probleem en de nodige stappen te visualiseren voordat ik ga beginnen aan een implementatie. Het leerdoel staat in verband met een aantal gedragscompetenties (Overzicht van de traditionele gedragscompetenties, z.d.)

  • Probleemanalyse - door te visualiseren breng je een probleem in kaart door het te analyseren.

Door te kijken naar een visualisatie, krijg je meer inzicht waar kansen liggen voor verbetering (Processen visualiseren in Process Advisor - Power Automate, 2022). Bij het visualiseren word je gedwongen om keuzes te maken tussen hoofd- en bijzaken, hierdoor wordt de boodschap compact. Kun je het niet simpel visualiseren? Dan betekend het dat het onderwerp nog onduidelijk is. Bij het bespreken van een visualisatie dan spreekt een beeld meer dan een woord, het zorgt ervoor dat hetgeen dat wordt besproken duidelijk is voor andere. (morresMarketing, 2018)

Actie 1: visualiseren

Voordat ik ga beginnen aan een taak, ga ik als eerst op papier een schets maken van het te maken onderdeel hiervoor neem ik maximaal een kwartier. Als ik merk dat bij het maken van de schets onduidelijkheden zijn en ik dus merk dat ik moet gaan werken aan nieuwe functionaliteit dan, ga ik de onduidelijkheden uittekenen op een apart vel en erbij schrijven wat ik denk dat nodig om het uit te werken, hiervoor neem ik maximaal een kwartier. Daarna kan ik gaan op zoek gaan naar een voorbeeld of toelichting uit de API documentatie.

verbeteren na feedback

Tijdens de eerste retrospective is mij verteld dat het opvalt dat, ik bij het leren van het Vue de te maken onderdelen als een groot geheel zie, en hierdoor neig het overzicht te verliezen. Om hieraan te werken kies ik ervoor om hier een van de leerdoelen van te maken. Het is mijn taak om het mogelijk te maken om een werkplek toe te voegen aan een bedrijfslocatie. Hiervoor ben ik een stappenplan gaan uittekenen d.m.v. Miro, het is nog niet duidelijk voor mij hoe data wordt doorgegeven aan onderliggende componenten, hiervoor ga ik voorbeelden opzoeken en de implementatie daarop uitwerken. Door een stappenplan te maken (FIGUUR) heb ik meer overzicht wat er moet gebeuren, om dit te testen heb ik overleg gehad met een groepsgenoot en hij gaf aan dat het duidelijk is wat er moet gebeuren. Zodoende ben ik stapsgewijs de implementatie gaan uitwerken. Door op deze manier te werken hou ik overzicht van de te maken onderdelen en kan ik op een logische manier de code opbouwen. Anders komt het voor dat ik bij het leren van nieuwe stof van alles ga proberen, logischerwijs loop ik dan vast en dan raak ik dus sneller het overzicht kwijt. Dus ik merk dat op deze manier werken mij zeker helpt om nieuwe onderwerpen te leren en toe te passen. Het kost tevens wel meer tijd om een heel stappenplan te maken van alle onderdelen. Met als conclusie dat ik geen stappenplannen ga maken voor onderdelen waar ik voldoende kennis over heb, omdat het meer tijd kost en tijd is kostbaar.

Actie 2:  Uitzoeken voor hulpverzoek

Als ik merk dat ik na het visualiseren vastloop dan ga ik op het internet zoeken naar een voorbeeld of in de API documentatie. Als ik na een uur nogsteeds vastloop dan ga ik hulp vragen aan een andere groepsgenoot. Als wij er samen niet uitkomen na maximaal 2 uur dan, sturen we een mail naar JDI met een uitgebreide uitleg van het probleem waar we tegenaan lopen en er niet uitkomen na 2 uur onderzoeken. Met de vraag of een van de developers een mogelijke oplossing kan voorstellen.

STARR vragenkanaal discord

groepslid gaf een dat er veel vragen worden gesteld aan hem, met als reden dat hij meer dan een paar jaar ervaring heeft over front end technologie. Daarom is het gemakkelijk om hem te vragen om mee te kijken als ik of iemand anders vastloopt. Het is aan de taak om ervoor te zorgen dat er een andere manier komt van vragen stellen zodat de vraag beantwoord wordt, maar op een tijd dat het uitkomt. Om hiervoor te zorgen wordt er gebrainstormd met als resultaat dat we een vragenkanaal aanmaken in Discord. De afspraak is dat als iemand langer dan 10 minuten vastloopt een bericht stuurt in het kanaal. Met als bedoeling dat er binnen een uur hulp wordt aangeboden. Dit zou ervoor zorgen dat iedereen hulp krijgt, en andere groepsleden de tijd krijgen om eerst hun werk af te maken zodat ze niet uit hun concentratie worden gehaald. Een week na de retrospective ben ik gaan overleggen met het groepslid over het verloop van de nieuwe aanpak. Ik heb namelijk een aantal vragen gesteld in het kanaal, hierbij gaf hij aan dat dit fijner werkt omdat hij dan beter in zijn concentratie kan blijven. Met als resultaat zowel ik als het andere groepslid tevreden zijn over de nieuwe aanpak van vragen stellen. Ik ga deze manier van werken ook voorstellen in vervolgprojecten zodat iedereen de ruimte krijgt om af te maken waar ze mee bezig zijn.


Leerdoel: Voorkomen miscommunicatie.

Uit ervaring weet ik dat bij het werken in groepsverband miscommunicatie kan ontstaan tijdens het overleg, en daardoor personen de taak afwijkend van elkaar gaan implementeren. Om dit voorkomen ga ik twee actiepunten opstellen waar ik aan ga werken om miscommunicatie te voorkomen. Het leerdoel staat in verband met de volgende gedragscompetenties (Overzicht van de traditionele gedragscompetenties, z.d.)

  • Durf - Het is nodig om een discussie aan te durven gaan als het nodig is en niet een discussie vermijden.

Miscommunicatie ontstaat wanneer de ontvanger de boodschap anders interpreteert dan de zender bedoeld, zowel verbale als non-verbale communicatie speler hierbij een rol (Wikipedia-bijdragers, 2021) Een andere manier waardoor miscommunicatie ontstaat is dat er wordt ingevuld voor een ander. Hierdoor maak je een aanname wat de andere persoon bedoelt, door door te vragen en samen te vatten kan dit worden voorkomen (Kiefmann, 2019)

 Actie 1:

De vaardigheid Luisteren, Samenvatten, Doorvragen (LSD) toepassen als ik het idee heb dat er enigszins onduidelijkheid heerst in het gesprek. Dit kan ik merken aan de non-verbale communicatie, denk hierbij aan een groepslid die fronst nadat er is wordt gevraagd of diegene het snapt. Ik ga bij het doorvragen twee vragen stellen die op elkaar lijken waarvan een waar is en de andere onwaar. Als beide vragen met waar beantwoord worden dan weet ik dat er nog miscommunicatie is. Door samen te vatten zorg ik ervoor dat ik bevestiging krijg of het klopt wat ik denk begrepen te hebben. Als er nog onduidelijkheid heerst haal ik er een ander groepslid bij om te kijken of hij het kan begrijpen, om zo op die manier de miscommunicatie te kunnen verhelpen.

STARR conflicthantering front-end werkplek toevoegen

Ik heb de taak op me genomen om het mogelijk te maken om werkplekken toe te voegen. Tijdens het uitwerken merkte ik op dat er naast een naam voor de werkplek, er ook een soort nodig is om de werkplek aan te koppelen. (FIGUUR) Op basis van de toelichting van de opdrachtgever leek het me overbodig om een soort toe te kennen, omdat de opdrachtgever aangeeft dat hun bijvoorbeeld een algemene werkplek hebben en een focuswerkplek. Dus mij lijkt het dubbelop om een ruimte zo te noemen en dan ook nog aan te geven dat het een van de soorten hetzelfde is. Dit heb ik aangegeven aan de personen die bezig zijn met de backend van dit onderdeel, hieruit kreeg ik de reactie dat het handig is om te hebben. Hier was ik het niet geheel mee eens maar heb het voor lief genomen. Om de situatie terug te koppelen maak ik gebruik van een conflicthanteringsmodel (https://www.icm.nl/extra/5-conflictstijlen-thomas-kilmann-omgaan-conflicten/) Wat ik heb gedaan is de stijl vermijden en toegeven toepassen. Door de stijl vermijden en toegeven toe te passen is er tijd gewonnen, en een mogelijk discussie vermeden. Ik was er bang voor dat ik bij de stijl doordrukken een discussie zou ontstaan doordat de andere groepsgenoten aangaven dat, ze over dit onderwerp meermaals hebben besproken. Als ik terug kijk op deze situatie besluit ik dat, de volgende keer als er een zelfde soort situatie is een middenweg voor te stellen en dus de stijl compromis sluiten toepassen. Met als compromis het besluit bij de opdrachtgever neer te leggen. Op die manier kan er ook geen onderlinge discussie ontstaan over wat de opdrachtgever mogelijk wilt. Daardoor hoeft er ook geen conflict vermeden te worden en krijgt de opdrachtgever de implementatie zoals gewenst.

(https://www.icm.nl/extra/5-conflictstijlen-thomas-kilmann-omgaan-conflicten/)

Actie 2:

Als tweede actie ga ik voorstellen om documenten op te stellen als er meerdere groepsleden aan een deelproduct werken. Dit ga ik doen aan het begin van een sprint als de taken worden vastgesteld. De documenten gaan dienen als schakel om ervoor te zorgen dat er geen aannames gemaakt worden.

STARR Opstellen van API documentatie

Tijdens het coderen van de verlof aanvragen kwam ik erachter dat de gegevens die de backend nodig heeft anders zijn dan de gegevens uit de wireframes. Hierdoor is het nodig om een van de implemtaties aan te passen. Na overleg is besloten om de backend aan te passen zodat het overeenkomt met de gegevens uit de wireframes. Om te voorkomen dat er zulke misverstanden zich voordoen ben ik een voorbeeld API documentatie gaan uitwerken. Zodat er vooraf afspraken worden vastgelegd over de nodige data om misverstanden te voorkomen en dus tijd te besparen. Na het toelichten van de documentatie waren de groepsgenoten het ermee eens om het op deze manier aan te pakken. Dit werkt omdat er nu API documentatie beschikbaar is en er misverstanden zijn voorkomen. Ik ga bij volgende projecten waarin een API nodig is ook deze documentatie opstellen met ook de reden dat er zo overzicht blijft en er geen misverstanden ontstaan.

Conclusie

Tussentijdse verslag

Op het moment ben ik tevreden met het resultaat dat tot nu toe is opgeleverd. Zo hebben we de eerste sprint op een paar kleine taken na de sprint geheel afgerond, hiervan hebben we geleerd dat taken ruimer geschat mogen worden. En passen dit nu toe op de tweede sprint. Op het moment van schrijven zitten we nog in de tweede sprint en ziet het ernaar uit dat we de sprint gaan halen. Ik heb een aantal inhoudelijke uitdagingen getackeld, zo ben ik gaan leren hoe JavaScript werkt en wat de mogelijkheden ervan zijn. Op het moment ben ik nog lang geen expert op dit gebied maar, ik heb wel grote stappen gezet met het leren en toepassen van nieuwe onderwerpen. Tevens valt dit goed samen met het leerdoel visualiseren en helpt het leerdoel met het tackelen van de inhoudelijke uitdaging. Meer beschouwing rondom leerdoelen

Eindverslag

Ik ben zeer tevreden met het resultaat dat we opleveren aan de opdrachtgever. In hoofdstuk 3 heb ik toelichting gegeven op het eindproduct en hieruit blijkt dat het doel van het hele project is behaald, het is niet meer nodig om meerdere spreadsheets bij te houden. Tijdens de retrospectives hebben we ons als groep kunnen ontwikkelen en ik ook als persoon door de feedback rondes. Hierdoor ben ik op het leerdoel gekomen om te gaan visualiseren, door dit te gaan doen had ik minder moeite om nieuwe onderdelen op te pakken met het front end framework.

De rol als kwaliteitsmanager heeft me persoonlijke inzichten gegeven door terug te reflecteren met het conflicthanteringsmodel. Zo weet ik nu meer over mijn kwaliteiten en waar mogelijkheden liggen om door te ontwikkelen als persoon. Ik heb geleerd dat het niet goed is om discussies te mijden ten behoeve van de kwaliteit.

Zoals omschreven in de inleiding is het leren van front end een van mijn doelen in het project mede uit persoonlijke interesse, het doel is behaald omdat ik nu basis kennis heb over het programmeren in JavaScript en pagina's kan maken met het Vue framework.


Leerdoelen

Literatuurlijst


Factsheet


NummerCompetentieLink naar het product (JIRA taak)Beschrijving eigen bijdrage

1.

OOSE-P1H4 van dit verslagOpstellen van een gespreksagenda om ervoor te zorgen dat de opdrachtgever weet wat wij van hem verwachten.

2.

OOSE-P1H5 van dit verslagReflectie op mijn rol als kwaliteitsmanager met hierin benoemd wat er goed ging en welke verbeterpunten er zijn.
3.OOSE-P1Doelstelling Plan van aanpakUitschrijven van de doelstelling in het plan van aanpak.
4.OOSE-P1Plan van aanpak14 comments ten behoeve van kwaliteitsverbetering.
5.OOSE-P1Projectgrenzen Plan van aanpakUitschrijven van de projectgrenzen in het plan van aanpak.
6.OOSE-P2Use case modelOpstellen van het use case model.
7.OOSE-P2UC: invullen werkplekschemaUitwerken fully dressed versie van deze use case.
8.OOSE-P2UC: aanvragen verlofUitwerken fully dressed versie van deze use case.
9.OOSE-P2Software Requirements Specification41 comments ten behoeve van kwaliteitsverbetering.
10.OOSE-P3Google Distance Matrix API Onderzoekmeerdere comments ten behoeve van kwaliteitsverbetering.
11.OOSE-P3Database onderzoek12 comments ten behoeve van kwaliteitsverbetering.
12.OOSE-P3Database onderzoekOnderzoek uitbreiden met hoofdvraag en deelvragen en aansluitende conclussie met correcte APA bronvermelding.
13.OOSE-P4Software Design DescriptionOntwerpbeslissingen documenteren front end.
14.OOSE-P4Software Design DescriptionSOLID en GRASP toelichten sequence diagrammen
15.OOSE-P4Software Design DescriptionDesign front end subsystem uitschrijven
16.OOSE-P5

17.OOSE-P5

18.?§2.1 van dit verslagUI programmeren met de bijhorende functionaliteit om vanuit de front end een werkplek toe te voegen met de API.
19.?Uitwerken componenten werkplek toevoegen, verwijderen, wijzigen.
20.?Pop up verlof aanvragenComponent maken om verlof aan te kunnen vragen, met daarbij de functionaliteit om een call te maken naar de API.
21.OOSE-P6BurndownchartDoor uren te loggen op de taken hebben we de burndownchart actueel gehouden. Zo maakt deze tool het inzichtelijk of de sprint volgens de geplande tijd verloopt.
22.OOSE-P6

23.

OOSE-P6



24.OOSE-P6

25.OOSE-P7§7.2.2.1 van dit verslagIk heb ervoor gezorgd dat er API documentatie wordt gemaakt. Om misverstanden te voorkomen en overzicht te houden over alle endpoints en de bijhorende data.
26.OOSE-P7

27.OOSE-P7

28.OOSE-P7

29.OOSE-P7

30.OOSE-P8§7.1.1.1. van dit verslagToelichting hoe ik visualiseren heb toegepast om nieuwe stof beter tot me te kunnen nemen.
31.OOSE-P8Vue routerIk heb me verdiept in Vue router, een groepslid heeft de router toegevoegd en ik wist niet hoe de router werkt. Nadat ik me heb verdiept hierin heb ik pagina's toegevoegd om navigeerbaarheid toe te voegen aan de website.
32.OOSE-P8Front end unit tests met JestTijdens de course DEA heb ik geleerd hoe ik tests schrijf voor de backend. Voor de front end ben ik het Jest framework gaan leren. Hier heb ik geleerd hoe ik data fetches kan mocken.
33.OOSE-P8Functionaliteit VueIk wist niet hoe ik data kon doorgeven tussen componenten. Hiervoor ben ik gaan zoeken in de documentatie met als resultaat dat het mogelijk is met $emit functionaliteit. Het eerste onderdeel waar ik mee ben gaan expirmenteren is het component dat het gekozen werkpleksoort doorgeeft aan het parent component.
  • No labels