Software Project 2011/2012

Inleiding

Bijna alle wat grotere programma's, systemen en games worden niet door een persoon, maar door een team geschreven. Worden in het eerste studiejaar de practica met hooguit een ander persoon gedaan, in het Software Project wordt er in een grotere groep samengewerkt. Met een team van ongeveer 10 studenten wordt, gedurende langere tijd, een programma of systeem of game ontworpen en geschreven. Doordat elk teamlid geacht wordt 420 uur te investeren (15 ects), is er per project dus 30 full-time mensmaanden beschikbaar. Daar kan je een behoorlijk groot programma in schrijven! Door het werken in teamverband wordt de realiteit ook veel beter benaderd dan in de gebruikelijke programmeerpractica.

De eerstvolgende run van het Software Project loopt van 6 februari 2012 tot en met 6 juli 2011. Ieder team krijgt een eigen opdracht. In de eerste weken wordt het probleem geanalyseerd, kun je je inwerken in de programmatuur die je wilt gaan gebruiken, en wordt een ontwerp voor het programma of de game opgesteld. Een heel belangrijk product van deze periode is een specificatie van het systeem. Ook zal in deze periode begonnen worden aan een prototype voor het programma. De eigenlijke implementatie, of de uitbouw van het prototype tot een volledig programma start direkt daarna. Ieder team implementeert dan zijn systeem volgens de vastgelegde specificaties. Als het goed is, is het eindproduct van deze fase een werkend programma, compleet met documentatie, installatierichtlijnen, enzovoort.

Het zal duidelijk zijn dat je in zo'n team moet kunnen rekenen op het werk van anderen. Er wordt van iedereen die aan het Software Project begint verwacht dat de volledige periode voluit wordt meegedaan.

Vorm en omvang

De omvang van het Software Project is 15 ects (= 420 uren werk per persoon). Er zijn geen aparte studiepunten te halen voor de afzonderlijke perioden; je haalt het hele vak van 15 ects, of je haalt het vak niet.

Andere vakken kan je soms nog halen door gewoon een voldoende voor het tentamen te halen, los van de inspanning die je daar voor gepleegd hebt. Bij het Software Project geldt wel een inspanningsverplichting. De 420 vereiste uren moeten worden verdeeld over de weken dat er aan het Software Project wordt gewerkt.

Een deel van de tijd die je voor het project nodig hebt, zal besteed worden aan formele vergaderingen of voortgangsbesprekingen met de rest van het team. In het collegerooster worden daar uren en zalen voor gereserveerd in overleg met het team (te bespreken bij de eerste bijeenkomst). Omdat het erg lastig is als een deel van het team niet beschikbaar is voor overleg, zijn deze bijeenkomsten verplicht. In gevallen van ziekte of andere zwaarwegende redenen voor afwezigheid moet je je van te voren afmelden: telefonisch of per mail bij de teamleider, dan wel via de mailing list. Op deze manier weten de andere teamleden waar ze aan toe zijn. Naast de verplichte bijeenkomsten kan voor elke groep ook een reservetijd gereserveerd worden, die kan worden gebruikt als er extra vergadertijd nodig is of als er met de hele groep gezamenlijk aan een onderdeel moet worden gewerkt.

Omdat een team van 10 personen te groot is om alles samen te doen, worden de teams in de praktijk opgesplitst in kleinere groepjes. Een belangrijke taak van een team aan het begin van het semester is om zelf te bepalen hoe het werk goed onder de deelgroepjes kan worden verdeeld. Voor de begeleiding van de aparte groepjes kan de hulp ingeroepen worden van een docent van de teambegeleiding. Afhankelijk van de specifieke problemen, kan deze docent een groepje verwijzen naar andere stafleden van het Informatica Instituut. In de loop van het jaar zullen de begeleiders functioneringsgesprekken houden met de individuele teamleden.

De taak van de begeleiders is in de eerste plaats observerend en daarnaast adviserend. Zij zijn teambegeleiders en geen teamleiders. Echter, als een project niet goed gaat, kunnen de docenten een meer sturende en leidende rol op zich nemen.

Een van de eerste zaken die derhalve geregeld zal moeten worden is een organisatorische indeling van het team. We kunnen ervan uitgaan dat er wekelijks door het team vergaderd zal worden over de voortgang. Derhalve dient daartoe een professionele vergaderstructuur en samenwerkingsstructuur aangelegd te worden. Verder moet er een taakverdeling worden gemaakt.

Het is de taak van de groep zelf zo snel mogelijk zwart op wit te krijgen wat de af te leveren producten zijn, en een planning te maken die daarop aansluit. In het typische geval zal er achtereenvolgens gewerkt worden aan:

Parallel daaraan kan de documentatie bijgehouden worden, zowel in de vorm van specificaties, ontwerpdocumenten en manuals als van commentaar tussen de regels code. Verder dient er een vorm van Quality Assurance te zijn tijdens het hele verloop van het project; testen van specificaties en programma's maakt daar een onderdeel van uit.

Onderdeel van het Software Project zijn verder een tussenpresentatie (aan het einde van de eerste periode) en een eindpresentatie (aan het einde van de tweede periode). De presentaties worden verzorgd voor opdrachtgevers en medestudenten. De presentaties worden t.z.t. in overleg met de groepen gepland.

Tenslotte is een aantal verplichte hoorcolleges onderdeel van het vak Software Project. Deze colleges zijn in het rooster opgenomen. Voor een overzicht van de onderwerpen kan de hoorcolleges pagina geraadpleegd worden.