...
JDI Smart Web applications is een bedrijf dat zich bezighoudt met het bouwen van slimme webapplicaties. JDI kan de wensen van haar klanten efficiënt vertalen naar een handige webapplicatie. Het bedrijf is opgericht door Jarno Eggink en wordt gerund vanuit is gevestigd in Velp. Bijzonder aan JDI is dat er binnen het bedrijf geen sprake is van een hiërarchie. JDI is een zogenaamde holocracy; een zelfsturende organisatie met zelfsturende teams. Voor deze opdracht gaat het Perlman ontwikkelteam tijdens het OOSE project aan de slag om voor JDI een hr portaal HR portaal te realiseren. Dit portaal zal een plek zijn voor het werknemersbeheer, en hier kunnen dingen zaken geregeld worden zoals het aanvragen van verlof en het bijhouden van eventuele reiskosten.
...
Achtergrond van het project
In de achtergrond geef je aan waar en voor wie jij de opdracht uitvoert en wat voor hen het belang van het project is.
Denk in elk geval aan:
- Beschrijving bedrijf/organisatie in je eigen woorden (geen teksten letterlijk overnemen van website)
- De belangrijkste groepen van stakeholders: wie hebben er –naast de opdrachtgever en de projectgroep- te maken met (de resultaten van) het project?
- Indien relevant: organisatiestructuur van het onderdeel waar opdracht betrekking op heeft
- De aanleiding voor het project: Wat is de urgentie van het project, de reden dat het bedrijf juist nu dit project wil laten uitvoeren (en niet een ander –mogelijk ook belangwekkend- project)?
Voor het OOSE project gaat team Perlman aan de slag voor JDI Smart Web applications. Hierbij zullen een aantal componenten geïmplementeerd worden die te maken hebben met het werknemersbeheer van JDI. Het contact met JDI zal tussen het ontwikkelteam en Jarno Eggink, de oprichter van JDI Smart Web applications, of Wim Reuterink, de opdrachtgever, zijn. De reden voor dit project is dat JDI een HR portaal nodig heeft waarin dingen als werknemersbeheer, werkplekken, reiskosten en verlof kunnen worden gemanaged.
Het project is urgent omdat de reiskostendeclaratie en bezetting momenteel allemaal aan de hand van spreadsheats wordt bijgehouden. Dit betekend dat JDI overal losse documenten heeft met de bezetting en reiskosten, dit zou in een centraal systeem moeten komen. Momenteel worden de product owner en HR iedere keer nog handmatig gemailed, maar dat moet allemaal automatisch gaan gebeuren (bijvoorbeeld met een Slack systeem)Voor het OOSE project gaat team Perlman aan de slag voor JDI Smart Web applications. Hierbij zal een aantal componenten geïmplementeerd worden die te maken hebben met het werknemersbeheer van JDI. Het contact met JDI zal tussen het projectteam en Jarno Eggink, de oprichter van JDI Smart Web applications, zijn. Verder wordt dit project begeleidt door Jaap Papavoine. De reden voor dit project is dat JDI een hr portaal nodig heeft waarin dingen als werknemersbeheer, werkplekken, reiskosten en verlof kunnen worden gemanaged.
Doelstelling, opdracht, en op te leveren resultaten voor het bedrijf en school
Als de aanleiding helder is geformuleerd beantwoord je de vraag naar ‘het waarom’ (de doelstelling) en ‘het wat’ (de beoogde resultaten) van het project.
- Formuleer eerst het probleem of de uitdaging dat het bedrijf heeft: welk probleem/welke uitdaging moet door of voor het bedrijf worden opgelost? Bijvoorbeeld: het probleem is dat klanten via te veel verschillende kanalen contact opnemen met het bedrijf waardoor er geen goed beeld is of de klant al afdoende is geholpen. Waarom wil het bedrijf deze opdracht?
- Aansluitend daarop formuleer je de doelstelling. Bijvoorbeeld: het bedrijf heeft wil alle contacten met de klant via de website te laten lopen. Let daarbij op: de doelstelling kan veel groter zijn dan jij met je resultaat oplost, dit is soms een veel te grote klus als afstudeer- of projectopdracht. Het is voldoende als jouw resultaat er een bijdrage aan levert.
- Deze doelstelling mondt uit in jouw opdracht. Wat ga je precies voor het bedrijf doen, en wat ga je opleveren? Jij hebt misschien als opdracht: Ontwerp een goede user-interface voor de website. Of: ontwerp een perfecte database. Zo’n opdracht kan een essentiële bijdrage leveren aan het behalen van de doelstelling.
- Formuleer welke concrete resultaten het bedrijf van jou wil krijgen als je project is afgelopen? Wat is af als het af is? Geef daarbij duidelijk aan welke vereisten op het moment van schrijven al bekend zijn. Het gaat dan bijvoorbeeld om programmeertaal, omgeving/platform. Mocht er al een ontwerpdocument of een concept meegeleverd worden met de opdracht, dan is dat een bijlage. Het is niet de bedoeling dat je zelf al ontwerpdocumentatie maakt in deze fase.
De opdrachtgever heeft op dit moment een niet-digitale oplossing voor het bijhouden van de verlofaanvragen en het bijhouden van de administratieve bezigheden van werknemers, zoals op welke dagen mensen op kantoor aanwezig zijn en wat de reiskosten zijn.
De opdrachtgever geeft aan dat er een HR-portaal moet komen, waarbij werknemer-data wordt bijgehouden. Dit portaal houdt persoonlijke gegevens van werknemers bij.
Dit HR-portaal moet het volgende bijhouden:
- Werkt een medewerker thuis, of is de medewerker op kantoor en dan ook op welke werkplek.
- Indien een medewerker op kantoor is, wat de afstand is die is afgelegd en wat de reiskosten zijn.
- Een manier voor de medewerker om verlof aan te vragen, en voor een werkgever om deze aanvraag goed of af te keuren
- Hierbij moet er een slack bericht verstuurd worden indien de aanvraag is beoordeeld.
Het HR-portaal wordt gemaakt met behulp van het front-end framework Vue.js, en gebruikt Java spring boot als back-end.
Projectgrenzen
Gek genoeg geeft opschrijven wat je nét niet meer doet in je project vaak heel veel helderheid over wat je juist wél gaat doen.
Hierdoor kun je ook voorkomen dat stakeholders tijdens het project met eisen komen die echt buiten de opdracht vallen. In deze
paragraaf baken je je project dus af. In elk geval ga je hierbij in op:
- Hoe lang duurt het project, dus wanneer houdt het op?
- Wat hoort inhoudelijk nét niet meer tot de opdracht? Bijvoorbeeld: ontwikkelen voor Windows, maar niet voor Linux; of wel een concept uitdenken, maar niet realiseren.
Het project begint op 5-4-2022 (pregame)
de eerste sprint gaat beginnen 13-4-2022
Het front-end gedeelte realiseren op basis van Vue.js
Het backend gedeelte realiseren door middel van Java springboot
Het op te leveren product wordt een Proof Of Concept (POC)
Randvoorwaarden
Succesvol zijn gaat maar zelden ‘zomaar’. Bij randvoorwaarden geef je SMART aan welke zaken door anderen voor jou geregeld moeten zijn zodat je zelf vlot door kunt werken. Denk bijvoorbeeld aan:
- Schoolritme dicteert (denk hierbij bijvoorbeeld aan inleverdeadlines) externe opdrachtgevers
- Schoolopdracht gaat voor (externe opdrachtgevers)
- Beschikbaarheid begeleider bedrijf. Is hij bijvoorbeeld op de juiste momenten beschikbaar voor het geven van feedback en het tijdig nemen van beslissingen?
- Welke resources (b.v. soft- of hardware) moeten er zijn om te kunnen werken? Denk aan toegang tot systemen, ontwikkelsoftware, aanschaffen van benodigde licenties.
- - ….
Gebruik bij het SMART maken de relevante aspecten van 5xW 1xH: Wie moet Wanneer Wat, Waar, Waarom en Hoe geregeld
hebben zodat jouw project niet in gevaar komt.
Om dit project en de bijbehorende opdracht goed af te kunnen ronden, hebben we de volgende zaken nodig van de volgende personen:
- De school:
- Moet een werkende Bitbucket, Confluence en Jira omgeving aanleveren.
- Moet een aanwezige projectbegeleider leveren, die aanwezig is bij tussentijdse vragen minimaal 1x in de week en bij sprint-retrospectives.
- De opdrachtgever
- Moet tijdens kantooruren beschikbaar zijn tot het verduidelijken van vragen, bijvoorbeeld via email.
- Moet aanwezig zijn bij het opleveren van de sprints, door fysiek of online te kunnen beoordelen naar de voortgang.
- Moet voor de start van de eerste sprint voorbeelddata kunnen produceren voor werknemers.
- Moet toegang verlenen tot een Slack systeem om geautomatiseerde berichten naar te kunnen sturen.
Op te leveren producten en kwaliteitseisen
In dit hoofdstuk behandel je alle producten die je in hoofdstuk 4 beschreven hebt en moet opleveren, zoveel mogelijk in detail. Het gaat dan zowel om producten die je aan je opdrachtgever levert, als om de producten die school van je vraagt. Daarin rafel je de resultaten die je moet opleveren uiteen in kleinere (deel)producten. Zo kan het resultaat ‘een stuk werkende code’ bestaan uit een ontwerp, code, een testrapport en overdrachtsdocumentatie, etc.
In elk geval staan de volgende zaken ook op die lijst:
- Een eindverslag
- Eindpresentatie
- Reflectieverslag (afstudeerders) of projectverslag (onderwijsprojecten)
- Bijlagen (waarnaar je in de hoofdtekst correct verwijst)
Voor ieder van de beschreven producten definieer je vervolgens meetbare (SMART) kwaliteitseisen. Je bedenkt welke activiteiten je moet doen om de producten volgens die kwaliteitseisen te maken en hoe je ervoor zorgt dat die kwaliteit ook in het proces bewaakt wordt (proceskwaliteitseisen). Dit breng je onder in een tabel. Hieronder staat een voorbeeld, dat expres niet uitputtend is ingevuld, ook zijn de kwaliteitseisen nog niet SMART geformuleerd. En… realiseer je dat het slechts een voorbeeld is!
...
Product
...
Productkwaliteitseisen
(SMAR(T))
...
Benodigde activiteiten om te komen tot het product
...
Proceskwaliteitseisen
(5XW 1xH)
...
Respons in maximaal x tijd
Maximaal x major bugs
….
...
Oplevering en
goedkeuring van
tussenproducten
door
opdrachtgever aan
het einde van
iedere sprint
...
SRS
...
ICA Controlekaart
Voldoet aan standaard x
….
Requirements uitvragen
Werkzaamheden observeren
UC diagram maken
Fully dressed use cases uitschrijven
Domeinmodel maken
….
...
Code
100% (geslaagde) unittests
Commentaar in het Engels
Voldoende aan guideline
Traceable naar specifieke requirements
…..
...
Schrijven code
Unittests schrijven
Code reviewen
….
...
Onderzoeksverslag
ICA controlekaart
…..
Wat is nodig om je onderzoeksvraag te beantwoorden, welke activiteiten moet je doen? Bijvoorbeeld:
Interviewen betrokkenen
Literatuuronderzoek
….
Ontwikkelmethode
Nu je weet wat je gaat opleveren (producten en kwaliteit daarvan) en wat je daarvoor moet doen (overzicht activiteiten) met welkegrenzen en randvoorwaarden, geef je aan welke methode(n) jij gaat inzetten in je project. Heb je te maken met een adviestraject dan ligt het voor de hand om eerst een onderzoek te doen en daarna met een advies te komen. Ben je bezig met het ontwerp van bijvoorbeeld een website of ga je een stuk software ontwikkelen, maak dan eerst een onderbouwde keuze tussen bijvoorbeeld waterval, incrementeel, iteratief of een combinatie van die laatste twee. Daarna kun je eventueel specifieker worden door het kiezen van een bepaalde ontwikkelmethode. Hierbij spelen in elk geval de volgende overwegingen een rol:
- In hoeverre kunnen de resultaten van het project snel en volledig worden beschreven?
- Welke methoden hanteert het bedrijf en in hoeverre kun of moet je daar bij aansluiten?
- Schrijft de school een methode voor (bij propedeuse- en semesterprojecten)?
Wees hierbij wél kritisch: tijdens het afstuderen werk je bijvoorbeeld meestal in je eentje, en niet iedere methode (bijvoorbeeld Scrum bij het ontwikkelen van software) leent zich om individueel mee aan de slag te gaan. Soms is het handig om een methode daarop aan te passen. Dat kan, als je het maar goed onderbouwt en je daarbij baseert op betrouwbare bronnen. En als de methode is voorgeschreven: onderbouw waarom jij vindt dat deze methode passend is bij het soort project dat je moet gaan uitvoeren.Onderaan dit document vind je enkele suggesties voor literatuur over ontwikkelmethoden.
Projectorganisatie en communicatie
Nu de verlangde resultaten en ontwikkelmethode bekend zijn kun je pas de projectorganisatie ( in 9.) en de planning (in 10.) behandelen. Dit is een heel praktisch hoofdstuk dat inzicht geeft in contactfrequenties tussen jou, de organisatie en de schoolbegeleider(s). Ga in elk geval in op:
- Wie zijn je begeleiders (school en bedrijf)
- Hoe vaak heb je contact met hen?
- Waarover?
- Wie heeft welke rol en wie is waarvoor verantwoordelijk?
- Wat zijn ieders –inclusief je eigen- contactgegevens?
- Welke overleggen zijn er gedurende het project met het team, de opdrachtgever, de stakeholders
- (Als je werkt in een team): Wie heeft welke rol en welke verantwoordelijkheden horen daarbij, zijn er groepsafspraken (verwijs naar een bijlage)
Hoe zien de processen eruit die kwaliteit waarborgen (als de gegevens uit de tabel uit H6 aanvulling behoeven)
____________________________________
De afspraken over contact momenten met zowel de opdrachtgever als de projectbegeleider als de PS docent moeten nog gemaakt worden. Wij hopen hierbij vaste momenten in te plannen voor ieder.
____________________________________
Hieronder staan de contactgegevens van de de opdrachtgever en de andere stakeholders van het project.
...
Het ontwikkelteam werkt alle werkdagen van 9:00 tot 17:00 gezamenlijk op locatie op de HAN in Nijmegen. Op deze dagen wordt dagelijks een stand-up gehouden om 9:00, met uitloop tot 9:15 als er groepsleden te laat zijn. Wanneer een student later komt of wanneer hij ziek is, laat hij dit weten door een bericht te sturen via een van de beschikbare communicatie middelen, Microsoft Teams of Discord.
Hieronder staan de contactgegevens van het ontwikkelteam vermeldt, inclusief studentnummer en projectrol.
...
Voor het project heeft ieder groepslid van het ontwikkelteam een rol op zich genomen waar bepaalde verantwoordelijkheden aan hangen. Welk groepslid welke rol opneemt en de verantwoordelijkheden daarbij staan hieronder uitgewerkt.
...
Planning
In dit hoofdstuk maak je een koppeling tussen de ontwikkelmethode en je activiteiten. Geef overzichtelijk weer wanneer de productopleveringen zijn, en wanneer belangrijke afspraken zijn. Zorg dat je ontwikkelmethode herkenbaar is in deze planning.
...
Mogelijke opties om planning te verduidelijken Of een GANT planning
- Strokenplanning
Risico’s
...
Probleemstelling
Op het moment gaat het opgeven van werkplek bezetting via een spreadsheets op verschillende kanalen, naast het opgeven van de bezetting gaan declaraties via verschillende kanalen en is het noodzakelijk dat er een tussenpersoon de aanvragen doorstuurt naar de HR afdeling en de planner. Dit is tijdrovend en hierdoor kunnen er mogelijk inconsistenties optreden doordat het mogelijk is om fouten te maken bij het invullen.
Doelstelling
Het bedrijf (JDI) wil alle declaratie aanvragen via een digitaal portaal gaan verwerken. Door het proces te automatiseren is het niet meer nodig dat een tussenpersoon de aanvragen doorstuurt naar de juiste afdeling en dit documenteert. Door het proces te automatiseren is de kans op menselijke fouten kleiner dan met de huidige oplossing. Door de oplossing houdt JDI meer tijd over voor andere werkzaamheden. Dit zorgt ervoor dat er meer geld overblijft.
De opdrachtgever geeft aan dat er een HR-portaal moet komen, waarbij werknemer-data wordt bijgehouden.
Dit HR-portaal moet het volgende bijhouden:
- Werkt een medewerker thuis, of is de medewerker op kantoor en dan ook op welke werkplek.
- Indien een medewerker op kantoor is, wat de afstand is die is afgelegd en wat de reiskosten zijn.
- Een manier voor de medewerker om verlof aan te vragen, en voor een werkgever om deze aanvraag goed of af te keuren.
- Hierbij moet er een slack bericht verstuurd worden indien de aanvraag is beoordeeld.
De opdracht
Het is aan de opdracht om een Human Resource portaal te bouwen, in het portaal is het mogelijk om in te vullen welke dagen de werknemers thuis of op kantoor werken. Het portaal kan de reisafstanden uitrekenen en dit terugkoppelen aan de declaratieformulieren. Daarnaast wordt het mogelijk voor de werknemers om verlof aan te vragen, en voor de werkgever/planner dit goed of af te keuren. Vervolgens kan er dan door middel van Slack met een bericht aangegeven worden wat het resultaat was van de aanvraag.
Concrete resultaten
Hieronder staat een overzicht met alle concrete op te leveren resultaten:
- Plan van aanpak.
- Software requirement specification (SRS).
- Software Design Documentation (SDD).
- Broncode inclusief unit tests.
- Testrapportage.
- Projectbeheerartefacten (Hoofdstuk 6).
- Individueel verslag per groepslid (Dit onderdeel leveren we alleen aan school).
Projectgrenzen
Organisatorische grenzen
Het project begint op 5-4-2022 (pre-sprint) en de eerste sprint gaat beginnen op woensdag 13-4-2022, de opleverdatum is 10-6-2022. In totaal gaat het team werken in drie sprints, tijdens de sprints zijn de regels van SCRUM leidend. Tijdens de sprints mag de opdrachtgever de scope van de actieve sprint niet aanpassen. De laatste twee weken zijn gereserveerd om de eindpresentatie te maken en het softwarepakket te overhandigen en toe te lichten.
Het ontwikkelteam is beschikbaar op werkdagen tussen 09:30 en 17:00, met uitzondering van vrije dagen (https://www.han.nl/studeren/jaarrooster/). Het team bestaat uit vijf ontwikkelaars (studenten). De ontwikkelaars hebben iedere week 40 uur om aan het project te werken. Dit is wel inclusief momenten die nodig zijn buiten het project, zoals hieronder staat gedocumenteerd:
Bezigheden die tijd kosten buiten het maken van het product.
Bezigheid | Tijd | Duur |
---|---|---|
Software ontwikkelen & reviewen | 20 uur | Per week |
Daily stand up | 1.5 uur | Per week |
Gesprek procesbegeleider | 1.5 uur | Per week |
Projectverslag | 4 uur | Per week |
Sprintplanning | 2 uur | Per sprint |
Sprintreview | 1 uur | Per sprint |
Retrospective | 1.5 uur | Per sprint |
Werkoverleg | 4 uur | Per week |
Gesprek opdrachtgever | 1 uur | Per week |
Pauze | 5 uur | Per week |
Softwaregrenzen
Het op te leveren softwarepakket wordt een Proof Of Concept (POC).
Het front-end gedeelte wordt gerealiseerd met het Vue.js framework.
Het backend gedeelte wordt gerealiseerd met het Java framework springboot.
Er wordt gebruik gemaakt van de google API of een soort gelijk alternatief.
Randvoorwaarden
Om dit project en de bijbehorende opdracht goed af te kunnen ronden, hebben we de volgende zaken nodig van de volgende personen:
De school:
- Moet een werkende Bitbucket, Confluence en Jira omgeving aanleveren. Deze tools moeten voor alle teamleden door de gehele duur van het project beschikbaar zijn.
- Moet een aanwezige projectbegeleider leveren, die aanwezig is bij tussentijdse vragen minimaal 1x in de week en bij sprint-retrospectives.
- Moet zorgen dat er een Professional Skills begeleider is, die binnen 2 dagen op vragen en opmerkingen rondom skills-gerelateerde zaken reageert.
- Moet zorgen dat er iedere werkdag binnen dit project een locatie beschikbaar is voor het ontwikkelteam.
De opdrachtgever
- Moet tijdens kantooruren beschikbaar zijn tot het verduidelijken van vragen, bijvoorbeeld via email. Hier zit een reactie termijn op van 2 dagen.
- Moet aanwezig zijn bij het opleveren van de sprints, door fysiek of online te kunnen beoordelen naar de voortgang.
- Moet voor de start van de eerste sprint voorbeelddata kunnen produceren voor werknemers.
Het eindproduct
- Moet ethisch verantwoord zijn, en het portaal kan niet in strijd zijn met de Nederlandse (privacy) wet.
Op te leveren producten en kwaliteitseisen
Product | Productkwaliteitseisen | Benodigde activiteiten om te komen tot het product | Proceskwaliteitseisen |
PvA | ICA Controlekaart Voldoet aan PvA template | Gesprek houden met opdrachtgever om informatie te krijgen Project achtergrond achterhalen Project doel en opdracht uitwerken Randvoorwaarden opstellen Projectgrenzen opstellen Kwaliteitseisen stellen aan de op te leveren producten Ontwikkelmethode uitwerken Contactgegevens noteren Planning maken Risico's opstellen Commentaar verwerken | Goedkeuring van min. 2 groepsleden voor elk afgeronde onderdeel Oplevering en goedkeuring van product door opdrachtgever en projectbegeleider tussendoor en op de opleverdatum |
SRS | ICA Controlekaart Voldoet aan SRS template | Gesprek houden met opdrachtgever om specificaties te krijgen Actoren opstellen Operatie omgeving beschrijven Constraints beschrijven Use case diagram en brief descriptions uitwerken Domein model opstellen Use cases beschrijven Niet functionele requirements opstellen User interface schetsen maken Ontwerp beslissingen uitwerken Commentaar verwerken | Goedkeuring van min. 2 groepsleden voor elk afgeronde onderdeel Oplevering en goedkeuring van product door opdrachtgever en projectbegeleider tussendoor en op de opleverdatum |
SDD | ICA Controlekaart Voldoet aan SDD template | Gesprek houden met opdrachtgever om specificaties te krijgen Achitectueel overzicht opstellen Deployment diagram opstellen Sub-systemen uitwerken (als deze er zijn) Database ontwerp opstellen Ontwerp beslissingen uitwerken Commentaar verwerken | Goedkeuring van min. 2 groepsleden voor elk afgeronde onderdeel Oplevering en goedkeuring van product door opdrachtgever en projectbegeleider tussendoor en op de opleverdatum |
Broncode | 100% geslaagde unittests Minimaal 80% unittest coverage Code geschreven in Nederlands Traceable naar specifieke requirements en constraints Werkende build op Jenkins | Code schrijven Unit tests schrijven Code reviewen Jenkins opzetten | Goedkeuring van min. 2 groepsleden voor elke pull request. Voor opleveringen moet het product door alle groepsleden zijn beoordeeld. Oplevering en goedkeuring van product door opdrachtgever en projectbegeleider tussendoor en op de opleverdatum |
Applicatie | Respons in maximaal 1 sec Bevat geen bugs die geschreven usecases blokkeren. | Code omzetten tot applicatie Applicatie testen | Goedkeuring door het hele team Oplevering en goedkeuring van product door opdrachtgever en projectbegeleider tussendoor en op de opleverdatum |
Testrapportage | Bevat alle unittests Bevat zowel de verwachte resultaten als de daadwerkelijke resultaten van de unittests | Unittests uitvoeren Bugs rapporteren | Goedkeuring van min. 2 groepsleden voor elk afgeronde onderdeel Oplevering en goedkeuring van product door opdrachtgever en projectbegeleider tussendoor en op de opleverdatum |
Eindverslag | ICA Controlekaart Voldoet aan Eindverslag template | Goedkeuring door het hele team Oplevering en goedkeuring van product door opdrachtgever en projectbegeleider op de opleverdatum | |
Eindpresentatie | Bevat alle belangrijke punten | Project afgerond Presentatie opzetten | Oplevering en goedkeuring van product door PS docent en projectbegeleider op de opleverdatum |
Reflectieverslag | ICA Controlekaart Voldoet aan Reflectieverslag template Alle competenties uitgewerkt 2 uitgewerkte leerdoelen | Kwaliteitsoordeel geven over de producten De gehanteerde projectmethode evalueren Rol beschrijven Competenties uitwerken Leerdoelen uitwerken Conclusie trekken over het project Factsheet opstellen | Tussentijds ingeleverd Oplevering en goedkeuring van product door PS docent en projectbegeleider tussentijds en op de opleverdatum |
Bijlage | Bevat alle benodigde bijlage | Bijlage gebruiken | Gebruikte bijlagen direct linken Oplevering en goedkeuring van product door PS docent en projectbegeleider tussentijds en op de opleverdatum |
DoD: Na gekeken en goedgekeurd door 2 andere teamleden, alle betrevende tests slagen en voldoet aan de bijbehordende productkwaliteitseisen.
Ontwikkelmethode
Binnen dit project zal het ontwikkelteam op een Agile manier te werk gaan. Aan de hand van Scrum wordt iedere sprint een iets groter product opgeleverd, en na de laatste sprint zijn pas alle use cases geïmplementeerd. 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. Op deze manier weet de opdrachtgever waar hij aan toe is, omdat er na iedere sprint een concreet resultaat af is (het gaat hier om een subset van de uiteindelijke features). 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 om 09:30 een daily standup houden. Dit is een kort overleg waarbij wordt afgestemd wat ieder teamlid de voorgaande dag gedaan heeft, en wat hij voor die dag op de planning heeft. Op deze manier zal duidelijk inzichtelijk worden waar iedereen staat, en wordt het duidelijk of er knelpunten in het proces zijn. Naast de daily standup die in de ochtend plaatsvindt, 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. Dit is om te kijken waar de verbeterpunten van de afgelopen sprint in zitten, en om al vast voor te bereiden op de aankomende sprint. 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, waarbij de resultaten van de afgelopen sprint worden gepresenteerd aan de stakeholders, dus o.a. aan Jarno Eggink en Wim Reuterink van JDI.
Projectorganisatie en communicatie
Hieronder staan de contactgegevens van de opdrachtgever en de andere stakeholders van het project. Ook staan de vaste afspraakmomenten hierin opgenomen wanneer deze bekend zijn.
Naam | Rol | Vaste afspraak moment | |
---|---|---|---|
Wim Reuterink | w.reuterink@jdi.nl | Opdrachtgever | Aan het eind van iedere afspraak wordt er een nieuw contactmoment afgesproken. |
Jarno Eggink | j.eggink@jdi.nl | Opdrachtgever | Aan het eind van iedere afspraak wordt er een nieuw contactmoment afgesproken. |
Jaap Papavoine | jaap.papavoine@han.nl | Procesbegeleider | Iedere woensdag om 09:30 |
Sjir Schütt | sjir.schutt@han.nl | PS docent |
Het ontwikkelteam werkt alle werkdagen van 9:30 tot 17:00 gezamenlijk op locatie op de HAN in Nijmegen. Op deze dagen wordt dagelijks een stand-up gehouden om 9:30, met uitloop tot 9:45 als er groepsleden te laat zijn. Wanneer een student later komt of wanneer hij ziek is, laat hij dit weten door een bericht te sturen via een van de beschikbare communicatie middelen, Microsoft Teams of Discord.
Na iedere Sprint wordt er een gesprek ingepland met de opdrachtgever en de projectbegeleider om te kijken naar de vooruitgang van de afgelopen Sprint en om te kijken naar wat de plannen zijn voor de volgende Sprint. Ook is er tijdens deze contactmomenten ruimte voor het schuiven in prioritering van de nog uit te werken use cases.
Hieronder staan de contactgegevens van het ontwikkelteam vermeldt, inclusief studentnummer en projectrol.
Naam | StudentNummer | |
---|---|---|
Niels van der Hoeven | N.vanderHoeven2@student.han.nl | 643459 |
Connor Newton | CM.Newton@student.han.nl | 591671 |
Tobias Feld | TDW.Feld@student.han.nl | 649385 |
Thijmen Schoonbeek | T.Schoonbeek@student.han.nl | 654632 |
Gino Janssen | GA.Janssen1@student.han.nl | 620837 |
Gezamenlijk email voor communicatie | perlman-han@outlook.com | n.v.t. |
Voor het project heeft ieder groepslid van het ontwikkelteam een rol op zich genomen waar bepaalde verantwoordelijkheden aan hangen. Welk groepslid welke rol opneemt en de verantwoordelijkheden daarbij staan hieronder uitgewerkt.
Rol | Teamlid | Verantwoordelijkheid |
---|---|---|
Scrum master | Niels van der Hoeven | Verantwoordelijk voor het naleven van de scrum handelingen binnen de project groep. Het leiden van de daily standup, het bewaken van de voortgang. |
Kwaliteitsmanager | Connor Newton & Gino Janssen | Eindverantwoordelijke voor de kwaliteit van het project. Belangrijke rol bij de code reviews. |
Product owner by proxy | Tobias Feld | Verantwoordelijk voor de communicatie met de opdrachtgever en het doorvoeren van de wensen. |
Planner | Thijmen Schoonbeek | Verantwoordelijk voor het indelen van realistische sprints. |
Teamlid | Iedereen | Verantwoordelijk om op tijd te komen, kwalitatief goede code schrijven aan de hand van de definition of done. |
Planning
Week | Sprint fase | Op te leveren producten | Overige aandachtspunten |
---|---|---|---|
OW-0 | Pre-sprint | ||
OW-1 | Start van de eerste sprint | Plan van Aanpak, Eerste versie SRS | Op maandag eerste versie PvA af, inleveren op dinsdag |
OW-2 | |||
OW-3 | Start van de tweede sprint | Uitwerking van de in sprint 1 opgepakte use cases | |
OW-4 | Eerste versie SDD | Op woensdag tussentijdse versie inleveren | |
OW-5 | Start van de derde sprint | Uitwerking van de in sprint 2 opgepakte use cases | |
OW-6 | |||
OW-7 | Start van de afronding van het project | Uitwerking van de in sprint 3 opgepakte use cases | |
OW-8 | Op vrijdag uiteindelijke versie inleveren; SRS, SDD, Broncode inclusief unit tests, Testrapportage, Projectbeheerartefacten en Individueel verslag | ||
OW-9 | Presentatie eindproduct aan de opdrachtgever | Gezamenlijk de eindpresentatie voorbereiden voor de opdrachtgever |
OW-0 is week 14, van 04 tot 10 april
Risico’s
Risico | Kans | Impact | Tegenmaatregel | Uitwijkstrategie | |||
---|---|---|---|---|---|---|---|
COVID | middel | klein | Herverdelen opdrachten tijdens afwezigheid Thuis online werken | ||||
Uitvaller in de groep | klein | grootklein | groot | Herverdelen opdrachten, sprints re-scopen. | |||
Version control | middel | middel | Goed via Bitbucket bijhouden wie wat doet. Branch protection rules (vereiste reviews) | ||||
Ontwikkelomgeving is niet beschikbaar | klein | groot | Zelf lokaal proberen te werken totdat de problemen opgelost zijn. | ||||
Achterliggende API veranderd (optioneel/checken) | klein | groot | Tijdstekort | middel | groot | Goed plannen en nagaan bij de opdrachtgever of het geplande product realistisch in de tijdsperiode van 8 weken past.Sprints herstructuren om het werk beter op te delen.bijhouden aankomende aanpassingen API |
Contributors Summary | ||||
---|---|---|---|---|
|