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

Compare with Current View Page History

« Previous Version 19 Next »

Inleiding

  • Introductie bedrijf
  • Korte introductie van de opdracht
  • Leeswijzer: wat volgt in de rest van het document

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 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)

Eindproduct (bijvoorbeeld je applicatie)

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.

NaamEmailRol
Jarno Egginkj.eggink@jdi.nlOpdrachtgever
Jaap Papavoinejaap.papavoine@han.nlProjectbegeleider
Sjir Schüttsjir.schutt@han.nlPS docent


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.

NaamEmailStudentNummer
Niels van der HoevenN.vanderhoeven2@student.han.nl643459
Connor Newtoncm.newton@student.han.nl591671
Tobias Feldtdw.feld@student.han.nl649385
Thijmen Schoonbeekt.schoonbeek@student.han.nl654632
RolTeamlidVerantwoordelijkheid
Scrum masterNiels van der HoevenVerantwoordelijk voor het naleven van de scrum handelingen binnen de project groep. Het leiden van de daily standup, het bewaken van de voortgang.
KwaliteitsmanagerConnor NewtonEindverantwoordelijke voor de kwaliteit van het project. Belangrijke rol bij de code reviews.
Product owner by proxyTobias FeldVerantwoordelijk voor de communicatie met de opdrachtgever en het doorvoeren van de wensen.
PlannerThijmen SchoonbeekVerantwoordelijk voor het indelen van realistische sprints
TeamlidIedereenVerantwoordelijk om op tijd te komen, kwalitatief goede code schrijven aan de hand van de definition of done, 


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.


WeekFaseOp te leveren productenOverige aandachtspunten
OW-0Pre-sprint

OW-1Start van de eerste sprintPlan van AanpakOp maandag eerste versie PvA af, inleveren op dinsdag
OW-2


OW-3



  간트 차트 (Gantt Chart)

Mogelijke opties om planning te verduidelijken                                                    Of een GANT planning

  • Strokenplanning

Risico’s

Dit hoofdstuk is een soort ‘final check’. Je vraagt je af ‘wat kan er nu nog mis gaan?’. Een risico is iets wat buiten je macht/invloed op kan treden, en als het optreedt dan wordt de doelstelling van het project niet gehaald. Het project wordt dan te laat, met budgetoverschrijding of met (sterk) verminderde functionaliteit opgeleverd. Iets wat kan optreden maar wat planmatig bestreden kan worden is dus geen risico. Dit soort zaken neem je op in je planning, je randvoorwaarden, of daar waar het in het plan van aanpak thuishoort. Denk bijvoorbeeld aan voldoende overlegmomenten met je opdrachtgever.
Alléén de risico’s die je niet vooraf kunt beïnvloeden neem je op in deze paragraaf. Een voorbeeld: als je weet dat je tijdens je project gaat verhuizen kun je in je planning opnemen op welke dagen je niet werkt. Afwezigheid door verhuizing is dus geen risico. Maar, als je afhankelijk bent van de levering van een server door een nieuwe leverancier, kan het anders zijn. Natuurlijk neem je eerst in de planning op dat je er nog een keer extra achter aan belt (dit noemen we een tegenmaatregel), maar je vraagt je ook af wat je gaat doen als het onverhoopt tóch misgaat (je uitwijkstrategie). Dit geef je weer in een tabel die er zo uit kan zien:

Risico

Kans
(groot-middel-klein)

Impact
(groot-middel-klein)

TegenmaatregelUitwijkstrategie
COVIDmiddelklein

Uitvaller in de groepkleingroot

Version controlmiddelmiddel

Goed via Bitbucket bijhouden wie wat doet.

Branch protection rules (vereiste reviews)


Ontwikkelomgeving is niet beschikbaarkleingroot

Achterliggende API veranderd (optioneel/checken)kleingroot

TijdstekortmiddelgrootGoed 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.


UserEditsCommentsLast Update
Connor Newton 3114927 days ago
Thijmen Schoonbeek 211935 days ago
Gino Janssen 192878 days ago
Niels Hoeven, van der 150935 days ago
Tobias Feld 80926 days ago
Auto Mation 30943 days ago
Jaap Papavoine 05935 days ago


  • No labels