Naam: Thomas Droppert
Studentennummer: 679586
Klas: ITA-OOSE-A-s
Groep: SmallTalk
Procesbegeleider: Mark Giesen
Professional skills docent: Helen Visser
Vak: OOSE project
Datum: 25-11-2022
Inhoudsopgave
Inleiding:
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 toegepast tijdens dit project. Hierbij moeten ook de keuzes worden toegelicht over het proces.
Het doel van dit verslag is om duidelijk over te brengen hoe het proces in het project verliep, vanaf mijn perspectief en wat ik hiervan leer.
Als doel voor dit project zou ik graag een nuttige bijdrage willen leveren en zou ik graag een product willen opleveren waar Regterschot Racing op vooruit kan bouwen.
Hierbij wil ik ook leren hoe een werkdag er later uit zou zien en te leren om gestructureerd te werken in deze werkdag.
Vorig schooljaar heb ik het I-Project gedaan. Deze ervaring kan ik ook toepassen op het OOSE-project, aangezien beide projecten in scrum uitgeoefend wordt.
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.
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.
Deelproducten sprint 1
In sprint 1 heb ik gewerkt aan het opzetten van: het SRS, het SDD en de code. Voor het SRS en SDD heb ik alleen gezorgd voor de introductie van het verslag. Dit is nadat het door twee groepsleden is doorgenomen, goedgekeurd.
De introductie dient ervoor om snel te laten zien waar het verslag over moet gaan. Aangezien de introductie snel verteld wat er in het SDD of SRS voorkomt, vind ik dat dit product goed is.
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.
Rollen
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.
Rol sprint 1
In sprint 1 was ik scrum master, dit betekende dat ik overzicht moest houden op de taken en wat er gebeurd moet worden voor de eerste sprint.
Zelf merkte ik al snel dat ik als scrum master vaak de leiding kreeg over beslissingen buiten wat een scrum master moet doen. Als scrum master heb je namelijk de taak om te begeleiden, maar dat werd al snel leiden. De leiding nemen is niet iets wat ik graag wil doen, dus dit vond ik wel jammer.
Zelf had ik hierbij wel het gevoel dat ik als scrum master niet goed genoeg was. Bij het begeleiden van mensen, werd mijn advies bijna tot helemaal niet opgevolgd. Dit kwam meestal omdat andere teamleden een andere visie hebben over hoe ze bepaalde acties moeten uitvoeren. Dit leidde vaak tot een discussie, wat niet mijn bedoeling was. In het IPV is wel gezegd dat ik een goede scrum master was en kreeg ik twee plussen voor het bezig zijn met het maken van afspraken. Dit verbaasde mij wel een beetje, aangezien ik dus zelf vond dat ik niet goed genoeg was als scrum master.
Naast het feit dat ik scrum master was, was ik vooral bezig met het reviewen van taken en het verbeteren van werk. Ik heb zelf in de eerste sprint nog niet veel uitgevoerd voor mijn eigen taken. Dit vond ik ook jammer, want zelf wilde ik ook bezig gaan met het schrijven van een verslag, maar iedereen was al bezig met een verslag en ik moest daardoor het SDD en SRS opzetten, waardoor ik alsnog wel nuttig bezig was, maar niet veel deed aan onderzoeken.
Rol sprint 2
In sprint 2 was ik niet specifiek een rol aangewezen. In deze sprint was ik in het begin vooral bezig met het coderen van de login-functie en het opzetten van het systeem. Vaak kwamen vragen over de code mijn kant opgestuurd, aangezien ik het systeem had opgezet en het voor andere mensen uit de projectgroep nog vaak niet werkten.
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.
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 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
Leerdoelen sprint 1
Leerdoel 1: Het efficiënter werken aan taken, door meer tijd te besteden aan het ontwerpen.
Dit leerdoel heb ik gekozen, omdat in het vorig I-Project ik te weinig bezig was aan ontwerpen van bijvoorbeeld code.
Hierdoor moest mijn code vaak verbeterd worden, waardoor er te veel tijd verloren ging. Ik zou dit doel graag willen halen, zodat dit minder tijd verspilt voor mij
en de groep.
Dit leerdoel kan ik bereiken door:
- Meer te werken aan het technisch ontwerp, zodat ik van tevoren een duidelijke visie heb op wat ik wil coderen.
- De opdracht beter doorlezen en verdelen in sub-taken, zodat er een overzicht is van de taken.
- Regelmatig anderen mijn code laten reviewen, zodat latere fouten op tijd gezien kunnen worden.
Leerdoel 2: De mening van andere meer toenemen in mijn werk, zodat er een beter product kan ontstaan.
Dit leerdoel heeft te maken met het realisme kernkwadrant. Dit leerdoel heb ik gekozen, aangezien ik vaak dingen alleen op mijn manier doe en niet op iemand anders manier. Dit maakt het werk meestal wel realistisch, maar niet ideaal.
Om dit leerdoel te halen heb ik een aantal stappen bedacht die ik kan doorlopen.
- 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.
Situatiebeschrijvingen sprint 1
Situatie 1: Eerder weggaan
Deze situatie heeft te maken met mijn tweede leerdoel. De groep wilde vroeg weggaan van school, waar ik het niet mee eens was. Ik ging snel in discussie en beargumenteerde waarom ik vond dat we langer moesten blijven. Mijn rol was het beredeneren waarom mijn groep langer zou moeten blijven en begrijpen waarom ze eerder weg wilden gaan. Ik was voor deze sprint ook scrummaster, dus wilde mijn taak ook goed uitoefenen. Mijn doel was om ze te overtuigen om langer te blijven. Ik moest ook rekening houden dat ik niet in een lange discussie zou raken, want een van mijn leerdoelen was om meer aan te nemen van anderen. Helaas brak dit toch uit tot een kleine discussie, aangezien de groep vond dat ze al productief genoeg hadden gewerkt. Toen ik duidelijk had gemaakt dat ik de tijd te vroeg vond en dat ik vond dat hier duidelijkere afspraken voor moesten komen, was de groep het daar wel mee eens, maar ze gingen als nog weg. Ik bleef wel en bedacht alvast een afspraak die we konden maken, om een vaste tijd te blijven aanhouden, waarop we weggingen. Achteraf had ik mijn standpunt beter vast kunnen houden en zeggen dat ze het echt niet konden maken om te gaan, waardoor we in de tijd dat ze zouden blijven, we de afspraak hadden kunnen maken voor de vaste tijd. Ik had voor nu gekozen om ze dan maar te laten gaan, om zo de rust te bewaren en de volgende dag het rustig te bespreken.
Voor de volgende keer had ik wat netter mijn standpunt kunnen verwoorden. Ik had het gevoel dat ik het misschien niet goed had uitgelegd waarom ik vond dat ze langer moesten blijven en waarom dit handig was. Het was wel goed dat ik mijn eigen mening had getoond en opkwam voor het werkproces, maar dit had ik dus beter kunnen verwoorden. De volgende dag hadden we wel de afspraak gemaakt dat we minimaal tot 4 uur blijven, ook al was de minimale productiviteit van die dag bereikt.
Situatie 2: Te veel moeten reviewen
In de eerste sprint waren er veel taken nog op het eind die gereviewd moesten worden. Dit zorgde voor een verkeerde burndown chart. Uiteindelijk heb ik veel gereviewd, maar daardoor kwam ik niet toe aan mijn eigen bijdrage. Ik wilde ervoor zorgen dat ik niet al het werk van iedereen elke keer moet reviewen, want zo doe ik zelf niet iets anders, behalve reviewen. Ik om dit proberen te veranderen, het plan van aanpak erbij gehaald en gezegd dat er minimaal twee groepsleden de review moeten doen. Hierbij heb ik ook netjes aangegeven via de GEIN feedbackmethode dat ik op had gemerkt dat ik voor al het reviewen deed. Nadat ik dit had aangegeven, begonnen meer groepsleden te reviewen, waardoor ik kon beginnen aan het opzetten van het SRS, SDD en de code.
Ik ben tevreden dat de groep heeft geluisterd naar mijn feedback en gelijk zorgde dat het reviewen sneller verliep. Dit valt overeen met de compenties over onderzoeken en het bewaken van de kwaliteit.Als ik de enige zou zijn die reviewt, dan zou ik fouten over het hoofd kunnen zien, wat erg jammer zou zijn.
Conclusie leerdoelen sprint 1
Leerdoel 1: Het efficiënter werken aan taken, door meer tijd te besteden aan het ontwerpen.
Ik heb nog niet veel ontworpen deze eerste sprint, waardoor ik geen tijd heb besteed aan dit leerdoel. Er is ook niet veel code die gemaakt moest worden deze sprint.
De opdrachten van het JIRA bord waren ook nog niet helemaal goed verdeeld, waardoor ik veel werk kwijt was op een sub-taak, dat eigenlijk meerdere taken konden zijn.
Mijn conclusie is dus dat ik dit leerdoel moet meenemen voor de volgende sprint, zodat ik er goed aan kan werken.
Leerdoel 2: De mening van andere meer toenemen in mijn werk, zodat er een beter product kan ontstaan.
Ik heb gewerkt aan dit leerdoel afgelopen sprint. Dit was alleen nog niet heel goed gegaan, aangezien ik nog steeds vaak in discussies viel. Dit was ook te zien in het IPV rapport van sprint 1. Voor de volgende sprint moet ik dus ook dit leerdoel meenemen, zodat ik er goed aan kan werken.
Sprint 2
Leerdoelen 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.
Leerdoel 2: De mening van andere meer toenemen in mijn werk, zodat er een beter product kan ontstaan.
Kernkwadranten
Een kernkwadrant laat in een oogopslag wat iemand zijn: valkuil, uitdaging, allergie en kernkwaliteit is.
Kernkwadrant Bespraaktheid:
Kern kwaliteit | Valkuil | |
---|---|---|
Bespraaktheid | -> | Breedvoerigheid |
/\ | I | |
Allergie | Uitdaging | |
Kortafheid | <- | Bondigheid |
Kernkwadrant Realisme
Kern kwaliteit | Valkuil | |
---|---|---|
Realisme | -> | Materialisme |
/\ | I | |
Allergie | Uitdaging | |
Zweverigheid | <- | Idealisme |
Conclusie
Afgelopen sprints heb ik geleerd om het perspectief van anderen te begrijpen. Ik mag het dan misschien niet eens zijn, maar ik moet anderen toch de kans geven om hun perspectief te leveren en uit te leggen. Ik moet komende sprints vooral werken aan het verdiepen in de beroepstaak. Het testen en bewaken van de software kwaliteit en het ontwerpen van software moet ook meer gebeuren, om zo te voldoen aan de competenties van dit project. Door te werken aan het ontwerpen van software, kan ik mijn leerdoel over het efficiënt werken aan taken ook voltooien.
Factsheet
Bijlagen
IPV rapport sprint 1
Het projectverslag moet je zien als een tentamen dat je succesvol gemaakt hebt: een toets waarmee jij laat zien wat je van het project geleerd en begrepen hebt. Het verslag geeft een afdoende beeld van het werk dat je gedaan hebt in het project (in termen van kwantiteit en kwaliteit), en maakt je deskundigheid ten aanzien van het project (en in de verdiepende semesters: het profiel waarin je gaat afstuderen) voldoende inzichtelijk. Je maakt een selectie van hoogte- (of diepte)punten waarmee je je deskundigheid kunt tonen. Die beoordeel je kritisch, en zo laat je zien wat je geleerd en begrepen hebt. Het projectverslag is, (net als straks het afstudeer- en stageverslag) het startpunt van je individuele beoordeling.
Lees de projecthandleiding voor de concrete opdracht voor het projectverslag dat je bij OOSE moet schrijven.
Een voldoende verslag:
- Bevat alle gevraagde onderdelen uit het nakijkmodel
- Is waarheidsgetrouw. Hiermee wordt bedoeld: in overeenstemming met waarnemingen van de betrokken docenten. Het gaat er dus om dat je recht doet aan jezelf (vergeet belangrijke dingen niet te melden, daarmee doe je jezelf te kort), maar ook dat je de zaken niet mooier maakt dan ze waren.
- Is op voldoende punten correct, en onderbouwd. Hiermee wordt bedoeld: je maakt correcte verwijzingen naar relevante bronnen, je maakt voldoende relevante verwijzingen naar eigen materiaal (per competentie 3-5 verwijzingen/links), én je tekst is inhoudelijk correct en logisch opgebouwd.
In de basissemesters zijn de volgende onderdelen opgenomen in het verslag:
1) Een inleiding met: |
|
2) Een onderbouwd oordeel over de kwaliteit van de geleverde deelproducten: |
|
3) Een onderbouwd oordeel over de kwaliteit van het eindproduct als geheel: |
|
4) Een evaluatie van de gehanteerde projectmethode: |
|
5) Een beschrijving van de rol(len) die je hebt gehad in het project waarin je inzichtelijk maakt: |
|
6) Een nadere toelichting op (zie projecthandleiding voor de competenties die in jouw semester moeten worden toegelicht) competenties waarin per competentie: |
|
7) Laat concreet zien hoe je gewerkt hebt aan je leerdoelen en hoe je gevorderd bent: |
|
8) Een conclusie die: |
|
9) De tekst voldoet aan de eisen zoals gesteld in de ICA-controlekaart en is maximaal 8 A4, of een vergelijkbare digitale hoeveelheid (dat is ca 4500 woorden, bijlagen niet meegerekend) |
10) Een bijlage, de factsheet, met daarin per competentie: (NB: dit is een van alle competenties, dus óók de links die je in het projectverslag hebt staan): |
|