...
Voor het OOSE-project ben ik ingedeeld in projectgroep Smalltalk. Onze groep heeft als opdracht gekregen van Regterschot Racing, om een API te bouwen, die zorgt voor een interactie tussen de database en de website.
In dit document behandel ik mijn leerproces tijdens het project. Ik moet laten zien welke competenties ik ontwikkeld heb en welke kennis en vaardigheid ik heb Het belangrijkste product voor Regterschot Racing is eigenlijk nog wel de documentatie. Met deze documentatie bouwt de volgende projectgroep verder op onze code. Als dit niet goed is, dan kunnen we stellen dat we het project dus ook niet hebben gehaald. Deze documentatie en de code moeten allemaal in het Engels geschreven worden, voor het geval dat de volgende projectgroep bestaat uit internationale studenten, die alleen Engels spreken
In dit document behandel ik mijn leerproces tijdens het project. Ik moet laten zien welke competenties ik ontwikkeld heb en welke kennis en vaardigheid ik heb toegepast tijdens dit project. Hierbij moeten ook de keuzes worden toegelicht over het proces.
...
Voor elke sprint stel ik een aantal leerdoelen op die ik tijdens dit project wil volgen. Als een leerdoel klaar is, dan stel ik voor mijzelf een nieuw leerdoel op die ik voor de volgende sprint ga volgen.
Deelproducten
In dit hoofdstuk ga ik uitleggen waar ik vooral aan heb gewerkt en mijn kwaliteitsoordeel hierover. Dit hoofdstuk is opgedeeld per sprint, zodat het duidelijk is waaraan ik heb gewerkt en wanneer.
Voordat de eerste sprint begon, heb ik gewerkt aan het plan van aanpak.
Een uitdaging voor mij is snel in een discussie schieten. Hierbij kan ik snel het perspectief van een ander vergeten of niet inzien. Dit kan ervoor zorgen dat een ander zich niet gewaardeerd voelt en het gevoel kan krijgen dat ze niks kunnen inbrengen in een groep. Daarom zou ik graag hierop willen letten in dit project. Als andere uitdaging heb ik het te snel beginnen aan taken, zonder goed te plannen/ontwerpen. Dit zorgt er vaak voor dat de taak opnieuw moet of veranderd moet worden. Daarom probeer ik ook ervoor te zorgen dat ik het plannen en ontwerpen goed onder de knie heb.
Deelproducten
In dit hoofdstuk ga ik uitleggen waar ik vooral aan heb gewerkt en mijn kwaliteitsoordeel hierover. Dit hoofdstuk is opgedeeld per sprint, zodat het duidelijk is waaraan ik heb gewerkt en wanneer.
Voordat de eerste sprint begon, heb ik gewerkt aan het plan van aanpak.
Voor het plan van aanpak heb ik vooral gewerkt aan hoofdstuk 5, 7 en 8. Hoofdstuk 8 gaat over de organisatie en communicatie in ons project. Hierin heb ik een aantal afspraken opgesteld en duidelijk gemaakt wanneer de gesprek overleggen plaatsvinden.
In hoofdstuk 7 ontwikkelmethode, heb ik uitleg gegeven over de betekenis van de rollen en heb ik een deel van de scrum ceremonies uitgelegd. Hoofdstuk 5 was kort en heb ik aangepast na een review, waardoor het bijna zelf gemaakt was.
Zelf vind ik Voor het plan van aanpak heb ik vooral gewerkt aan hoofdstuk 5, 7 en 8. Hoofdstuk 8 gaat over de organisatie en communicatie in ons project. Hierin heb ik een aantal afspraken opgesteld en duidelijk gemaakt wanneer de gesprek overleggen plaatsvinden.
In hoofdstuk 7 ontwikkelmethode, heb ik uitleg gegeven over de betekenis van de rollen en heb ik een deel van de scrum ceremonies uitgelegd. Hoofdstuk 5 was kort en heb ik aangepast na een review, waardoor het bijna zelf gemaakt was.
Zelf vind ik deze producten informatief en duidelijk. Het verteld de informatie meteen, zonder een lange draad erbij.
...
Als laatst had ik de code opgezet met een Hello World functie. De Hello World functie werkte prima, alleen de rest van de code nog niet helemaal. Bij het opstarten van de code, kon je via de localhost in de webbrowser, naar het pad van HelloWorld komen.
Nou kwam er op de localhost wel hello World te staan, maar er was nog geen CORS-filter en gitignore in de code, waardoor de code bij iedereen niet goed werkte. Door een fout in de naam van het project, moest ook veel code aangepast worden, zodat deze fout verbeterd kon worden.
Deze fout kwam omdat ik niet goed had gekeken naar de naam van Rechterschot Racing en het mis had gespeld. Hierdoor was ons team veel tijd kwijt aan het opzetten van de code. Een paar dagen later heb ik de gitignore aangemaakt, waardoor een aantal van de problemen zich niet meer voortdeden. De code was echter hierna nog niet helemaal goed, aangezien het geen Beans.xml had, waardoor injections in de code niet goed verliepen en omdat het CORS filter er nog niet inzat. Nadat ik deze twee dingen had toegevoegd aan de code, werkte de code voor iedereen, zonder dat er problemen waren. De code was dus eerst slecht, aangezien het niet werkte, maar nadat ik dit had verbeterd, was de code goed.
Projectmethode
Het werken in een groepje op school via scrum werkt goed, als iedereen er is. In een groep kan er makkelijk een vraag worden gesteld en gelijk beantwoord, waardoor je sneller verder kan werken met waar je mee bezig was.
Door daily standups kan je horen wat andere teamgenoten gaan doen op een dag en hoe lang dat nog gaat duren. Hierdoor kun je eventueel hulp aanbieden als ze te lang bezig zijn met een taak. Dit hoort allemaal bij de scrum-methode.
De bedoeling van scrum is dat je via iteratief werken, langzaam op een optimaal product komt. Voordat een sprint start, is het de bedoeling dat er een backlog wordt gemaakt waar alle mogelijke taken in voort komen. Een paar van deze
taken worden vervolgens in de sprint planning uitgekozen en gaan mee de sprint in. Tijdens deze sprint werkt elk individueel teamlid aan een taak, totdat dit klaar is om gereviewed te worden. Als team hebben wij afgesproken om twee
leden te laten reviewen, voordat een taak naar done gaat. Na de sprint houden wij een sprint review met onze opdrachtgever, om hem te vertellen wat we gedaan hebben en wat hij nog zou willen zien. De eerste keer ging deze review nog
redelijk traag en wisten we nog niet goed wat we wilden vertellen. Hierdoor hebben we de afspraak gemaakt om de review 3 dagen van te voren al uit te werken, zodat Regterschot Racing snel en duidelijk kan zien wat er gedaan is.
Na de review zal er ook nog een retrospective plaatsvinden, waarin de groep elkaar feedback geeft en terugblikt naar de afgelopen sprint. Door IPV's in te vullen, kan er handig feedback naar voren komen op een anonieme en ook professionele
manier. Deze IPV's worden meestal via de GEIN methode ingevuld, zoals we dit hebben geleerd bij de professional skills lessen.
Rollen
Deelproducten sprint 2
Voor sprint 2 heb ik mij beziggehouden met het maken van de login code. Deze code bleek ingewikkelder te zijn dat orgineel verwacht. Hierdoor nam dit veel van mijn tijd in, die ik achteraf beter kon gebruiken bij het maken van het SRS en SDD. Tijdens het maken van de loginfunctie, moest dit vaak veranderd worden, omdat er een nieuw idee voor de uitwerking hiervan kwam, waardoor veel veranderd moest worden. Helaas was dit een valkuil waar ik eerder ook in was gekomen, want dit was een van mijn leerdoelen, het eerder beginnen met het ontwerpen van taken, zodat deze efficiënter verlopen. Als ik de tijd had genomen om eerst het SDD en het SRS te maken voor de loginfunctie, dan had ik mijn code minder moeten aanpassen. Voor het volgende onderdeel van code ga ik hier dus expliciet op letten, zodat dit niet meer gaat gebeuren en niet meer tijd gaat innemen van de groep.
Projectmethode
Het werken in een groepje op school via scrum werkt goed, als iedereen er is. In een groep kan er makkelijk een vraag worden gesteld en gelijk beantwoord, waardoor je sneller verder kan werken met waar je mee bezig was.
Door daily standups kan je horen wat andere teamgenoten gaan doen op een dag en hoe lang dat nog gaat duren. Hierdoor kun je eventueel hulp aanbieden als ze te lang bezig zijn met een taak. Dit hoort allemaal bij de scrum-methode.
De bedoeling van scrum is dat je via iteratief werken, langzaam op een optimaal product komt. Voordat een sprint start, is het de bedoeling dat er een backlog wordt gemaakt waar alle mogelijke taken in voort komen. Een paar van deze
taken worden vervolgens in de sprint planning uitgekozen en gaan mee de sprint in. Tijdens deze sprint werkt elk individueel teamlid aan een taak, totdat dit klaar is om gereviewed te worden. Als team hebben wij afgesproken om twee
leden te laten reviewen, voordat een taak naar done gaat. Na de sprint houden wij een sprint review met onze opdrachtgever, om hem te vertellen wat we gedaan hebben en wat hij nog zou willen zien. De eerste keer ging deze review nog
redelijk traag en wisten we nog niet goed wat we wilden vertellen. Hierdoor hebben we de afspraak gemaakt om de review 3 dagen van te voren al uit te werken, zodat Regterschot Racing snel en duidelijk kan zien wat er gedaan is.
Na de review zal er ook nog een retrospective plaatsvinden, waarin de groep elkaar feedback geeft en terugblikt naar de afgelopen sprint. Door IPV's in te vullen, kan er handig feedback naar voren komen op een anonieme en ook professionele
manier. Deze IPV's worden meestal via de GEIN methode ingevuld, zoals we dit hebben geleerd bij de professional skills lessen.
Rollen
Hier wordt een definitieve reflectie gegeven op de Hier wordt een definitieve reflectie gegeven op de uitvoering van mijn rol gedurende het hele project. Bij een aantal sprints had ik meerdere rollen, deze extra rollen zullen ook toegelicht worden bij correcte sprint.
...
Na een tijdje ben ik gestopt met het maken van de logincode en ben ik begonnen met persoonlijke taken, zoals het verslag opzetten en de angular workshop doornemen. Hierdoor was mijn rol vooral stil in de groep.
Competenties
In dit hoofdstuk leg ik uit welke beslissingen ik heb genomen die hebben gezorgd voor een actieve bijdragen van dit project. Hierbij wordt gekeken naar welke overwegingen ik heb gemaakt en of deze beslissingen juist waren.
Competentie OOSE P-03: Onderzoek relevante technologiekeuzes.
Rol sprint 3
Na het bekijken van mijn feedback in sprint 2, zag ik dat veel mensen hadden opgemerkt dat ik wat minder aan het woord was en wat minder de leiding nam. Dit gebeurde omdat ik niet meer scrummaster was. Daarom had ik besloten om toch wat meer “de leiding” te pakken. Hiermee bedoel ik niet zo zeer dat ik zei wat iedereen moest doen, maar meer iedereen aan wilde sturen wat ze kunnen doen en wat er nog gedaan moest worden. Ik had het gevoel dat dit nodig was, aangezien er veel tijd in de vorige sprint verloren ging aan afleidingen en het verkeerd handelen van taken.
Competenties
In dit hoofdstuk leg ik uit welke beslissingen ik heb genomen die hebben gezorgd voor een actieve bijdragen van dit project. Hierbij wordt gekeken naar welke overwegingen ik heb gemaakt en of deze beslissingen juist warenIk heb onderzoek gedaan naar het hashen van een wachtwoord. Hierdoor heb ik gezorgd dat de login functie veiliger is. Sommige tools om wachtwoorden te hashen zijn niet goed om toe te passen op de applicatie.
Door hier onderzoek naar te doen heb ik ervoor gezorgd dat Regterschot Racing een veilige manier heeft gekregen om in te loggen en het wachtwoord op te slaan. Deze implementatie was ook makkelijk toe te passen, aangezien
andere groepsleden al hebben gewerkt met deze tool. Dit was dus een goede implementatiekeuze geweest. Zie factsheet P-03.
Competentie OOSE P-
...
03: Onderzoek relevante technologiekeuzes.
Ik heb onderzoek gedaan naar het hashen van een wachtwoord. Hierdoor heb ik gezorgd dat de login functie veiliger is. Sommige tools om wachtwoorden te hashen zijn niet goed om toe te passen op de applicatie.
Door hier onderzoek naar te doen heb ik ervoor gezorgd dat Regterschot Racing een veilige manier heeft gekregen om in te loggen en het wachtwoord op te slaan. Deze implementatie was ook makkelijk toe te passen, aangezien
andere groepsleden al hebben gewerkt met deze tool. Dit was dus een goede implementatiekeuze geweest. Zie factsheet P-03.
Competentie OOSE P-04: Het documenteren en ontwerpen van de software, met behulp van UML-diagrammen.
Voor de login functie heb ik de system sequence diagram opgesteld en de normale sequence diagram gemaakt. Deze sequence diagrammen dienen als uitleg van de code.
Leerdoelen
Voor
Voor de login functie heb ik de system sequence diagram opgesteld en de normale sequence diagram gemaakt. Deze sequence diagrammen dienen als uitleg van de code.
Leerdoelen:
Voor dit project bedenk ik een aantal leerdoelen waar ik mij aan wil houden. In dit hoofdstuk behandel ik de opgestelde leerdoelen en situatiebeschrijvingen. Als laatst laat ik mijn kernkwadranten zien voor dit project.
Sprint 1
...
Leerdoel 1: Het efficiënter werken aan taken, door meer tijd te besteden aan het ontwerpen.
...
- Regelmatig vragen voor een 2e blik op mijn werk, wanneer ik denk klaar te zijn met mijn taak.
- Zorgen voor een goed overleg als meningen verschillen, hierbij vragen stellen zoals: "Waarom vind je dit?" of "Hoe sta jij hierin?".
- Als er iets is wat we allemaal moeten doen, dan kan ik vragen hoe een ander dit heeft aangepakt en deze aanpak kan ik dan eventueel opnemen in mijn werk, als dit goed beargumenteerd is.
Sprint 1
Situatiebeschrijvingen sprint 1
...
Leerdoel 2: De mening van andere meer toenemen in mijn werk, zodat er een beter product kan ontstaan.
Ik heb gewerkt aan dit leerdoel niet gehaald afgelopen sprint. Dit was alleen nog niet heel goed gegaan, aangezien ik nog steeds vaak in discussies viel. Dit was ook te zien in Ik viel nog te vaak in discussies. Het is niet gek dat ik dit nog niet heb gehaald, aangezien dit pas de eerste sprint is en vooruitgang gaat in stapjes. In het IPV rapport van sprint 1 is te zien dat ik dit nog niet heb gehaald door te kijken naar de feedback. Voor de volgende sprint moet ik dus ook een scherper beeld hebben op dit leerdoel meenemen, zodat ik er goed aan kan werkenen zorgen dat ik het niet uit het oog verlies.
Sprint 2
...
Situatiebeschrijvingen sprint 2
Voor sprint 2 heb ik nog dezelfde leerdoelen uitgekozen, aangezien ik vond dat deze nog niet afgerond waren.
Leerdoel 1: Het efficiënter werken aan taken, door meer tijd te besteden aan het ontwerpen.
Dit is hetzelfde leerdoel als in sprint 1. Zie hoofdstuk 7.1.1.1
Leerdoel 2: De mening van andere meer toenemen in mijn werk, zodat er een beter product kan ontstaan.
Dit is hetzelfde leerdoel als in sprint 1. Zie hoofdstuk 7.1.1.2
Situatiebeschrijvingen sprint 2
Situatie 1: Discussie login review
Situatie 2: Password hashing
Uitwerking leerdoelen sprint 2
Leerdoel 1: Het efficiënter werken aan taken, door meer tijd te besteden aan het ontwerpen.
...
Situatie 1: Discussie login review
In sprint 2 was er een discussie begonnen over hoe de loginfunctie veranderd moest worden. Dit gebeurde na het reviewen van mijn taak. Wijnand en Bram waren mijn stukje code aan het reviewen en zagen dat er een aantal aanpassingen gedaan konden worden. In dit geval ontving ik dus feedback en gaven Bram en Wijnand hun feedback. Ik had verwacht dat ik mijn code nog wel wat had moeten aanpassen, want ik zal best een paar dingen over het hoofd hebben gezien. Ik kreeg mijn feedback terug en besloot de aanpassingen die zij hadden toegelicht te implementeren, zodat ik klaar zou zijn met het maken van de login. Mijn frustratie over het maken van deze loginfunctie lag hoog, want ik zat al boven de geschatte tijd in en wilde graag bezig zijn met andere competenties. Na het verbeteren had ik aangegeven dat mijn stukje code verbeterd was en weer klaar was om gereviewed te worden. Dit keer verliep het alleen anders. Veel van wat ik net moest veranderen aan mijn code, moest weer op een andere manier gedaan worden dan bij de vorige review was aangegeven. Dit ging vooral over het geven van tokens en het hashen van een wachtwoord. Ik was hier boos om geworden, omdat ik weer tijd had besteed aan een stukje code, om vervolgens te horen dat het weer anders moest. Aangezien ik deze sprint al vaker problemen had gehad met de loginfunctie, besloot ik dat ik wilde stoppen met het maken van deze code, aangezien ik er niet meer onderuit kwam. Dit deed ik alleen op een best wel boze manier en dit had ik anders kunnen aanpakken. Als ik mijn frustratie had uitgelegd en gevraag om een oplossing, dan was dat een betere optie geweest, dan het werk verschuiven naar iemand anders. Ik dacht dat door mijn werk naar iemand anders te verschuiven, er een teamlid zou zijn die er meer van wist en het dus sneller af zou maken. De groep had aangegeven in het IPV dat dit wel anders gehandeld had kunnen worden, waarbij ik het ook mee-eens ben. Ik had niet boos moeten worden en naar oplossingen moeten zoeken.
Situatie 2: Password hashing
Uitwerking leerdoelen sprint 2
Leerdoel 1: Het efficiënter werken aan taken, door meer tijd te besteden aan het ontwerpen.
Dit leerdoel is nog steeds niet gelukt. Ik ben te vroeg begonnen aan het maken van de loginfunctie. Als ik dit wel had gedaan, had dit veel tijd gekost, waardoor ik echt wil opletten dat ik dit goed ga doen. Voor de volgende sprint/code functie, wil ik eerst het SRS maken. Dit ga ik proberen te onthouden door mijn tijd meer te besteden aan het reviewen van het SRS en SDD, zodat ik de prioriteit van deze documenten goed begrijp. Na het SRS ga ik de bijbehorende sequence diagrams maken en laat ik zorgen dat deze zo snel mogelijk gereviewd zijn. Voordat ik ga werken aan de functionaliteit, laat ik mijn sequence diagrams door twee teamleden reviewen, zodat ik zeker weet dat wat ik heb gemaakt, ook echt de bedoeling is van de opdracht.
Leerdoel 2: De mening van andere meer toenemen in mijn werk, zodat er een beter product kan ontstaan.
Ook dit punt was dus nog niet goed. Helaas kwam er een discussie nadat mijn groepsleden mij feedback hadden gegeven. Dit wil ik graag verbeteren, door te zorgen dat ik bij frustraties een paar tellen wacht, voordat ik reageer op een antwoord. Ook zal ik proberen mijn frustratie wat meer weg te lachen. Hiermee bedoel ik dat ik mijn frustratie wat minder serieus moet nemen en moet kijken naar wat ik fout doe om deze frustratie te krijgen. Vooral wil ik hiermee zorgen dat ik niet meer boos wordt om deze voorgevallen.
Kernkwadranten
Een kernkwadrant laat in een oogopslag wat iemand zijn: valkuil, uitdaging, allergie en kernkwaliteit is.
...