Arbetet utförs i projektform i projektgrupper om ca 10 personer med vissa specifika roller som beskrivs nedan. Gruppindelningen görs av kursledningen, men rollbesättningen bestäms av grupperna själva. De olika rollerna kan naturligtvis överlåtas vid behov, men detta bör endast göras i nödfall. Varje projektgrupp har en beställare. Det är beställaren som skall godkänna alla projektdokument, all design och projektgruppens tolkning av kravspecifikationen etc.
För varje roll skall det finnas en vice vilket gör att det totala antalet roller uppgår till åtta. Vicens uppgift är att i den ordinaries frånvaro sköta dennes specifika arbetsuppgifter. Vicens uppgifter är exakt desamma som för den ordinarie rollen. I övrigt skall samtliga roller fungera som vanliga gruppmedlemmar. En person får inte ha fler än en roll.
Att vi delar in grupperna i roller har flera syften. Dels försöker vi påvisa vissa aspekter av projektarbete i verkligheten, men vi vill också få fungerande projektgrupper som ger alla ambitiösa studenter samma möjlighet att tillgodogöra sig och klara av kursen. Det är naturligtvis viktigt att alla gruppmedlemmar får ta del av alla aktiviteter i viss mån; dock är det inte nödvändigt (eller rekommenderat) att rotera alla arbetsuppgifter (eller, ännu värre, att låta alla vara med om allt -- tänk hur det skulle fungera i verkligheten!). Ni kommer att behöva "experter" och gruppmedlemmar som är speciellt insatta i vissa delar av projektet hela tiden. Dock är det viktigt att samtliga gruppmedlemmar deltar i framställandet av projektdokumentationen eftersom det är där de flesta av kursens viktigaste lärdomar kommer att dras. Att samtliga gruppmedlemmar deltar på samtliga projektmöten som hålls under projektets gång har också visat sig vara fördelaktigt eftersom brist på kommunikation har medfört stora onödiga arbeten (eller resultat som man tvingats kasta) tidigare år. Av samma anledning är det också nödvändigt att samtliga gruppmedlemmar befinner sig i Kista och arbetar tillsammans. Vi är benhårda på den punkten.
Projektledaren
Projektledarens uppgift är att styra projektet, vilket innebär bl.a. att fördela arbetsuppgifter, koordinera arbetet, följa upp projektet med lämplig periodicitet och vid behov ändra i planen eller omfördela arbetet. I ett verkligt projekt skulle förstås projektledaren vara en chef med formell makt. Så kan vi tyvärr inte lösa det här (det är t.ex. inte rimligt att låta projektledaren avgöra vilka i gruppen som skall bli godkända på kursen). Därför måste övriga gruppmedlemmar bjuda till och ge projektledaren dignitet och sista ordet i alla eventuella tvister. Projektledaren är den enda gruppmedlem som har rätt att begära handledning (å samtliga gruppmedlemmars vägnar). På projektledarens ansvar faller även tidsplanering och andra projektledaruppgifter.
På förekommen anledning vill vi nämna att projektledare inte ansvarar för att informera om generella regler, t.ex. vad som gäller kring frånvaro från obligatoriska seminarier, etc. Bara för att man är ansvarig för projektledning eller dokumentation är man inte ansvarig för att någon annan sköter sina studier, får reda på information som finns allmänt tillgänglig i FC, dokumenterar ordentligt etc.
Dokumentationsansvarig
Dokumentationsansvarig har till uppgift att säkerställa att kvaliteten på all dokumentation som produceras inom projektet och att denna är korrekt och fullständig med avseende på uppgiftens dokumentationskrav. Observera att det inte är den dokumentationsansvarige som skall producera all dokumentation. Snarare är det hans/hennes uppgift att se till att inga dokument glöms bort, att de projektmedlemmar som är ansvariga för dokument sköter sitt ansvar. Vidare kontrollerar dokumentationsansvarig att dokumentationen är korrekt, fullständig, enhetlig och så vidare.
Dokumentationsansvariga kommer att få en extra lektion i dokumentationsverktyget och förväntas sedan hjälpa sina gruppmedlemmar att lära sig använda LaTeX.
Versionsansvarig
Versionsansvarig är ansvarig för versionshanteringen (ungefär administrera och sätta upp det system som kommer att hålla reda på alla versioner av alla kodfiler, dokument etc.), och har till uppgift att administrera projektets versionshanteringssystem, som är obligatoriskt att använda, att installera och konfigurera systemet och se till att projektgruppen versionerar korrekt.
Versionsansvariga kommer att få en extra lektion i versionshantering och förväntas sedan hjälpa sina gruppmedlemmar att lära sig använda Subversion.
Kvalitetsansvarig
Kvalitetsansvarig har bland annat till uppgift att utifrån kravspecifikationen och designen av systemet välja ut lämpliga testmetoder och se till att dessa tester utförs. Analogt med den dokumentationsansvarige är det inte dennes uppgift att utföra testerna. Samtliga projektmedlemmar skall vara involverade i testningen.
Arkitekturansvarig
Arkitekturansvarig ansvarar för systemets grundläggande arkitektur och att denna upprätthålls. Rollen kräver antagligen goda kunskaper i såväl OOA/D och programmering.