Softwarekwaliteit? Natuurlijk!

Softwarekwaliteit? Natuurlijk!
Resultaten van 4 jaar EQuA project
Softwarekwaliteit?
Natuurlijk!
Uitgave ter gelegenheid van de afsluiting
van het RAAK-PRO EQuA project
November 2014
Colofon
Samenstelling: Jacob Brunekreef
Eindredactie: Annemarie Diepenbroek
Cartoons: Andrea Almering
Inhoud
Voorwoord
5
Early Quality Assurance
7
Het belang van requirements
Waar zijn de requirements?
Neem Requirements Serieus!
Symbiosis en de praktijk van Beech.it
Een stage rond het genereren van code
9
11
15
18
21
Software voor game development
Talen voor Game Productie
De kracht van serious games
25
27
31
Agile software ontwikkelen
Vijf jaar agile. Hosanna of Drama?
Samenwerking tussen agile teams
35
37
43
Toegepast wetenschappelijk onderzoek
Onderzoek in opleiding
47
51
De EQuA deliverables
54
Voorwoord
Deze uitgave is samengesteld ter gelegenheid van de afsluiting van het EQuA project.
“EQuA” staat voor Early Quality Assurance (in software production). In het project
hebben hogescholen, universiteiten en bedrijven samen gewerkt aan de centrale
vraag: “hoe kunnen we fouten bij het produceren van software zo vroeg mogelijk
opsporen – en daarbij herstelkosten op een later moment besparen?” Aandacht voor
kwaliteit van softwaresystemen, vanaf de start van de ontwikkeling – het lijkt zo voor
de hand te liggen. Toch blijkt het een weerbarstig onderwerp te zijn.
Softwarekwaliteit? Natuurlijk!
De titel van deze uitgave kan op twee manier worden gelezen. Natuurlijk is het
zinnig en noodzakelijk om aandacht te besteden aan kwaliteit bij het ontwikkelen
van software. Dat hoort bij de professionele werkwijze van de huidige generatie
ontwikkelaars. Maar, wat is de natuurlijke manier om tot die kwaliteit te komen?
Meer inzet van tools? Betere ontwikkelmethoden? Hoger opgeleide ontwikkelaars?
Aan die vragen is binnen het EQuA project vier jaar lang gewerkt. Deze uitgave
geeft u een indruk van de resultaten. Niet alle geschreven papers, handleidingen,
afstudeerverslagen, zijn in z’n geheel opgenomen. Dat is teveel van het goede
en zou deze uitgave veel te dik maken. Achterin is een lijst opgenomen met die
documenten, en waar ze te vinden zijn.
In deze uitgave komen alle partijen die hebben bijgedragen aan het project aan het
woord. Onderzoekers die de afgelopen jaren het grootste deel van hun werktijd (en
het nodige van hun privé-tijd) aan het EQuA project hebben gewerkt vertellen waar
ze aan gewerkt hebben, over hun resultaten. Medewerkers van bedrijven die bij
het EQuA project betrokken zijn geweest maken duidelijk wat het project voor de
praktijk van hun bedrijf heeft betekend. Drie universiteiten hebben deelgenomen
aan het EQuA project. Hoe wordt in die wereld aangekeken tegen toegepast
wetenschappelijk onderzoek, samenwerken met hogescholen en het bedrijfsleven? In
een rondetafelgesprek laten drie universitaire medewerkers hun licht schijnen over
dit onderwerp. Studenten hebben in het EQuA project een belangrijke rol gespeeld:
als onderzoeker en als proefkonijn. Van beide wordt een voorbeeld beschreven.
Daarnaast is een interview opgenomen met een stage-student die gewerkt heeft aan
de ontwikkeling van een tool.
Softwarekwaliteit? Natuurlijk!
5
De artikelen zijn gegroepeerd rond een viertal onderwerpen: de kwaliteit en
structuur van requirements, software voor het interactief ontwikkelen van games,
agile ontwikkelen en toegepast onderzoek algemeen.
Tenslotte past een woord van dank. Allereerst aan de medewerkers en studenten van
de betrokken partners – hogescholen, universiteiten, bedrijven – die met hun inzet
voor de resultaten van het project hebben gezorgd. Ten tweede aan de Stichting
Innovatie Alliantie (SIA), die met haar subsidie dit project mogelijk heeft gemaakt.
En, last but not least, aan Fontys Hogeschool ICT die als penvoerder van het project
zich keer op keer een uitstekend gastheer heeft getoond.
Ik wens u veel leesplezier met deze uitgave!
Jacob Brunekreef
Projectleider EQuA-project
Fontys Hogeschool ICT
6
Softwarekwaliteit? Natuurlijk!
Early Quality Assurance
Jacob Brunekreef, Fontys Hogeschool ICT
Van oudsher speelt kwaliteit een prominente rol in de wereld van software
ontwikkelaars. Want, de gevolgen van achterblijvende kwaliteit kunnen groot
zijn. Iedereen heeft wel ervaring met applicaties die plotseling dienst weigeren
(net voordat je weer wilde saven …), iedereen kent verhalen van falende
automatiseringsprojecten waar vaak miljoenen euro’s mee zijn gemoeid. Maar, hoe
voorkom je die problemen? Het antwoord op deze vraag is niet simpel, er bestaat
niet zoiets als een “silver bullet”. Maar, er zijn wel inzichten die helpen. Zo weten we
sinds onderzoek van de Amerikaanse software goeroe Barry Boehm uit begin jaren
80 van de vorige eeuw dat de kosten van foutherstel exponentieel oplopen naarmate
een project in de tijd vordert. Dus loont het om al in een vroeg stadium aandacht te
besteden aan het opsporen, verhelpen en vermijden van fouten.
Bij de start van het EQuA project, in het najaar van 2010, hebben we bovenstaand
inzicht als uitgangspunt genomen. De centrale vraag binnen het project was: “Hoe
kunnen wetenschappelijke kennis en inzichten op het terrein van vroegtijdige
foutdetectie en –herstel in software productie en in het werkveld op dit terrein
toegepaste methoden en technieken samengebracht worden?”. Daarbij was de
veronderstelling dat zowel wetenschappers als het werkveld weten dat vroegtijdig
opsporen van fouten loont – maar wat doe je met die kennis? Wij hadden niet de
illusie dat wij in het project het hele probleem op zouden kunnen lossen. Zoeken
naar een aantal goede en bruikbare handvatten, dat was het idee.
En, is er wat terecht gekomen van dat idee? Ik denk het wel! Binnen het EQuA
project hebben onderzoekers zich gestort op een verscheidenheid aan onderwerpen,
variërend van een kwaliteitsmodel voor requirements tot succesfactoren voor het
samenwerken in een ontwikkelteam, van volwaardig gereedschap om requirements
te kunnen formuleren en beheren tot een software bibliotheek om het ontwikkelen
van spelgedrag in games te ondersteunen. Daarmee is nog niet alles genoemd.
De volledige lijst met resultaten, verderop in deze uitgave, laat goed zien hoe
omvangrijk en breed het onderzoek is geweest dat in het kader van het EQuA project
is uitgevoerd.
Uit de voorgaande opsomming is al wel duidelijk dat er niet alleen papier is
geproduceerd. Er zijn ook producten ontwikkeld. Producten die al tijdens het project
hun bruikbaarheid in de praktijk hebben bewezen. Zo wordt het Symbiosis tool voor
Softwarekwaliteit? Natuurlijk!
7
het modelleren van requirements inmiddels actief gebruikt in enkele bedrijven, en is
de Micro-Machinations1 bibliotheek in het open source domein beschikbaar gesteld.
Onderzoek en producten zijn gepresenteerd aan de buitenwereld, op congressen,
symposia en andere bijeenkomsten, en in artikelen.
Ondertussen dringt zich vanuit de praktijk een interessante vraag op: hoe relevant is
de nadruk op vroegtijdig foutherstel in het licht van de sterke toename in de laatste
jaren van de iteratieve, agile, manier van software ontwikkelen? Vandaag de dag
wordt een toenemend deel van de software ontwikkeld in agile projecten, waarin
opdrachtgever en opdrachtnemer samenwerken, om in kortlopende cycli (iteraties)
een product iedere keer een stukje verder te ontwikkelen. Nu is er geen sprake
meer van een opdrachtgever die een lijst met eisen (requirements) aanlevert en een
jaar later eens komt kijken wat er van geworden is, maar van een opdrachtgever
die bewust iedere kleine toevoeging aan of wijziging van het product-in-wording
controleert en accepteert. De kans op het in een laat stadium van een project
ontdekken van fouten is zo een stuk kleiner geworden.
De trend om op een agile manier software te ontwikkelen bestond al bij de start van
het EQuA project. Maar in de looptijd van het project, de afgelopen vier jaar, heeft
deze manier van werken een grote vlucht genomen. Is het EQuA project daarmee
achterhaald? Zeker niet! Juist hulpmiddelen als het Symbiosis tool en de MicroMachinations Library, die in het EQuA project zijn ontwikkeld, ondersteunen de agile
aanpak om snel tot een resultaat te komen dat met de opdrachtgever kan worden
gedeeld. Juist het onderzoek in het EQuA project naar het belang van verschillende
aspecten van teamwerk en de samenwerking tussen agile teams draagt bij aan goed
functionerende ontwikkelteams.
Zo omvat het EQuA project een aantal mooie voorbeelden van toegepast onderzoek
waarbij onderzoekers en werkveld samen tot oplossingen van praktische problemen
zijn gekomen. Early quality assurance is een stukje concreter geworden.
1
Micro-Machinations zijn elementaire spelhandelingen van waaruit het verloop van een spel kan
worden samengesteld.
8
Softwarekwaliteit? Natuurlijk!
Het belang van requirements
Softwarekwaliteit? Natuurlijk!
9
10 Softwarekwaliteit? Natuurlijk!
Waar zijn de requirements?
Kwaliteit van wijzigingsverzoeken in open source en agile projecten
Petra Heck, Fontys Hogeschool ICT
Steeds meer bedrijven gaan agile werken (zie bijvoorbeeld http://agilesurvey2013.
xebia.nl/ebook/). Deze manier van werken houdt onder andere in dat de
requirements (binnen agile ook wel in de vorm van use cases of user stories) aan het
begin van een ontwikkeltraject ‘vaag’ gespecificeerd worden en pas op het moment
van implementeren verder in detail worden uitgewerkt. Zo wordt voorkomen dat
van tevoren veel tijd besteed wordt aan het detailleren van requirements die later
toch weer wijzigen. De detailuitwerking wordt bij een agile manier van werken
ook niet altijd op papier vastgelegd, maar bijvoorbeeld in mondelinge conversaties
met de klant of op whiteboards. Het beheren van de requirements gebeurt soms
op papieren kaarten op een zogenaamd ‘scrum board’ maar vaak ook in digitale
varianten daarvan (tools als Excel, VersionOne, Jira, Scrumwise, Trello, zie http://
agilescout.com/best-agile-scrum-tools/).
Open source projecten kennen al langer een vergelijkbare manier van werken. Zij
gebruiken issue trackers als Bugzilla en Jira om personen van binnen en buiten het
project de mogelijkheid te geven online nieuwe wijzigingsverzoeken (vraag voor
toevoegen, wijzigen of uitbreiden van een feature) door te geven. Op het moment
dat een van de ontwikkelaars aan de feature gaat werken, kan hij ‘real-time’
feedback vragen aan de aanvrager of aan andere deelnemers door commentaar
toe te voegen aan het wijzigingsverzoek. Het bijzondere hieraan is dat zo dus ook
de informele discussie wordt vastgelegd (bij agile werken gebeurt dit vaak niet). Dit
vastleggen is bij open source projecten ook nodig omdat de ontwikkelaars vaak niet
gelijktijdig en ook niet op dezelfde locatie aan het project werken.
De vraag `waar zijn de requirements?’ kan voor agile en open source projecten
dus beantwoord worden met: `niet in complete van tevoren geschreven
requirementsdocumenten, maar wel als losse (initiële) requirements in digitale tools’.
Wij zullen dit soort requirements samenvattend ‘Just-In-Time (JIT)’ noemen.
Een eerste analyse van wijzigingsverzoeken in open source projecten heeft ons laten
zien dat er diverse problemen rondom de kwaliteit zijn. Een belangrijk voorbeeld is
het grote aantal ‘dubbele’ wijzigingsverzoeken in open source projecten: meerdere
aanvragers vragen onafhankelijk van elkaar eenzelfde wijziging aan. Voor sommige
projecten is het aantal dubbelen wel 30%. Dit vertroebelt het zicht op de werkelijke
Softwarekwaliteit? Natuurlijk!
11
requirements en als men met een aantal ontwikkelaars remote probeert samen te
werken is er zelfs kans op het verschillend implementeren van dezelfde requirement
(doordat ieder ontwikkelaar een verschillend verzoek van het dubbele paar als
uitgangspunt neemt en zo de dubbeling onopgemerkt blijft).
Dit eerste onderzoek heeft ons bij de vraag gebracht: hoe moet je kwaliteit van
dit soort wijzigingsverzoeken definiëren? Sommige criteria die voor traditionele
requirements (het document waarin alles van te voren is gedetailleerd) gelden,
hoeven niet per se te gelden voor JIT requirements. Die mogen bijvoorbeeld op
papier ‘vaag’ (niet SMART) zijn omdat discussies later de details gaan invullen.
Maar toch wordt een deel van de JIT requirements wel degelijk vastgelegd. En het
is algemeen aanvaard dat wat we vastleggen in ontwikkeltrajecten moet voldoen
aan bepaalde kwaliteitscriteria. Maar welke kwaliteitscriteria gelden dan voor JIT
requirements?
Om die vraag te beantwoorden hebben wij een onderzoek opgezet in vier stappen:
Analyseren van literatuur over traditionele requirements om te kijken welke criteria
nog steeds gelden voor JIT requirements;
1.Analyseren van literatuur over JIT requirements om te kijken welke nieuwe
criteria wij kunnen toevoegen;
2. De criteria samenvatten in een overzichtelijk raamwerk (zie Figuur 1);
3. Het raamwerk valideren met een aantal practitioners.
Voor stap 1 en 3 hebben wij onder andere gebruik gemaakt van eerder werk op het
gebied van kwaliteit van traditionele requirements. Het product-certificatie-model
(zie de literatuurverwijzing aan het eind van dit artikel) bevat een indeling en een
aantal criteria die zonder meer bruikbaar zijn voor JIT requirements. Zoals te zien is
in Figuur 1 bestaat het raamwerk uit 3 onderdelen die wij graag willen controleren:
[VC1] Compleetheid: Zijn alle belangrijke onderdelen of attributen van de JIT
requirement ingevuld?
[VC2] Uniformiteit: Zijn de JIT requirements in een uniform format vastgelegd?
[VC3] Correctheid & Consistentie: Voldoet de inhoud van wat er beschreven staat
aan de richtlijnen voor JIT requirements?
Deze drie onderdelen zijn het belangrijkste van het raamwerk. Ieder project of team
kan dan voor de eigen situatie nagaan welke criteria daar onder zouden moeten
vallen. Zo is er voor user stories een apart template in de vorm ‘als <rol> wil ik
<functie> zodat <business value>’. Als een team hiermee werkt dan kan dit onder
[VC2] worden toegevoegd. In Figuur 1 staat een voorbeeldlijst van criteria voor user
12 Softwarekwaliteit? Natuurlijk!
stories en feature requests (wijzigingsverzoeken in open source projecten). Voor meer
details over de verschillende criteria verwijzen we graag naar ons uitgebreide artikel.
Figuur 1: De criteria in italic gelden alleen voor user stories, de rest geldt voor user stories en feature requests
Voor het valideren van het raamwerk hebben wij de verschillende criteria vertaald in
een Excel checklist en die vervolgens voorgelegd aan 8 personen uit de Nederlandse
agile community. Wij hebben hun mening over kwaliteit van agile requirements
in het algemeen gevraagd, maar ze ook met de checklist een aantal open source
requirements laten beoordelen zodat ze hun mening over het raamwerk konden
geven. Voor dat laatste doel hadden wij zelfs een scoringsalgoritme in de checklist
ingebouwd om de kwaliteit van verschillende requirements te kunnen vergelijken.
Ieder van de deelnemers was het erover eens dat kwaliteit van agile requirements
belangrijk is. Zij vonden het raamwerk over het algemeen nuttig als hulpmiddel
om de kwaliteit van agile requirements te beoordelen. Zij hadden twee soorten
opmerkingen: 1) aanvullingen op de criteria en 2) over de scoringsregels. Voor wat
betreft de aanvullende criteria waren dit vaak bedrijf- of projectspecifieke criteria
(bijv. is er een akkoord van de product owner?) die wij niet in het algemene model
hebben opgenomen. Maar zoals gezegd laat het raamwerk voldoende ruimte voor
het schrappen of toevoegen van eigen criteria. Voor wat betreft de scoringsregels
is de conclusie dat deze in de meeste gevallen niet nodig zullen zijn: men wil agile
Softwarekwaliteit? Natuurlijk!
13
requirements niet scoren op een absolute schaal maar vooral kijken waar nog
mogelijkheden voor verbetering zijn.
Samengevat kan men het raamwerk gebruiken om eenmalig vast te leggen wat
de organisatie of het team acceptabel vindt voor JIT requirements, maar ook
bijvoorbeeld opnemen in de Definition of Ready (een agile term die een quality
gate voor requirements aangeeft) zodat iedere keer snel gecheckt wordt of er nog
kwaliteitsproblemen met een agile requirement zijn. De criteria en requirements
hoeven dan niet gescoord te worden op een schaal van 1 tot 10, maar veel meer
wordt er dan gezocht naar mogelijke schendingen van één van de criteria. Als er
schendingen zijn dan is het nog altijd aan de beoordelaar om te bepalen of dat in
dit geval wel of niet acceptabel is. Bijvoorbeeld een hele duidelijke of standaard
requirement hoeft niet per se een beschreven rationale te hebben.
In de toekomst willen wij dit raamwerk graag toepassen in bestaande open source
en agile projecten om meer praktijkervaring op te doen met de verschillende criteria.
Maar u kunt ook alvast uw voordeel doen met dit raamwerk als checklist van wat
belangrijk is bij kwaliteit van JIT requirements of om de discussie hierover in uw team
of organisatie op gang te brengen. Succes met de requirements!
Wie meer wil lezen:
• Project deliverables [6], [7] en [8]
• Ernst N., Murphy G., Case studies in just-in-time requirements analysis. Int’l
Workshop on Empirical Requirements Engineering (EmpiRE), IEEE, 2012
• Heck P., Klabbers M., and Eekelen, M. C. J. D. van., A software product
certification model, Software Quality Journal, vol. 18, no. 1, pp. 37–55, 2010
• Leffingwell, D., Agile Software Requirements: Lean Requirements Practices for
Teams, Programs, and the Enterprise, 1st ed. Addison-Wesley Professional, 2011.
14 Softwarekwaliteit? Natuurlijk!
Neem Requirements Serieus!
Frank Peeters, Fontys Hogeschool ICT
Te ontwikkelen software zou moeten beantwoorden aan de behoefte van
zijn toekomstige gebruikers. Het is bovendien wel zo professioneel als er bij
de oplevering kan worden vastgesteld of dat doel inderdaad is bereikt. Als de
softwareontwikkeling doelgericht is ingericht, zal deze behoefte op de een of
andere manier in kaart moeten worden gebracht. Dit leidt tot een verzameling (user)
requirements, in welke vorm dan ook. Acceptatietesten geven meestal aan dat er een
mismatch bestaat tussen de opgeleverde software en de requirements. Er ontbreekt
te vaak voldoende zorg voor de realisatie van alle requirements. Hoe verder men in
het ontwikkelingstraject op stoom raakt, des te meer dreigen de requirements uit
beeld te geraken. Ze worden dan niet in voldoende mate serieus genomen.
Softwareontwikkeling is vergelijkbaar met het bouwen van een huis of een brug
of het fabriceren van een printplaat. Toch zijn er een aantal aspecten die het
doelgericht bouwen van software, in vergelijking tot andere engineering disciplines,
nogal compliceren. De toekomstige gebruikers staan meestal aan de zijlijn. Zij
worden normaliter vertegenwoordigd door een of meer personen; wij noemen hen
de producteigenaren. Het proces van afstemmen tussen ontwikkelaars en gebruikers
lijkt hierdoor eenvoudiger te worden. Doch, al te vaak blijkt dat een producteigenaar
niet in voldoende mate rekening kan houden met de, verschillende, behoeften van
zijn of haar toekomstige gebruikers. Requirements zijn bij de aanvang bovendien
niet volledig duidelijk. Mede naar aanleiding van tussentijdse validaties zullen
requirements regelmatig worden aangepast. De extra handicap waarmee software
engineers, in vergelijking tot de meeste andere engineers, dus opgescheept worden,
zijn de wijzigingen in de requirements die er gedurende de bouw optreden. Een
softwareontwikkelmethode moet hierop voorbereid zijn.
Ons onderzoek was gericht op het doelgericht realiseren van de software die de
domeinklassen2 omvat. Niet-functionele requirements, zoals gebruiksvriendelijkheid,
betrouwbaarheid, beveiliging en snelheid lagen buiten het bereik van ons
onderzoek. Onze kernvraag was:
Hoe kun je ervoor zorgen dat de domeinklassen blijven matchen met de, aan
verandering onderhevige, user requirements?
2
Ofwel de klassen die de ‘business logic’ vastleggen.
Softwarekwaliteit? Natuurlijk!
15
Omdat rechtstreekse vertaling van user requirements naar domeinklassen ons
onmogelijk lijkt, zal de brug tussen requirements en software, in de vorm van een of
ander design (zie figuur 1), ook moeten blijven matchen.
Figuur 1: Design als brug tussen User Requiremenst en Domain Software
Wij hebben een model driven methode en ondersteunend tool, met de naam
Symbiosis, ontwikkeld, die afdwingt dat elk requirement expliciet is verankerd in een
element van het design. Vanuit het design worden de domeinklassen automatisch
gegenereerd. Als de requirements veranderen, dan zal het design veranderen en
de domein software zal zich hierin slaafs schikken. Als een ontwikkelaar het design
autonoom aanpast, worden er extra requirements gegenereerd. Elk, handmatig
ingevoerde of automatisch gegenereerde, requirement moet uiteindelijk door een
producteigenaar worden gevalideerd. Om ervoor te zorgen dat het validatieproces
op een nauwkeurige manier verloopt, is er voor gekozen om alle requirements in de
natuurlijke taal van de producteigenaar uit te drukken.
De requirements zijn opgedeeld in vier categorieën: actie, regel, feit en
kwaliteitsattribuut. Een actie beschrijft een handeling die een gebruiker met
de software moet kunnen uitvoeren. Een actie kan worden beschouwd als een
voorbereidende stap op een use case. Een regel beschrijft een beperking op de
toestand of de toestandsovergang van domeinobjecten, of er wordt door middel
van een regel een automatische toestandsovergang gedefinieerd. Acties en regels
zijn gebaseerd op vereiste informatie. Elk vereist informatie-element wordt in de
vorm van een feit requirement vastgelegd. Ten slotte, een kwaliteitsattribuut is niets
anders dan een niet-functionele eis.
Gedurende de ontwerpfase worden de relaties tussen objecten volledig gebaseerd
op de aanwezige fact requirements. Tijdens de transformatie van fact requirements
naar een design worden default rule en action requirements gegenereerd. De
ontwikkelaar configureert vervolgens het design met extra constraints en permissies
voor het toevoegen, veranderen en verwijderen van objecteigenschappen. Elke
configuratiestap leidt tot een synchronisatie met de actuele requirements. De
handmatig ingevoerde rule requirements die nog niet binnen het design zijn
gerealiseerd, vereisen wel nog een algoritmische specificatie die binnen het design
16 Softwarekwaliteit? Natuurlijk!
zelf wordt verankerd. Nadat het design de check op een aantal meta-regels heeft
doorstaan, kan de volledige broncode van alle domeinklassen worden gegenereerd.
De feit en de regel requirements zitten dan inmiddels in de domeinklassen
opgesloten; resteert nog de realisatie van de actie requirements. Een substantieel
deel van deze acties is gegenereerd naar aanleiding van het configureren van het
design. Elke gegenereerde actie kan automatisch worden getransformeerd in een
zogenaamde action case, hetgeen een gecompileerde class realisatie van de normale
flow in een atomaire use case omvat. De overblijvende, handmatig ingevoerde, acties
worden vervolgens gerealiseerd op basis van een assemblage van de tool box met
action cases, hierbij kan dan en passant rekening worden gehouden met de nietfunctionele eisen.
Tijdens het ontwikkelen van software worden de requirements regelmatig
toegevoegd, aangepast of verwijderd. Elke wijziging moet worden gekeurd door de
verantwoordelijke producteigenaar. Na de goedkeuring wordt het design op orde
gebracht en kunnen de domeinklassen en action cases weer worden gegenereerd.
Onze werkwijze maakt het mogelijk dat een design exclusief op zijn requirements is
gebaseerd. Zodra alle requirements goedgekeurd zijn, heb je ook de zekerheid dat
het design en daarmee alle gegenereerde domeinklassen en action cases compleet
zijn. De niet-functionele eisen kunnen vervolgens op een elegante manier worden
meegenomen zodra men toekomt aan de verfijning van de samengestelde action
requirements. Ons devies luidt: Neem requirements serieus!
Wie meer wil lezen:
• Project deliverables [13], [16], [18], [21]
Softwarekwaliteit? Natuurlijk!
17
Symbiosis en de praktijk van Beech.it
Interview met Bram Verhaegh, directeur Beech.it
Vooraf
In het EQuA project is de Symbiosis tool ontwikkeld, zie het voorafgaande artikel
van Frank Peeters. De tool is, tijdens de ontwikkeling, in pilots uitgetest door Beech.
it uit Venlo. Beech.it is een bedrijf dat zich vooral richt op het verzorgen van de
techniek van technisch complexe websites en applicaties. Het bedrijf werkt voor
diverse klanten in diverse sectoren. Sinds het begin van 2013 neemt Beech.it deel
aan het EQuA project. In dit interview legt directeur Bram Verhaegh uit wat de
beweegredenen waren om in het project te stappen en kijkt hij terug op het project.
Beech.it
Beech.it maakt gebruik van open source software, met als kern TYPO3
producten. TYPO3 is een open source enterprise CMS. Het bedrijf is actief lid van
de TYPO3 community (alles bij elkaar zo’n 75,000 ontwikkelaars wereldwijd) en is
active contributer aan de core. Daarnaast is Beech.it al 2 jaar mede organisator van
een succesvol internationaal “barcamp” voor de community.
De kwaliteit van software staat bij Beech.it hoog aangeschreven. Code reviews,
coding guidelines, automatische tests op code kwaliteit en security issues – Beech.it
maakt er gebruik van.
In de TYPO3 community is er veel aandacht voor de kwaliteit van ontwikkelde code.
Bram: “Het kritisch vermogen van de community is groot: bijvoorbeeld van alle
uitbreidingen wordt de kwaliteit gemeten met Sonar. Een ontwikkelaar is verplicht
om belangrijke issues te verhelpen. Code wordt door veel mensen kritisch beken en
meerdere malen gerefactord voordat ze geaccepteerd wordt en in productie gaat.
Dat gaat niet altijd vanzelf. Soms zie je stevige discussies, als iemand lang heeft zitten
werken aan code die vervolgens niet direct geaccepteerd wordt. Maar, ontwikkelaars
kennen ook veel passie om kwaliteit te leveren en zijn voortdurend bezig om zichzelf
te verbeteren en te leren van elkaar.”
Bij een bedrijf moet de mindset er zijn om kwaliteit van software vanaf de
eerste ontwikkelfase centraal te stellen. Je moet daar vanaf het begin aandacht aan
schenken. Dit halverwege het project inbrengen gaat niet lukken. Tijdsdruk leidt
soms tot sub-optimale code, ook bij Beech.it. Het bedrijf gaat daar zo zorgvuldig
18 Softwarekwaliteit? Natuurlijk!
mogelijk mee om: de code wordt gemarkeerd om later alsnog verbeterd te worden.
Zoals bij veel bedrijven is ook bij Beech.it de ervaring dat klanten daar niet altijd voor
willen betalen. Dit blijft een grote uitdaging en vraagt ook bewustwording bij de
klant.
Aandacht voor requirements
In juni 2012 was Bram één van de bezoekers van het EQuA symposium in Eindhoven.
Tijdens dat symposium vertelde onderzoeker Frank Peeters over zijn onderzoek
naar het omgaan met requirements en de Symbiosis tooling die hij daarvoor aan
het ontwikkelen was. Het scherp neerzetten van requirements en het automatisch
genereren van code vanuit de requirements sprak aan. De afspraak voor
samenwerking was snel gemaakt. Zakelijk werd de samenwerking vormgegeven door
het opnemen van Beech.it in het EQuA consortium. Inhoudelijk werd gestart met het
gezamenlijk uitwerken in Symbiosis van een aantal use cases voor een applicatie die
Beech.it aan het bouwen was. Dat ging niet vanzelf, het was wel nodig om de
ontwikkelaars van Beech.it te trainen in de zienswijze achter de tool en de werkwijze
van de tool.
Daarnaast was inspanning nodig om de tooling stabiel te krijgen. Beech.it fungeerde
min of meer als bèta-tester. Bram vond dat geen probleem. “Ik ben heel goed in het
om zeep helpen van de tooling!”
Bram kan het niet laten om een opmerking in de zijlijn te plaatsen: “als ook in dit
project bij de ontwikkeling van de tool de kwaliteitsrichtlijnen voor het ontwikkelen
van software zouden zijn gehanteerd, bijvoorbeeld op het vlak van automatische
tests en versiebeheer, dan zouden de stabiliteitsproblemen wellicht minder geweest
zijn.“ Toch pleit Bram niet voor een redesign op dit moment. De tool kan beter eerst
conceptueel verder ontwikkeld worden.
Bram beschouwt de tool als een veelbelovende ontwikkeling op het vlak van
samenspel tussen requirements en code. De tool kan je helpen bij het dichten van de
gap tussen die twee.
De mogelijkheden voor het genereren van code en het bijwerken van deze
gegenereerde code vanuit wijzigende requirements spreekt Bram bijzonder aan. Nu
wordt bij Beech.it een deel van de code al gegenereerd door het TYPO3 framework.
Dat gaat vooral om de simpele basis als models, standaard acties binnen controllers
en views, het type werk waar je je medewerkers niet mee wil belasten. Symbiosis
voegt daar echt iets aan toe. Het maakt de software niet alleen goedkoper en beter
beheerbaar, maar ook beter van kwaliteit. In de toekomst, als de tool stabieler is,
dan is het naar verwachting een prima hulpmiddel bij het ontwikkelen van goede
Softwarekwaliteit? Natuurlijk!
19
software. In een waterval project zou de tool volgens Bram onmisbaar zijn – het
geeft een goed beeld van de overall architectuur van de software. In een agile
project (met kleine iteraties) kan het verwerken van de specificaties soms veel werk
zijn.
Contacten met het HBO
Beech.it werkt al langer samen met het HBO, onder andere met de ICT opleiding
van Fontys in Venlo en Eindhoven. Binnen projecten van het onderwijs, en via het
verzorgen van een gastcollege. Daarnaast biedt Beech.it stageplaatsen aan.
Bram ervaart wel een kloof tussen bedrijfsleven en onderwijs. In zijn ogen loopt
het onderwijs soms achter – ontwikkelingen zoals het gebruik van modern versie
beheer, continuous intregration, automatische test frameworks e.d. Daarnaast is er
in het onderwijs (te) weinig aandacht voor de kwaliteit van software, er wordt veel
gesproken over kwaliteit terwijl dit concreet gemaakt kan worden en meetbaar.
Bram staat dan ook positief tegenover de plannen van Fontys Hogeschool ICT voor
het ontwikkelen van een minor rond het thema softwarekwaliteit.
In de ogen van Bram zouden docenten vaker in contact moeten komen met het
bedrijfsleven – zij zouden bij voorkeur enkele dagen per week samen op moeten
trekken met bedrijven. Bram staat open voor de samenwerking met het HBO, zeker
met docenten. Zij kunnen die praktijkervaring vervolgens overbrengen op studenten.
Het EQuA project
Bram heeft een genuanceerde mening over het verloop en de resultaten van het
EQuA project. “De deelnemers vormden met elkaar een zeer gemêleerd gezelschap.
De verschillende onderzoeken die in het project zijn uitgevoerd kenden te weinig
verbinding, de schotten tussen de onderzoeken waren wel erg hoog. Daardoor
ontstond te weinig binding met andere partijen, iedereen werkte te veel op een
eigen eilandje. We hadden meer van elkaar kunnen leren dan nu is gebeurd.”
Bram vindt het jammer dat er niet een concrete toolkit voor softwarekwaliteit uit het
project gekomen is. “Het bedrijfsleven wil graag iets dat direct toepasbaar is.”
Toch kijkt Bram positief terug op het project. “Het contact met Frank Peeters zal
naar verwachting blijven bestaan. We willen samen een doel bereiken, met zijn
tool! Zeker als we de testfase hebben afgerond is het een prima hulpmiddel. En, het
enthousiasme en de gedrevenheid van Frank werken zeer aanstekelijk.”
20 Softwarekwaliteit? Natuurlijk!
Een stage rond het genereren van code
Interview met Joery van den Hoff, student Software Engineering,
Fontys Hogeschool ICT
Vooraf
Joery van den Hoff is nu (najaar 2014) vierdejaars student bij Fontys Hogeschool ICT.
In het voorjaar van 2014 heeft hij stage gelopen bij het bedrijf ISAAC in Eindhoven.
Het onderwerp van zijn stage: codegeneratie voor het Symbiosis tool van EQuA
onderzoeker Frank Peeters (zie het artikel eerder in deze uitgave). In dit interview
kijken wij naar wat Joery gedaan heeft, horen wat zijn ideeën zijn over het Symbiosis
tool en praten met hem door over de relaties tussen werkveld en opleiding.
Het stagebedrijf
ISAAC is specialist op het terrein van web- en middleware oplossingen, gebaseerd
op betrouwbare en veilige (open source) software. Het bedrijf is gastheer geweest
voor een aantal stages en afstudeerprojecten in het kader van het EQuA project,
zowel van Fontys Hogeschool ICT als van de Technische Universiteit Eindhoven. ISAAC
gelooft sterk in de noodzaak van het vroegtijdig opsporen van fouten en omarmt het
gedachtengoed van het EQuA project.
Codegeneratie
De oorspronkelijke stageopdracht luidde: “Voeg aan de codegeneratie in Symbiosis
de mogelijkheid van JPA notatie toe.” JPA (Java Persistence API) is een persistentie
framework uit de Java wereld. Maar, aan die opdracht is Joery niet toegekomen,
om de simpele reden dat er nog helemaal geen sprake was van codegeneratie
in Symbiosis. Dus is Joery daar aan gaan bouwen. Concreet houdt dat in dat
vanuit het objectmodel code wordt gegenereerd, met name voor de domeinlaag:
klassedefinities met onder andere getters en setters. Aan het genereren van code
voor het dynamische deel van een applicatie, vanuit het requirements model, is Joery
niet toegekomen. Dat was ook niet zijn opdracht. Hij is er wel in geslaagd om een
werkend geheel op te leveren. Codegeneratie werkt nu voor twee tot drie kleine
casussen. De code die gegenereerd wordt is nog niet erg complex. Hieronder staat
een voorbeeld, voor een internet boekwinkel.
Softwarekwaliteit? Natuurlijk!
21
Figuur 1: Voorbeeld van gegenereerde code
Joery is er nog niet van overtuigd dat de door hem gebouwde codegenerator in alle
gevallen succesvol zal zijn. Bij toevoegen van meer casussen verwacht hij nieuwe
problemen tegen te komen.
Op de vraag wat hij van Symbiosis vindt volgt na enig nadenken een genuanceerd
antwoord. De methode is interessant. Het is een leuke, nieuwe aanpak van het
werken met requirements. Maar, het ontbreekt wel aan schaalbaarheid. Bij kleine
casussen is het aantal requirements te overzien en lukt het wel om ze op te stellen
in het formaat dat Symbiosis vereist. Maar bij grote projecten met heel veel
requirements gaat dat naar verwachting niet meer lukken.
Het oordeel van Joery over de kwaliteit van de tool is minder positief. Het
gebruikersinterface is in zijn ogen zwak, de tool bevat een aantal bugs. Er is zo te
zien onvoldoende nagedacht over de opzet, de architectuur. Blijkbaar was zorgvuldig
ontwerpen en coderen niet het hoofddoel van het deelproject rond Symbiosis.
Ervaringen in een bedrijf
22 Softwarekwaliteit? Natuurlijk!
Tijdens het grootste deel van zijn stage heeft Joery in z’n eentje aan het Symbiosis
tool gewerkt. Ongeveer een kwart van de tijd heeft hij meegedraaid in een
projectteam van ISAAC. Dat was eigenlijk wel erg leuk. Daar zag hij van dichtbij
hoe in de praktijk door een team software wordt ontwikkeld. Opmerkelijk: het
heeft Joery ook tot het inzicht gebracht dat hij later niet software ontwikkelaar wil
worden. “Dag in dag uit code schrijven en testen, dat is me te beperkt.” Bij voorkeur
houdt hij zich ook bezig met ontwerpen en klantcontacten. “Maar ja, zo begin je
niet als software engineer.”
Opleiding en werkveld
Hoe kijk je als student naar het bedrijfsleven? Lopen ze voorop bij nieuwe
ontwikkelingen, of kunnen ze nog wat leren van de opleidingen? Joery heeft nog
niet veel bedrijven van binnen gezien. Toch ervaart hij soms al wel een verschil, bij
voorbeeld het gebruik in de opleiding van Svn voor versiebeheer, terwijl het werkveld
al massaal is overgestapt op Git. Daar blijft de opleiding duidelijk achter bij nieuwe
ontwikkelingen. Een ander verschil is het gebruik van een ontwikkelomgeving (IDE).
Bij Fontys wordt, zoals bij veel opleidingen, gewerkt met NetBeans, terwijl je in de
praktijk meer Eclipse tegenkomt. Maar, in het algemeen heeft Joery niet het idee dat
de opleiding erg wereldvreemd is. Via de ‘Partners in Education’ (bedrijven die actief
een bijdrage leveren aan het onderwijs) komt veel informatie uit de praktijk bij de
opleiding binnen.
Joery vindt bedrijfscontacten tijdens de opleiding belangrijk. In die contacten zie je
welke methoden en technieken in het bedrijfsleven gebruikt worden. En zie je hoe
het werk van afgestudeerden er uit ziet.
Softwarekwaliteit? Natuurlijk!
23
24 Softwarekwaliteit? Natuurlijk!
Software voor game development
Softwarekwaliteit? Natuurlijk!
25
26 Softwarekwaliteit? Natuurlijk!
Talen voor Game Productie
Riemer van Rozen, CREATE-IT, Hogeschool van Amsterdam
Een focus op games
Binnen het project is Riemer van Rozen docent-onderzoeker bij de Hogeschool
van Amsterdam (HvA), en promovendus bij de Software Analyse en Transformatie
(SWAT) groep van Centrum Wiskunde en Informatica (CWI). Met zijn begeleiders van
CWI, Paul Klint en Tijs van der Storm, heeft hij ervoor gekozen om zijn onderzoek
te richten op de creatieve industrie, een speerpunt voor de HvA, en op DomeinSpecifieke Talen (Domain Specific Languages, DSLs), een onderzoekslijn van SWAT.
DSLs worden gebruikt om met behulp van software problemen op te oplossen in
een bepaald domein, bijvoorbeeld het beschrijven van financiële producten, het
uitvoeren van digitaal forensisch onderzoek of het ontwikkelen van game spelregels.
DSLs leveren experts formalismen en notaties die dichter bij hun belevingswereld
liggen dan algemene programmeertalen, zodat een taak als het creëren en
onderhouden van applicaties of het analyseren ervan geautomatiseerd kan worden.
De onderzoeksvraag waar Riemer aan gewerkt heeft luidt: Hoe kan met DSLs voor
game development een verbetering in productiviteit en kwaliteit behaald worden?
Zoeken naar synergie tussen onderwijs, onderzoek en de beroepspraktijk is een
hoofddoel van RAAK projecten. De kloof tussen software prototypes die worden
geconstrueerd voor publish-or-perish onderzoek en de time-to-market realiteit
van de beroepspraktijk is groot. Voor het begaanbaar maken van nieuwe paden
zoals het beschrijven en uitproberen van nieuwe methoden en technieken is in
de beroepspraktijk weinig tijd beschikbaar. Mislukte experimenten kunnen een
faillissement betekenen. Binnen het onderwijs bestaat er een gebrek aan tijd en
expertise om onderzoek naar talen voor game ontwikkeling effectief vorm te geven.
Daarnaast gaan technisch complexe onderzoeksresultaten al snel zo ver de diepte in
dat ze voor onderwijsdoeleinden op hogescholen onbruikbaar zijn.
Riemer ziet het als de uitdaging van docent-onderzoekers om in onderzoek,
onderwijs en de beroepspraktijk gezamenlijke doelen te vinden en bruggen te
bouwen, zodat problemen vanuit verschillende perspectieven kunnen worden
opgelost. Die perspectieven geven een soort van ingrediënten die onderdeel zijn
van de oplossing, en die kunnen worden gebruikt om een praktisch kader voor
het onderzoek te bouwen. Dit kan door theorie en praktijkkennis toe te passen,
nieuwe werkwijzen te formuleren, uit te voeren en hanteerbaar te maken voor de
beroepspraktijk en voor het onderwijs. Wenselijke resultaten zijn begrijpelijk en
Softwarekwaliteit? Natuurlijk!
27
toepasbaar, publicaties werpen licht op de onderzoeksvraag, afgeleid lesmateriaal
is leerbaar, studeerbaar en toetsbaar, en opgeleverde tool prototypes zijn praktisch
toepasbaar, simpel, flexibel, onderhoudbaar, robuust en snel. Het is de taak van de
industrie om software prototypes verder te ontwikkelen.
Aanpak: ontwikkelen, toepassen, valideren
Softwarekwaliteit en game development zien wij inmiddels als een voor de hand
liggende combinatie. Omdat de toenmalige consortiumpartners te kennen gaven
niet over game development expertise te beschikken, hebben Riemer en CWI een
partner gezocht om hun onderzoek mee te kunnen valideren. In november 2011
kwamen ze via tussenpersonen o.a. van Syntens in contact met Loren Roosendaal
van IC3D Media. Samen delen ze een interesse in het verbeteren van de kwaliteit van
game software en het automatiseren van onderdelen van productieprocessen. De
samenwerking geeft gronding en praktische situaties om conceptuele problemen en
vraagstukken te valideren.
Ze hebben eerst enige tijd samengewerkt aan de analyse van de scripttaal Lua, een
veelgebruikte taal in game development om delen van de software aanpasbaar te
maken terwijl de software draait. Een nadeel van dynamische talen is dat vroegtijdig
fouten vinden lastig is omdat fouten zich pas run-time manifesteren. Ze hebben
met behulp van Rascal3 enkele bestaande technieken voor statische analyse op
Lua toegepast. Rascal is een meta-programmeertaal en een language workbench
waarmee je talen en tools kunt bouwen, analyseren en onderhouden. Rascal wordt
ontwikkeld bij de SWAT groep van CWI. Het praktisch toepassen van Rascal laat zien
dat dit onderzoek waardevol is voor ander onderzoek. Het levert prototypes op die
kunnen worden doorontwikkeld in de beroepspraktijk.
Collega docent-onderzoeker Joris Dormans heeft bij de Hogeschool van Amsterdam
de taal “Machinations” ontwikkeld. Dat is een visuele taal die dient als conceptueel
gereedschap, informeel hulpmiddel en communicatiemiddel voor game designs.
Het probleem is dat, hoewel het game designers zijn die spelregels formuleren en
begrijpen hoe deze spelregels spelerservaringen beïnvloeden, het veelal software
engineers zijn die ze in software implementeren. Riemer: “Joris en ik onderzoeken
hoe met Micro-Machinations (MM), een uitgebreide geformaliseerde subset van
Machinations, game software verbeterd kan worden. Game designers kunnen ook
schetsen met MM maar het grote verschil is dat de analyses ervan iets zeggen over
hoe de game werkt, omdat de diagrammen functioneren als geïntegreerd onderdeel
van een spel.”
3
http://www.rascal-mpl.org
28 Softwarekwaliteit? Natuurlijk!
Wellicht is game design niet het eerste gebied waar je aan denkt bij het toepassen
van formele methoden – een collectie van wiskundige formalismen, algoritmen,
methodes en tools om software mee te analyseren.
Riemer: “middels Rascal hebben we een vertaling gemaakt van MM naar PROMELA,
de proces specificatie taal voor een model-checker. Het checken van systeem
eigenschappen tegen alle mogelijkheden die het systeem kan aannemen stelt
designers in staat om rigoureus spelregels te testen zonder de game te spelen. Het
mooie eraan is dat designers feedback krijgen op het conceptuele niveau van MM
omdat tegenvoorbeelden in tegenspraak met systeemeigenschappen het model in
beweging zetten waardoor dit gedrag begrepen en gerepareerd kan worden.”
Hergebruik van software is ook in game development belangrijk. De MM Library4
is een herbruikbare software bibliotheek voor het integreren van spelregels. MM
is live, dat wil zeggen dat designers spelregels kunnen aanpassen terwijl het spel
draait, tijdens het testen. Riemer werkt aan het valideren van de aanname dat meer
kansen op het verbeteren van spelregels leidt tot betere game software en betere
spelerservaringen.
Vooruitblik
De uitdaging in de laatste fase van een project is om de uitkomsten te borgen en
voor langere tijd beschikbaar te maken zodat deze ook in de toekomst gebruikt
kunnen worden. Riemer stipt enkele stappen aan die hij noodzakelijk acht.
- Onderwijs. We hebben workshops georganiseerd voor derdejaars game
development studenten over Micro-Machinations. Het dient als voorbeeld voor
ontwikkelen van tools en talen. Rond dit topic zijn tal van afstudeeropdrachten
denkbaar.
- Publicaties. Om te garanderen dat onze publicaties te vinden zijn hebben we
een website gehost op GitHub waar al het materiaal te vinden is. Dit is ook een
uitstekende plek om slides te delen.
- Onderzoek. In het SIA RAAK project Automated Game Design zetten we MicroMachinations opnieuw in. Het biedt een platform voor toekomstig onderzoek,
o.a. op het gebied van procedurele content generatie.
- Disseminatie. We hebben de code van de Micro-Machinations taal beschikbaar
gemaakt onder de 3-clause BSD open source license op GitHub, een open source
repository. We pogen een levende community rond Micro-Machinations te
bouwen zodat deze niet in de vergetelheid raakt nadat het project eindigt.
- Valorisatie. We werken met IC3D Media aan het aanpasbaar maken van de
game mechanics van de game Johnny Jetstream middels MM. We pogen een
4
https://github.com/vrozen/MM-Lib
Softwarekwaliteit? Natuurlijk!
29
overtuigend voorbeeld te geven dat gebruikt kan worden om game mechanics
mee te leren modelleren.
Afsluitend
Samen met CWI heeft Riemer in het EQuA project uniek onderzoek gedaan en
verrassende resultaten behaald met een bruikbare domein-specifieke taal voor
game design en game development. Natuurlijk kan er met meer tijd, energie en
financiering meer onderzoek gedaan worden. Van alle mogelijke ongebaande
paden hebben ze er maar één bewandeld en begaanbaar gepoogd te maken. De
hoop is dat die aanpak navolging zal vinden zodat er meer kennis ontstaat over het
toepassen van taal georiënteerde oplossingen voor game productie.
Wie meer wil lezen:
• Project deliverables [9], [10], [11]
Over Rascal:
• Klint, P., van der Storm, T., & Vinju, J., EASY Meta-Programming with Rascal.
Proceedings of the 3rd international summer school conference on Generative
and transformational techniques in software engineering III, Springer-Verlag,
2011, 222-289.
Over game mechanics:
• Adams, E., & Dormans, J., Game Mechanics: Advanced Game Design New Riders
Publishing, 2012.
30 Softwarekwaliteit? Natuurlijk!
De kracht van serious games
Een interview met Loren Roosendaal, IC3D Media
IC3D Media
IC3D Media uit Breda is een belangrijke speler op de internationale markt van
serious games. Sinds begin 2013 nemen ze deel aan het EQuA project. Samen
met onderzoekers van de Hogeschool van Amsterdam en Centrum Wiskunde &
Informatica (CWI) heeft het bedrijf gewerkt aan software om het ontwerpen van
games te vereenvoudigen. In een interview met Loren Roosendaal, oprichter en CEO,
passeren veel onderwerpen de revue: het belang van serious games, het specifieke
karakter van game software, de aandacht voor kwaliteit, de relatie met opleidingen
en onderzoeksinstituten.
Loren is op 11-jarige leeftijd begonnen met het programmeren van games. Via
internet werkte hij samen met mede-ontwikkelaars over de hele wereld. Samen
hebben ze een WO II variant van een bestaand spel ontwikkeld. Die variant werd in
korte tijd 2,5 miljoen maal gedownload. Dat gaf wel een kick.
IC3D Media is van het begin af aan een internationaal bedrijf. Na de start groeide
IC3D Media tot 12 mensen. Daarvan zaten er twee (Loren en zijn broer) in Nederland,
de rest zat over de hele wereld. Dat waren (deels) de jeugdcontacten van Loren.
Serious games
IC3D Media maakt trainingssoftware voor bedrijven en organisaties. Bijvoorbeeld: het
trainen van reddingwerkers bij aardbevingen in Indonesië. Die kunnen met behulp
van de trainingssoftware oefenen hoe te handelen in levensechte situaties: wat doe
je als een gebouw ingestort is, welke hulpmiddelen heb je tot je beschikking, hoe
kan je die het beste inzetten?
Dit soort trainingssoftware heeft in de ogen van Loren een grote toekomst: mensen
die vroeger in klaslokalen of uit dikke boeken leerden kunnen nu in 10 minuten
per dag op hun tablet, laptop of pc interactief kennis en vaardigheden opdoen.
Bovendien loont het trainen van hulpverleners. Er gaat veel mis omdat die mensen
slecht getraind zijn. Loren geeft een voorbeeld: “een groot deel van de dwarslaesies
die ontstaan na een ongeluk is te voorkomen als mensen de apparatuur die ze
gebruiken om iemand te bevrijden beter zouden gebruiken. Dat kun je trainen,
aanleren, met serious games!” Dit soort opbrengsten toont het maatschappelijk
belang van serious games aan. Serious games dragen direct bij aan de kwaliteit van
leven!
Softwarekwaliteit? Natuurlijk!
31
Leerstrategieën spelen een belangrijke rol bij het ontwikkelen van serious games.
Je moet op het juiste moment de juiste uitdagingen en beloningen aanbieden. Doe
je dat niet dan haken mensen af omdat het spel te moeilijk of te makkelijk is. IC3D
Media heeft op basis van eigen praktijkervaring hier veel inzicht in gekregen, grote
stappen in gemaakt.
Naast een goede leerstrategie is realisme in trainingen erg belangrijk. Er bestaat
wetenschappelijk onderzoek dat zegt aan te tonen dat het niet zo belangrijk is hoe
een poppetje er uit ziet. Loren is, op basis van eigen ervaring, overtuigd dat in een
aantal gevallen het tegendeel geldt. “IC3D Media is op dit vlak veel verder dan de
meeste ontwikkelaars/bedrijven. Wij zijn in staat om veel meer details in onze games
op te nemen. En daarmee maken we echt een verschil.”
Early quality assurance
Hoe benadert IC3D Media early quality assurance? Dat begint met goed nadenken
over de inhoud en de opbouw van een game: je moet van meet af aan de
complexiteit en daarmee de omvang goed beheersen. Bij games ontstaat heel snel
een zeer grote toestandsruimte. Die moet je vanaf het begin inperken. Ook besteedt
IC3D Media veel aandacht aan code kwaliteit. Onderlinge code reviews houden de
ontwikkelaars scherp. Daarbij is er ook expliciet aandacht voor de performance.
Loren houdt een gloedvol betoog waarom het noodzakelijk is om bij het schrijven
van performance-gevoelige code nauwkeurig te weten hoe de code door de
hardware wordt verwerkt. De manier waarop een processor bijvoorbeeld gegevens
in zijn cache zet, is zeer bepalend voor de performance, code (met name ook de
gebruikte datastructuur) moet daarop afgestemd zijn.
IC3D Media stelt hoge eisen aan de kwaliteit van haar medewerkers. De game design
opleiding bij de NHTV (Breda) is in de ogen van Loren de beste in Nederland. Stagiairs
van die opleiding zijn regelmatig te vinden bij IC3D Media. Maar ook de kwaliteit
van afgestudeerden bij die opleiding is nog niet voldoende om bij IC3D Media als
zelfstandig ontwikkelaar aan het werk te gaan.
Het testen van games is een verhaal apart. Door het grote aantal mogelijkheden
in een spel is test-driven development geen optie – het is niet een kwestie van de
juiste output leveren bij bepaalde inputwaarden. Uiteraard wordt er ook bij IC3D
Media veel getest. Unit-tests worden gebruikt als het om meer technische zaken
gaat, acceptatietests met opdrachtgevers en gebruikers als het meer om de gameplay
elementen gaat. Probleem daarbij is wel dat opdrachtgevers soms van tevoren niet
concreet weten wat ze willen. Pas tijdens de ontwikkeling van een game wordt een
opdrachtgever zich bewust van wat de mogelijkheden zijn en van hoe die aan te
passen zijn aan zijn wensen.
32 Softwarekwaliteit? Natuurlijk!
Onderzoek en opleiding
Het ontwerpen en bouwen van (serious) games is een samenspel tussen game
designers en game bouwers – de software ontwikkelaars. De een is vooral bezig met
hoe het spel verloopt, hoe het er uit ziet, de ander vooral met hoe dat softwarematig
te realiseren is. Op het snijvlak van die twee interessegebieden heeft IC3D Media
samen met Riemer van Rozen van de Hogeschool van Amsterdam onderzoek gedaan,
begeleid door het Centrum Wiskunde & Informatica. Zie ook het vorige artikel.
Met de op de HvA ontworpen en gebouwde bibliotheek van Micro-Machinations
(spelelementen) heeft IC3D Media een prototype van een game ontwikkeld. Het
gebruik van de Micro-Machinations bibliotheek maakt het mogelijk om run-time
elementen in het spel te wijzigen. Dat is zeer waardevol voor game designers.
Loren ervaart de samenwerking met de onderzoekers van de Hogeschool van
Amsterdam en CWI als zeer positief. “Het is erg leuk om samen uit te zoeken
waar en hoe hun technologie bij ons in te zetten is en op basis van onze ervaring
aanpassingen in die technologie voor te stellen.” Een voorbeeld van dat laatste is het
ontwikkelen van een grafische editor voor Micro-Machinations. “Game designers zijn
erg grafisch georiënteerd, die willen niet met teksten werken.”
Loren is positief over zijn contacten met de (inter)nationale onderzoekswereld.
”Een onderzoeksomgeving stelt je in staat om te werken aan nieuwe concepten;
erkenning in de internationale onderzoekswereld helpt je ook als bedrijf weer
verder.” Hij weet dan ook zeker dat IC3D Media dit soort samenwerkingsverbanden
in de toekomst voort gaat zetten. “Het is voor ons een natuurlijke manier van leven.”
Hoe kijkt een bedrijf als IC3D Media aan tegen de Nederlandse wereld van software
ontwikkelaars? Loren heeft een uitgesproken mening over hoe met name de grote
softwareleveranciers omgaan met hun werknemers. “Die mensen worden snel aan
een specialisme gekoppeld, zeg C# programmeren, en blijven daar heel lang in
hangen. Dat bevordert routinematig werken en doodt creativiteit.” Loren is een fan
van het bekende T-profiel: brede kennis, met op één of enkele punten veel diepgang.
“Brede kennis is noodzakelijk. Maar, daarnaast moet je als software engineer het
vermogen hebben om waar nodig de diepte in te gaan. Als je eenmaal die duik in de
diepte ervaren hebt, dan ben je in staat om die op te zoeken als het nodig is.”
Opleidingen moeten in zijn ogen dan ook zowel diversiteit als diepgang bieden.
“Iedere drie maanden een ander onderwerp, een ander project, prima!” Docenten
hebben, naar zijn ervaring, wel vaak brede kennis maar missen soms de vaardigheid
om, met studenten, de diepte in te gaan. Daar kunnen mensen uit het bedrijfsleven,
zoals Loren, een rol bij spelen.
Softwarekwaliteit? Natuurlijk!
33
34 Softwarekwaliteit? Natuurlijk!
Agile software ontwikkelen
Softwarekwaliteit? Natuurlijk!
35
36 Softwarekwaliteit? Natuurlijk!
Vijf jaar agile. Hosanna of Drama?
Leo van der Aalst – Fontys Hogeschool ICT, Sogeti
In dit artikel wordt een top vijf van vier onderwerpen op het terrein van agile werken
geschetst: vijf agile misvattingen, vijf agile valkuilen, vijf agile voordelen en vijf agile
succesfactoren. Deze zijn gebaseerd op vijf jaar ervaring als agile consultant en agile
trainer in meer dan 300 agile projecten. Dit waren niet alleen projecten in Nederland
maar ook in vele andere landen. Hoewel het ruim 300 subjectieve meningen zijn,
geeft dit uiteindelijk een objectief beeld van de actuele situatie met betrekking tot
agile projecten. Daar waren zowel Hosanna als Drama projecten bij.
Algemene trends
Agile aanpakken zijn al langer bekend, in ieder geval al vanaf 2001. Dat was het jaar
waarin het agile manifesto met haar vier waarden en twaalf principes werd opgesteld
door zeventien prominente softwareontwikkelaars. Toch heeft het daarna nog een
tijd geduurd voordat agile aanpakken door IT-organisaties werden omarmd. Pas in de
laatste vijf jaar is dit substantieel toegenomen. Het gebruik van een agile aanpak is
van minder dan 20% in 2010 gestegen naar bijna 80% in 2014 (zie figuur 1).
Figuur 1: Gebruik van een agile aanpak in enigerlei vorm (%)
In 70% van de organisaties die een agile aanpak gebruiken, is dat scrum. Minder dan
15% van de organisaties gebruiken een andere aanpak, zoals Kanban, Feature Driven
Development, Agile Unified Process, DSDM/Atern, Lean of Extreme Programming.
Softwarekwaliteit? Natuurlijk!
37
Een andere interessante trend is de afname van een agile aanpak in outsource
trajecten. Van bijna 80% vijf jaar geleden, naar minder dan 40% nu (zie figuur 2).
Figuur 2: Gebruik van een agile aanpak in outsource trajecten (%)
Als gevraagd wordt naar de tevredenheid over het resultaat van een agile project,
dan zegt meer dan 50% tevreden te zijn. Dit wordt enigszins gekwantificeerd door
een veronderstelde productiviteitstoename van 0 tot 50% met een gemiddelde van
20%, een kostenreductie van 0 tot 50% met een gemiddelde van 30% en een snellere
time-to-market van 10 tot 60% met een gemiddelde van 30%.
Agile Misvattingen
Agile is het antwoord op alles! In ieder geval beter dan een traditionele
softwareontwikkelaanpak, zo wordt gezegd. Helaas, in de praktijk blijkt dat niet
zo te zijn. Iedere organisatie moet, misschien zelfs op projectniveau, een afweging
maken welke aanpak te kiezen. Dat kan een agile aanpak zijn, maar in omgevingen
met veel hiërarchie, vast omschreven procedures en processen, of enige vorm van
certificering (o.a. luchtvaart, security) lijkt agile minder geschikt te zijn dan een
traditionele aanpak.
38 Softwarekwaliteit? Natuurlijk!
In agile ontbreken processen, in agile wordt niet gepland en in agile ontbreekt
discipline! Dit zijn wel heel vaak gehoorde misvattingen. In agile aanpakken
bestaan, net als in traditionele aanpakken, wel degelijk processen. Dit zijn weliswaar
lichtgewicht processen, die door het agile team worden aangepast aan hun eigen
behoeften. En dan wordt er gezegd, iedereen doet maar wat, zonder planning en
discipline. Het tegendeel is eerder waar! Ga maar na, hoe kun je in een iteratie
van bijvoorbeeld twee weken werkende software opleveren zonder planning en
discipline? Inderdaad. Niet dus! Release en iteratieplanningen maken vast onderdeel
uit van agile aanpakken, waarbij scrum- of kanban borden, burndown charts en de
daily scrum worden gebruikt om werkzaamheden transparant te maken en af te
stemmen. Dit alles ondersteunt de planning om te komen tot het gewenste resultaat.
En in plaats van het ontbreken van discipline is eerder een ijzeren discipline van de
agile teamleden gewenst om dit resultaat als team binnen de iteratie te kunnen
bereiken.
Een hardnekkige vijfde misverstand is dat er in agile niet wordt gedocumenteerd. In
het algemeen wordt door het agile team alleen gedocumenteerd wat nodig is om
als agile team het werk te kunnen doen of waar stakeholders een belang bij hebben.
In het ene geval is dat minimaal, omdat de teamleden precies weten wat ze moeten
doen en wat ze van elkaar kunnen verwachten. In het andere geval kan dat meer
zijn, omdat er wellicht eisen zijn gesteld aan bijvoorbeeld onderhoudbaarheid of
overdraagbaarheid van producten. Of omdat er wellicht een wet- en regelgeving-, of
certificeringseis is, die meer documentatie vraagt dan voor het team nodig was om
het product te maken.
Agile Valkuilen
Je zult maar als IT-er al jaren met een bewezen goedwerkende
softwareontwikkelaanpak werken en dan beslist het management op een goede
- of kwade? - dag dat er nu agile gewerkt moet gaan worden en dat, ‘by the way’,
die goedwerkende aanpak niet meer kan worden gebruikt. Het overboord gooien
van bestaande softwareontwikkelprocessen is een vaak voorkomende valkuil. Want
wat staat er nu helemaal in het agile manifesto of in de scrumaanpak over hoe je
software moet ontwikkelen? Over hoe je requirements, functionele specificaties
Softwarekwaliteit? Natuurlijk!
39
als user stories of use cases, technische specificaties, datamodellering, systeemen software architectuur, software, tests, moet opstellen en maken? Niets toch?
Dus dan lijkt het verstandig niet het kind met het badwater weg te gooien, maar
goedwerkende onderdelen van de softwareontwikkelaanpak – en testaanpak - te
blijven gebruiken of aan c.q. in te passen aan de agile situatie.
Vrijwel alle methoden zijn goed doordacht en werken prima als ze worden gebruikt
zoals ze zijn bedoeld. Denk aan SDM, JSD, RUP of PRINCE2. Bij de implementatie van
een agile aanpak als scrum is vaak een gedeeltelijke adoptie te zien. Even zo vaak
blijkt dat zowel een bewuste als een onbewuste keuze te zijn. Zelfs een bewuste
keuze door middel van ‘cherry picking’ leidt in de meeste gevallen tot – veel – minder
succes dan een volledige adoptie. Het bekende gezegde ‘hinken op twee gedachten’
doet hier opgang en is een notoire valkuil.
Programmeren tot de laatste minuut. Wie komt dat niet bekend voor? Dit is een
diepe valkuil, want dit betekent per definitie dat er geen werkende software aan
het eind van een iteratie wordt opgeleverd. Alle agile aanpakken zeggen, in iets
van elkaar afwijkende bewoordingen, dat een product pas gereed (‘done’) is, als
het is getest en is geaccepteerd (‘ge-demo’t’) door de stakeholders. Daarbij brengt
het korte termijn denken het risico op test- en technical debt met zich mee. Door
wel snel ‘iets’ - omdat bijvoorbeeld de ‘product owner’ dat wil - op een ‘quick and
dirty’ wijze aan het eind van de iteratie op te leveren, kunnen code-, architectuur- en
testgerelateerde onvolkomenheden in volgende iteraties aan het licht komen, die tot
grote, kostbare of tijdrovende herstelactiviteiten kunnen leiden.
En ineens zit je niet meer in een traditioneel ontwikkelproject, maar in een
scrumteam. Nu maar hopen dat de andere teamleden hiermee kunnen omgaan,
denk je. Dit is een heel typische valkuil, alles verandert, behalve …………. ik! Een
menselijke eigenschap is dat mensen al gauw van zichzelf vinden dat ze iets wel
kunnen, terwijl ze denken dat andere mensen daar meer moeite mee hebben. Maar
in scrum is het van belang dat je zelf ook mee verandert. Dat gaat niet vanzelf, daar
moet je echt iets aan doen.
Agile Voordelen
40 Softwarekwaliteit? Natuurlijk!
‘Burndown charts’, scrumborden met user stories, taken en kolommen, die laten zien
of een user story bijvoorbeeld ‘in progress’ of al ‘done’ is. De actuele status van een
scrumproject is vaak in één oogopslag te zien. In het algemeen kun je zeggen dat
agile projecten transparanter zijn. En door de korte iteraties, de nabijheid van de
stakeholders - via de ‘product owner’ - en de nauwe samenwerking in het scrumteam
kunnen prioriteiten makkelijker worden bijgestuurd, waardoor sneller - op wat voor
verandering dan ook -, kan worden gereageerd.
De kwaliteit van producten is beter. Iedere IT-er kent wel de figuur met de schommel,
die laat zien hoe de wens van de klant uiteindelijk – afwijkend – wordt gerealiseerd.
Onderzoeken laten zien dat in traditionele omgevingen van de oorspronkelijk
honderd gedefinieerde requirements er vijftig worden gerealiseerd, waarvan er
uiteindelijk maar vijfentwintig door de klant worden gebruikt. Dat is nogal wat
’waste’, volgens Lean begrippen. Maar in een scrumproject zitten de stakeholders,
zoals in vorige alinea beschreven, dicht op het ontwikkelteam. Een afwijking op
het gewenste product wordt snel gezien en kan net zo snel worden hersteld. Ook
als er nieuwe wensen zijn, of juist wensen die zijn vervallen, kan er snel worden
ingegrepen, waardoor het gerealiseerde product (heel) dicht bij het gewenste
product komt. Een ander voordeel is dat de ‘time-to-market’ in een agile project vaak
met 10 tot 60% wordt verkort. Met andere woorden, de juiste producten worden
ook nog eens sneller productieklaar opgeleverd!
Vaak leven uitgebluste IT-ers helemaal op als ze in een agile project gaan
werken. Of dat nu komt door het verlaten van een jarenlange sleur, of door het
werken in een team aan een gezamenlijk doelstelling, of doordat het team meer
verantwoordelijkheid heeft? Feit is, dat in agile projecten medewerkers vaak
gemotiveerder zijn. Ze zijn gewoon ook blijer. Een niet te onderschatten emotie voor
het behalen van goede resultaten.
Agile Succesfactoren
Ja managers, nu komt het er op aan. In het verleden was het zo, dat een team of
de medewerkers de beslissingen van de manager vertrouwde en die opvolgden. Nu,
in de agile aanpakken, is het de manager die de beslissingen van het agile team
moet accepteren. Het is de manager die de mensen in het team moet vertrouwen
en aan hen zoveel mogelijk vrijheden en (beslis)bevoegdheden moet geven. Om
Softwarekwaliteit? Natuurlijk!
41
écht succesvol te kunnen zijn met de invoering van een agile aanpak is bedrijfsbreed
commitment nodig. De invoering vereist meestal een cultuuromslag of minimaal een
cultuuraanpassing, waardoor het bijvoorbeeld heel gebruikelijk is dat mensen die
niet in een agile omgeving kunnen werken het bedrijf verlaten en andere mensen
daarvoor in de plaats komen.
Ook voor de teamleden komt het er nu op aan. Succes wordt alleen bereikt als
het team daadwerkelijk als team acteert. Dus niet werken in silo’s van ontwerpers,
programmeurs, testers en gebruikers. Maar allemaal samen. Verder moeten
alle ontwikkelprocessen worden geïntegreerd. Dus bijvoorbeeld geen losstaand
ontwikkel- en testproces, maar volledig geïntegreerd gelijktijdig ontwerpen,
programmeren en testen. Deze integratie geldt ook voor alle teamleden en
activiteiten. Iemand in een programmeursrol moet bereid zijn andere activiteiten op
te pakken, bijvoorbeeld testactiviteiten. Iemand in de testrol moet ook bereid zijn
bijvoorbeeld testautomatiseringsactiviteiten op te pakken of de product owner te
helpen bij het opstellen van de user stories. Dit alles is uiteraard afhankelijk van de
kennis en kunde van de desbetreffende persoon. In het algemeen kun je zeggen,
ieder teamlid beheerst één discipline uitstekend en is bereid een tweede of een
derde bij te leren. Teamleden in een agile team zijn multidisciplinair.
Zoals uit bovenstaande alinea’s blijkt, heeft de invoering van een agile aanpak nogal
wat voeten in de aarde. Er zijn veel organisaties die daar mee worstelen, om niet te
zeggen, maar wat aan modderen. Zeker ook omdat er, vooral bij bepaalde managers,
weerstand tegen de verandering bestaat. De echte ‘key’ succesfactor is dan ook voor
het zorgen van begeleiding bij de invoering van een agile aanpak. Bijvoorbeeld in de
persoon van een veranderingsmanager of scrum coach.
De invoering van een agile aanpak is een leertraject en gaat gepaard met vallen
en opstaan. De ene keer is de invoering sneller succesvol dan de andere keer. Het is
belangrijk om telkens te leren van de gemaakte fouten en die in bijvoorbeeld een
volgende iteratie weer te verbeteren. Dus niet te snel opgeven. Wees ook niet bang
fouten te maken. Want hier geldt, ‘fail to succeed’!
Conclusie
Thomas Edison heeft ooit gezegd, “I haven’t failed. I’ve just found 10.000 ways that
won’t work.”
In dit artikel vindt u hopelijk voldoende inspiratie om een eventueel Drama project in
een Hosanna project te veranderen. Of nog beter, direct een Hosanna agile project te
starten! Waardoor u niet op poging 10.001 hoeft te wachten!
42 Softwarekwaliteit? Natuurlijk!
Samenwerking tussen agile teams
Een interview met Evelyn van Kelle,
Software Improvement Group / Universiteit van Tilburg
Vooraf
Als je het over het verbeteren van de kwaliteit van software hebt, dan gaat de
aandacht al snel uit naar producten: code, documenten, ondersteunende tools. Kort
na de start van het EQuA project is een onderzoek in het werkveld uitgevoerd naar
onder andere de factoren die bepalend zijn voor de kwaliteit van de opgeleverde
software. Daar kwamen, om eerlijk te zijn een beetje tot onze verrassing, niet
aspecten als heldere requirements, goede tools, voldoende tijd voor testen, als eerste
naar voren. De belangrijkste succesfactor voor de softwareontwikkelaar bleek de
kwaliteit van de teamgenoten en de samenwerking met de teamgenoten te zijn.
Reden om in het EQuA project ook hier onderzoek naar te doen.
SIG en Evelyn van Kelle
De Software Improvement Group (SIG) is één van de bedrijfspartners in het EQuA
project. Het meten van de kwaliteit van software is een van de speerpunten
van SIG. Zij zijn zeer geïnteresseerd in de vraag welke factoren het werk van
softwareontwikkelteams positief beïnvloeden. SIG heeft, in het kader van het EQuA
project, een aantal afstudeeronderzoeken rond dit thema opgezet en begeleid.
In 2013 heeft Emily Weimar, master studente Communicatie- en
Informatiewetenschappen aan de Universiteit van Tilburg, bij SIG haar
afstudeeronderzoek uitgevoerd rond het onderwerp ‘teamwerkkwaliteit’. In 2014
heeft Evelyn van Kelle, in het kader van haar afstuderen bij dezelfde studierichting,
samen met SIG een onderzoek uitgevoerd naar succesfactoren in de samenwerking
tussen en rondom agile teams. Twee voorbeelden van onderzoek uitgevoerd door
niet-ITers, naar de “menselijke” kant van softwareontwikkeling. In dit interview
vertelt Evelyn over haar onderzoek.
Agile teams en communicatie, leiderschap
Al is ze geen ITer, Evelyn was vanuit een eerdere stage bij een software leverancier
al wel bekend met de wereld van IT en agile software ontwikkelen. De stap naar SIG
was dus niet helemaal een stap in het duister. Haar onderzoeksopdracht kwam op
een vrij natuurlijke manier tot stand. Bij agile wordt vaak gedacht dat deze manier
van werken vooral geschikt is voor kleine teams, kleine organisaties, kleine projecten.
Softwarekwaliteit? Natuurlijk!
43
De vraag van SIG was hoe het kan dat in hun praktijk soms ook grote organisaties in
grote projecten met meerdere teams met veel succes agile werken. Welke vormen
van communicatie en leiderschap, binnen en tussen de teams, zijn van invloed op dat
succes? Als student communicatiewetenschappen wil je daar best je tanden in zetten.
Op zoek naar menselijke factoren op het vlak van leiderschap en communicatie die
het succes van grote agile projecten beïnvloeden.
Een conceptueel model
Als je in de literatuur gaat kijken dan vind je heel weinig over dit onderwerp.
Daarom is Evelyn allereerst op zoek gegaan naar goede voorbeelden uit de praktijk.
Wat werkt wel, wat werkt niet goed? Op basis van interviews met 7 mensen die hun
sporen verdiend hebben in de agile praktijk bij grote organisaties heeft Evelyn een
conceptueel model ontwikkeld met de belangrijkste factoren die invloed kunnen
hebben op het succes van agile projecten, waarbij de focus ligt op communicatie
en leiderschap. In het model zijn factoren opgenomen waarvan Evelyn verwacht
dat ze invloed zouden hebben op project succes. De focus ligt op de sociale
factoren die kunnen leiden tot gedeelde (werk)normen en –waarden en goede
persoonlijke relaties; factoren die volgens de literatuur bepalend zijn voor effectieve
samenwerking en goede performance.
Figuur 1: Conceptueel model
44 Softwarekwaliteit? Natuurlijk!
In de tweede fase van haar onderzoek heeft Evelyn op basis van dit model een
vragenlijst opgesteld en die online voorgelegd aan een veertigtal agile projecten
binnen 18 verschillende bedrijven. Dat waren heel verschillende bedrijven, ook niet
allemaal heel groot. Wel ging het in veel gevallen om grote(re) projecten. Van ieder
project zijn mensen met drie verschillende rollen benaderd: de product owner, een
scrum master en een teamlid.
In totaal hebben 141 mensen die vragenlijst ingevuld. De antwoorden zijn vervolgens
met behulp van statistische technieken geanalyseerd, om een aantal opgestelde
hypotheses te kunnen toetsen, om te kijken of het conceptuele model bruikbaar is.
Hoe vind je 40 agile projecten in 18 bedrijven bereid om mee te doen aan zo’n
onderzoek? Dat ging niet vanzelf. Evelyn: “Het netwerk van SIG was een goed
startpunt. Daarnaast ben ik naar een aantal agile seminars en andere evenementen
geweest, om mijn gezicht te laten zien en mensen te benaderen om mee te werken
aan mijn onderzoek. Dat werkte goed, en zo terloops heb ik op die bijeenkomsten
ook aardig wat opgestoken over agile werken! Mensen waren ook vaak enthousiast
over agile werken en mede daarom snel bereid om mee te doen aan mijn
onderzoek.”
Resultaten
Evelyn: “Uit de resultaten blijkt dat project succes meer afhankelijk is van
transformationeel leiderschap, perceived agility en value congruence dan van
projectgrootte. Perceived agility en hoge value congruence zijn hierbij de
belangrijkste factoren. Naast deze directe effecten zijn er ook indirecte effecten:
leiderschap en communicatie zorgen ervoor dat aan het begin van een project de
neuzen dezelfde kant op staan. In het model heet dit value congruence; die moet
hoog zijn. Daardoor ontstaan er minder conflicten en krijg je betere resultaten. Hoge
value congruence verklaart dus ook de relatie tussen leiderschap, communicatie en
succes. Gemeenschappelijkheid – dezelfde normen en waarden – maakt ook dat je
tijdens een project sneller op veranderingen kan reageren. En dat is zeker in (agile)
IT-projecten heel belangrijk. Daarnaast zijn de resultaten wellicht ook bruikbaar
buiten agile projecten of zelfs de IT. Het is aannemelijk dat deze factoren ook in
andere sectoren belangrijk zijn binnen projecten. In dit onderzoek lag de focus op
agile, maar vervolgonderzoek zou zich ook kunnen richten op andere sectoren om
generaliseerbaarheid te toetsen.”
Het uitvoeren van haar onderzoek leverde Evelyn ook een aardig inkijkje op in de
Nederlandse IT-wereld. Evelyn is onder de indruk. “Ik ben veel zeer professionele
bedrijven tegengekomen. Mensen wisten waar ze mee bezig waren en konden
Softwarekwaliteit? Natuurlijk!
45
me goed uitleggen hoe ze werken, en vooral ook het waarom. En, wat meehielp:
mensen waren er vaak trots op om agile te werken. Ze geloofden erin.”
Heeft ze iets gemerkt van het hype-karakter van agile, bedrijven die alleen “agile
in-name-only” toepassen? Evelyn: “ja, niet ieder bedrijf waarmee ik in gesprek kwam
wist duidelijk uit te leggen waarom ze agile werkten. Maar dat is een minderheid, en
het heeft geen rol gespeeld in mijn onderzoek.”
Terzijde: onderzoek in de opleiding
Voor haar afstuderen heeft Evelyn een volwaardig onderzoek uitgevoerd, inclusief
literatuurstudie, opstellen hypotheses, verzamelen gegevens en het verwerken van
de gegevens tot onderzoeksresultaten. “Dat heb ik zo geleerd, eigenlijk vanaf het
allereerste begin van mijn opleiding. In allerlei vakken en projecten werd aandacht
besteed aan het uitvoeren van een literatuurstudie, het opzetten en uitvoeren
van kwalitatief en kwantitatief onderzoek, inclusief de statistische verwerking van
resultaten.” Die bagage werkte zeer ondersteunend in haar afstudeeronderzoek.
Zouden informatica-studenten op universiteiten en hogescholen nu ook die kennis en
vaardigheden mee moeten krijgen? Evelyn: “Ik denk dat iedere HBO of WO student
een basis moet hebben in die kennis en vaardigheden, en informatica-studenten dus
ook. In verschillende vakgebieden worden deze vaardigheden wellicht anders en in
verschillende mate toegepast. Dit neemt echter niet weg dat ik van mening ben dat
iedere student basiskennis moet hebben van de verschillende onderzoeksmethoden.
Het opstellen en toetsen van hypotheses en modellen, en statistische analyses
uitvoeren is universeel, dus de basiskennis zou dat ook moeten zijn, vind ik.”
Wie meer wil lezen:
• Project deliverables [17], [19]
46 Softwarekwaliteit? Natuurlijk!
Toegepast wetenschappelijk onderzoek
Verslag van een rondetafelgesprek met Andy Zaidman (TU Delft), Ion Barosan (TU
Eindhoven), Tijs van der Storm (CWI)
In het EQuA project is vier jaar lang toegepast wetenschappelijk onderzoek
uitgevoerd. Wat is dat eigenlijk? Wat maakt toegepast onderzoek bruikbaar? Wat
doen universiteiten aan toegepast onderzoek? Wat is de rol van HBO-instellingen?
Vragen die aan bod zijn gekomen in een rondetafelgesprek met drie universitaire
wetenschappers die intensief aan het EQuA project hebben meegewerkt: Andy
Zaidman (Technische Universiteit Delft), Ion Barosan (Technische Universiteit
Eindhoven) en Tijs van der Storm (Centrum Wiskunde en Informatica in Amsterdam).
In dit artikel een neerslag van dat gesprek.
Wat is toegepast wetenschappelijk onderzoek?
Daar zijn de heren aan tafel het snel over eens: toegepast wetenschappelijk
onderzoek moet problemen uit de praktijk (het werkveld) oplossen. En de gevonden
oplossingen moeten gevalideerd worden: er moet in de praktijk bewezen worden
dat een oplossing werkt. Daarbij valt ook de term “actionable research”: onderzoek
waarvan de resultaten direct toepasbaar zijn in de praktijk.
Uiteraard kent informatica veel toegepast onderzoek. Toepassingen van IT vind je
overal in de maatschappij, veel informatica onderzoek is gericht op het creëren en
verbeteren van die toepassingen. Als je meer specifiek naar software engineering
kijkt, als wetenschap van het ontwikkelen van software, dan is bijna al het onderzoek
eigenlijk wel toepassingsgericht. Het woord “engineering” in de naam geeft dat ook
al aan.
Het onderzoek in software engineering heeft wel een bijzondere kant in vergelijking
met andere wetenschappen: het bouwen van de hulpmiddelen voor het onderzoek
(tools, repositories) is op zich ook weer software engineering. “Wij zijn astronomen
die hun eigen telescopen bouwen.” Dat maakt je eigen werk in potentie ook
onderwerp van je onderzoek.
Niet al het onderzoek dat op universiteiten plaats vindt is een direct antwoord
op een vraag uit het werkveld. Zo werkt de TU Delft veel aan “software
analytics”, het analyseren van data die afkomstig zijn uit repositories van grote
programmeerprojecten. De inzichten die dat oplevert zijn wel relevant voor het
werkveld. Zie het onderzoek van Petra Heck naar de kwaliteit van requirements,
eerder in deze uitgave.
Softwarekwaliteit? Natuurlijk!
47
De scheidslijn tussen theoretisch en toegepast onderzoek is ook niet altijd even
scherp: een bijna wiskundig vakgebied als grafentheorie kan zomaar belangrijk zijn
in het analyseren van Facebook vriendennetwerken.
Het publicatieprobleem
Veel onderzoek, ook op de universiteiten, is aan te merken als toegepast
onderzoek. Voor een deel omdat het voor de financiering afhankelijk is van geld
uit het bedrijfsleven en dus het bedrijfsleven invloed heeft op wat er onderzocht
wordt. Maar ook omdat de onderzoeksvragen sowieso al vaak gericht zijn op het
oplossen van praktische problemen. Daarbij wordt de universitaire onderzoeker
wel geconfronteerd met het “publicatieprobleem”: onderzoeksresultaten worden
doorgaans pas voor publicatie op een conferentie of in een tijdschrift in de
wetenschappelijk wereld geaccepteerd als ze een zekere mate van universele
geldigheid hebben. Soms werk je aan het oplossen van een probleem voor een
specifiek bedrijf. Met name door niet-IT bedrijven worden software engineers dan
nog wel eens gezien als de “loodgieters”: mensen die je helpen om specifieke
praktische problemen op te lossen. Het bedrijf is dan niet geïnteresseerd in
het veralgemenisering van de oplossing zodat die in de wetenschappelijke
wereld gepubliceerd kan worden. En ja, publiceren is voor iedere universitaire
wetenschapper een must, daar word je op afgerekend.
Goede onderzoeksonderwerpen
Niet ieder bedrijf is in staat om goede onderzoeksvragen op te stellen. Dat maakt
het lastig om samen met ze aan onderzoek te werken. Er is nog steeds sprake van
een kloof tussen deze bedrijven en de wetenschappelijk wereld. Maar, er zijn zeker
ook bedrijven die wel goede onderwerpen aandragen. Uit eigen ervaring geven
de onderzoekers aan dat het persoonlijke contact een belangrijke factor in de
samenwerking vormt. Vaak loont het om een langer lopend en productief contact
tussen universiteit en bedrijf in stand te houden. Dan begrijp je elkaar van lieverlee
steeds beter.
Zowel kleine bedrijven als grote bedrijven kunnen goede partners zijn in toegepast
onderzoek. Kleine bedrijven zijn doorgaans wendbaarder, minder bureaucratisch dan
grote bedrijven. Daar staat tegenover dat grote bedrijven meer continuïteit kunnen
bieden en aan grotere problemen werken.
Als je de vakbladen leest dan draait het in de IT op dit moment vooral om een paar
buzzwords: cloud computing, agile, big data. Spelen die onderwerpen nu ook een
rol in het toegepast wetenschappelijk onderzoek? Het antwoord is genuanceerd:
48 Softwarekwaliteit? Natuurlijk!
“ja, want het bedrijfsleven heeft hier geld voor over en er zijn zeker interessante
onderzoeksvragen te formuleren voor deze onderwerpen – nee, want wij geloven
niet in iedere hype, dat zijn deels verkoopverhalen”. Opmerkelijk is de ervaring (uit
het verleden) dat bedrijven nog wel eens alleen in naam achter een hype aanlopen:
een bedrijf dat graag zijn applicatieportfolio in wilde brengen bij een onderzoek
naar Service Oriented Architecture (SOA) bleek bij nader inzien welgeteld één service
gedefinieerd te hebben.
Deels wordt het (toegepast) onderzoek gestuurd door landelijke en Europese
subsidiegevers. In Nederland speelt momenteel het ‘topsectorenbeleid’ een sturende
rol bij het bepalen van de onderzoeksvragen. Handig als je daar bij aan kan sluiten,
maar ook lastig als jouw onderzoek daar niet direct in onder te brengen is.
Onderzoek op het HBO
Is (toegepast) wetenschappelijk onderzoek voorbehouden aan universiteiten of
spelen hogescholen hier ook een rol in? In eerste instantie ligt het antwoord op
deze vraag snel op tafel: ook van HBO studenten verwacht je dat ze op de hoogte
zijn van de nieuwste inzichten en in hun werk gemotiveerde keuzes kunnen maken.
En dat vereist onderzoeksvaardigheid. Op basis waarvan neem je beslissingen?
Een kritische en inventieve houding is daarbij noodzakelijk. In tweede instantie
komen de relativeringen: HBO studenten hoeven niet echt opgeleid te worden
tot onderzoekers. Ze hoeven niet zelf een omvangrijk empirisch onderzoek of
een diepgaand literatuuronderzoek uit te kunnen voeren. Want het onderzoek
dat ze doen staat in dienst van het oplossen van problemen in het werk – voor
software engineering studenten is dat doorgaans het zo efficiënt en effectief
mogelijk bouwen van software voor een opdrachtgever. Daarvoor is die kritische
en inventieve houding belangrijker dan een omvangrijke set van specifieke
onderzoeksvaardigheden. Op dat vlak zie je trouwens grote verschillen tussen
studenten, niet alleen op het HBO maar ook op het WO. Het onderscheid tussen HBO
en WO moet in dit opzicht niet overdreven worden. Ook WO studenten komen in
hun opleiding niet allemaal toe aan het ontwikkelen van onderzoeksvaardigheden.
Eigenlijk leer je dat pas goed als je na je studie aan een promotietraject begint en
daarin zelfstandig onderzoek uit gaat voeren.
Het EQuA project
Een belangrijke doelstelling van het EQuA project was om de veronderstelde kloof
tussen de wetenschappelijke wereld van de software engineering (de universiteiten)
en het werkveld (de Nederlandse softwarebedrijven) te verkleinen. Is dat gelukt?
De meningen zijn kritisch positief. Zo zijn de doelstellingen van een project soms
Softwarekwaliteit? Natuurlijk!
49
anders dan de doelstellingen van wetenschappelijk onderzoek. Voor het project
wil je bruikbare, direct toepasbare, tooling, ideeën, resultaten. En dat is, zeker
voor een wetenschapper, soms niet meer dan simpelweg productiewerk. En bij
wetenschappelijk onderzoek draait het toch nog steeds voor een belangrijk deel
om publicaties. Om je werk gepubliceerd te krijgen moet het uniek zijn, moeten er
duidelijke onderzoeksvragen beantwoord worden. Specifieke oplossingen voor een
specifiek probleem worden daarbij vaak niet of minder gewaardeerd. Alle drie de
gesprekspartners hebben dat probleem in het project aan den lijve ervaren.
Daar staat tegenover dat de contacten met het werkveld positief worden
gewaardeerd. Uiteraard was voor ieder van de onderzoeksinstellingen het EQuA
project niet de eerste kennismaking met het bedrijfsleven, maar het project
heeft wel geleid tot interessante nieuwe contacten. Ook met een buitenlands
onderzoeksinstituut dat zeer geïnteresseerd bleek in binnen het EQuA project
ontwikkelde tooling.
De samenwerking met de HBO-instellingen wordt als positief ervaren. De HBO
docenten waarmee in het onderzoek werd samengewerkt waren stuk voor stuk zeer
gemotiveerd. HBO studenten bleken soms verrassend vaardig in het oplossen van
praktische problemen. De samenwerking met de partnerbedrijven in het project
wordt als wisselend ervaren. Er zijn zeker zeer interessante en goede onderzoeken
uitgevoerd door of in samenwerking met deze bedrijven. Maar, helaas zag je ook de
eerder genoemde moeite die bedrijven soms hebben om goede onderzoeksvragen te
formuleren en daar capaciteit voor vrij te maken af en toe terug in het project.
Een van de gesprekspartners vat zijn relaas op dit punt bondig samen: “voor
mij is bijna 80% van de oorspronkelijke doelstellingen bereikt, en daar ben ik
best tevreden mee. Want, laten we wel wezen: het realiseren van 80% van de
doelstellingen is meer dan (helaas) tot op de dag van vandaag het gemiddelde IT
project oplevert…”
50 Softwarekwaliteit? Natuurlijk!
Onderzoek in opleiding
Jacob Brunekreef, Fontys Hogeschool ICT
Binnen het EQuA project hebben studenten een belangrijke bijdrage geleverd aan
diverse onderzoeken. Soms als onderzoeker, soms als object van onderzoek. In dit
artikel geven we van allebei die rollen een voorbeeld.
De student als onderzoeksobject
Voor de software ontwikkelaar van nu is het gebruik van unit testen bijna
vanzelfsprekend. Unit tests zijn bedoeld om kleine stukjes code (methods, functies)
te testen. Je kan zo snel controleren of de code die je geschreven hebt daadwerkelijk
doet wat je verwacht. Je kan unit tests ook gebruiken om na het aanbrengen van
niet-functionele wijzigingen in de code te controleren of de code functioneel nog
steeds hetzelfde doet. Niet-functionele wijzigingen, ook vaak refactorings genoemd,
hebben veelal als doel om de code beter leesbaar, onderhoudbaar, te maken.
In het najaar van 2011 hebben studenten meegewerkt aan een onderzoek naar
de vraag of de beschikbaarheid van unit tests invloed heeft op de snelheid en de
kwaliteit van refactorings. De groep van 35 studenten werd in tweeën verdeeld.
Beide groepen kregen dezelfde code onder ogen. De ene groep kreeg ook unit
tests voor die code, de andere groep niet. Beide groepen kregen de opdracht om
individueel zeven refactorings op de code uit te voeren. De verwachting was dat de
groep die de beschikking had gekregen over unit tests de refactoring opdrachten
sneller en beter uit zou voeren. Om die verwachting te kunnen toetsen is gemeten
hoe lang de studenten over een refactoring opdracht deden, en is de herschreven
code achteraf nader geïnspecteerd.
De uitkomsten van het onderzoek waren verrassend: er bleek geen statistisch
aantoonbaar significant verschil aanwezig tussen de snelheid en kwaliteit van de
refactorings zoals uitgevoerd door beide groepen. Zie ook de figuur op de volgende
bladzijde. Daar waar de theorie zegt dat de beschikbaarheid van unit testen
het refactoren van code sneller en beter maakt, bleek dat in dit experiment niet
aantoonbaar. Dat levert de interessante vraag op of de theorie niet klopt, of dat het
experiment niet deugde. Voor allebei is wat te zeggen. De theorie is gebaseerd op
verwachtingen en een aantal experimenten. De keuze van de in het experiment uit
te voeren refactorings en de metingen eromheen zijn misschien voor verbetering
vatbaar. De uitkomst van het experiment was dan ook: meer onderzoek is wenselijk!
Softwarekwaliteit? Natuurlijk!
51
Figuur 1: Statistische analyse van de resultaten (voorbeeld)
De student als onderzoeker
Voor informatica studenten, ook in het HBO, wordt het kunnen uitvoeren van een
onderzoek steeds belangrijker. Waar je ook mee bezig bent, voortdurend dienen
nieuwe ontwikkelingen zich aan. Als IT-er in het werkveld moet je die ontwikkelingen
op hun waarde kunnen schatten, het belang voor jouw situatie kunnen vaststellen.
Dat vereist onderzoek. Niet theoretisch onderzoek, maar praktijkgericht onderzoek.
In het HBO onderwijs krijgt het opzetten en uitvoeren van een eigen onderzoek dan
ook een steeds prominentere plaats. Gedurende de gehele looptijd van het EQuA
project hebben vierdejaars software engineering studenten van Fontys Hogeschool
ICT binnen hun opleiding meegewerkt aan het uitvoeren van onderzoeken die voor
het EQuA project relevant waren.
Een voorbeeld. In het voorjaar van 2013 hebben studenten meegewerkt aan het
uitvoeren van een onderzoek naar de Nederlandse testpraktijk. Voor de kwaliteit van
software is het zorgvuldig opzetten en uitvoeren van een aantal testtrajecten van
groot belang. Toch komt in de praktijk het testen door tijdsdruk nog wel eens in de
knel. Hoe vaak gebeurt dat nou? En, hoe ervaart de ontwikkelaar of tester die met
beide benen in die praktijk staat dat? Wat kan er beter? Om dat te onderzoeken is
een korte vragenlijst opgesteld (zie de lijst met projectresultaten verderop in deze
uitgave). Vierdejaars studenten van Fontys Hogeschool ICT hebben die vragenlijst
voorgelegd aan software ontwikkelaars van bedrijven waar ze eerder in hun studie
52 Softwarekwaliteit? Natuurlijk!
stage hadden gelopen. Dezelfde vragenlijst is ook voorgelegd aan een groep
professionele testers van een grote Nederlandse IT-leverancier.
In totaal zijn ruim 200 vragenlijsten ingevuld teruggekomen. De antwoorden zijn
verzameld in een groot bestand en overhandigd aan de studenten met de opdracht
om ze te verwerken tot een onderzoeksrapport, met tabellen, diagrammen en
conclusies.
Figuur 2: Voorbeeld resultaten test enquête
Softwarekwaliteit? Natuurlijk!
53
De EQuA deliverables
Het EQuA project heeft een groot aantal resultaten opgeleverd: artikelen,
conferentiepapers, scripties, software. De resultaten staan hieronder opgesomd in
een lijst. Alle artikelen zijn te downloaden vanaf de EQuA website www.equaproject.
nl.
Wetenschappelijke artikelen
Refactoren, testen
1. Frens Vonken & Andy Zaidman:
Refactoring with Unit Testing: A Match Made in Heaven?
Gepresenteerd op de 2012 Working Conference on Reverse Engineering (WCRE
2012), Kingston, Canada.
2. Vincent Hurdugacy & Andy Zaidman:
Aiding Software Developers to Maintain Developer Tests.
Gepresenteerd op de 16e European Conference on Software Maintenance and
Reengineering (CSMR 2012), Szeged, Hongarije.
3. Steven Raemaekers, Arie van Deursen & Joost Visser:
An Analysis of Dependence on Third-party Libraries in Open Source and
Proprietary Systems.
Gepresenteerd op de 16e European Conference on Software Maintenance and
Reengineering (CSMR 2012) ), Szeged, Hongarije.
4. Quinten David Soeters, Serge Demeyer & Andy Zaidman:
Change-Based Test Selection in the Presence of Developer Tests.
Gepresenteerd op de 17e European Conference of Software Maintenance and
Reengineering (CSMR 2013), Genua, Italië.
5. Dimitrios Athanasiou, Ariadi Nugroho, Joost Visser & Andy Zaidman:
Test Code Quality and Its Relation to Issue Handling Performance.
Verschijnt binnenkort in IEEE Transactions on Software Engineering
Requirements
6. Petra Heck & Andy Zaidman:
An Analysis of Requirements Evolution in Open Source Projects:
Recommendations for Issue Trackers.
Gepresenteerd op de 13e International Workshop on the Principles of Software
Engineering (IWPSE 2013), Sint Petersburg, Rusland.
7. Petra Heck & Andy Zaidman:
A quality framework for agile requirements: A practitioner’s perspective.
54 Softwarekwaliteit? Natuurlijk!
Software Engineering Research Group, Delft University of Technology, Tech. Rep.
TUD-SERG-2014-006. http://swerl.tudelft.nl/bin/view/Main/TechnicalReports
8. Petra Heck & Andy Zaidman:
Horizontal Traceability For Just-In-Time Requirements: The case for Open Source
Feature Requests.
Verschijnt binnenkort in Journal of Software: Evolution and Process.
Game software, Domain Specific Languages
9. Paul Klint, Loren Roosendaal & Riemer van Rozen:
Game Developers need Lua AiR - Static Analysis of Lua using Interface Models.
Gepresenteerd op de 2012 Game Development & Model-driven Software
Development Workshop (september 2012), Bremen, Duitsland.
10.Paul Klint & Riemer van Rozen:
Micro-Machinations – A DSL for Game Economies.
Gepresenteerd op de 6e International Conference on Software Engineering
Languages (SLE 2013), Indianapolis, USA.
11.Riemer van Rozen & Joris Dormans:
Adapting Game Mechanics with Micro-Machinations.
Gepresenteerd op de 9e International Conference on the Foundations of Digital
Games (FDG 2014), Florida, USA.
Artikelen vakbladen
12.Jacob Brunekreef:
Softwareontwikkelaar tevreden met zichzelf.
Automatisering Gids 09, 10 mei 2012.
Afstudeerscripties
13.Gino Rombley:
Towards a valid object model.
Master’s thesis TU Eindhoven. 2012.
14.Raditeo Warma:
The success of Agile Software Development.
Bachelor’s thesis Fontys ICT, 2012.
15.Liling Bao:
Improvement Research on the Quality of the Software Development Process.
Bachelor’s thesis Fontys ICT, 2012.
16.Maurice Hagemeijer:
EQuA – Symbiosis: multi-user aspects.
Bachelor’s thesis Fontys ICT, 2013.
Softwarekwaliteit? Natuurlijk!
55
17.Emily Weimar:
The influence of Teamwork Quality on Software Development Team Performance.
Master’s thesis Universiteit Tilburg, 2013.
18.Waldo Ramirez Montano:
Use case modeling within Object-Role Modelling.
Master’s thesis TU Eindhoven, 2013.
19.Evelyn van Kelle:
Social Factors of Agile Development Success - The influence of transformational
leadership, value congruence, communication, perceived agility and project size
on Agile project success.
Master’s thesis Universiteit Tilburg, 2014.
Niet-gepubliceerde documenten
20.Frens Vonken, Jacob Brunekreef, Andy Zaidman & Frank Peeters:
Software Engineering in the Netherlands: The State of the Practice.
Niet gepubliceerd artikel, 2011.
21.Frank Peeters:
Naar een valide objectmodel.
Intern projectdocument, 2011.
Software
22.Symbiosis tool
Onder leiding van Frank Peeters is een tool ontwikkeld voor het modeleren en
onderhouden van requirements.
Zie ook [20]
Sources, executable en documentatie van Symbiosis zijn te downloaden vanaf de
site www.fhict.nl/docent/symbiosis.
23.Micro-Machinations library
Door Riemer van Rozen is een software library ontwikkeld van micromachinations: elementen waarmee gameplay kan worden gemodelleerd.
Zie ook de publicaties over deze library (10, 11).
De library is te downloaden vanaf https://github.com/vrozen/MM-Lib.
En verder …
24.Survey praktijk Nederlandse software ontwikkelaars. (2011)
Bij de aanvang van het project, in het voorjaar van 2013, is een omvangrijke
vragenlijst voorgelegd aan een honderdtal software ontwikkelaars en hun directe
managers. Zie ook de publicatie over deze survey.
56 Softwarekwaliteit? Natuurlijk!
De gebruikte vragenlijst en een overzicht van de antwoorden zijn te vinden via
de eerder genoemde link.
25.Beknopt onderzoek naar de Nederlandse testpraktijk. (2013)
In het voorjaar van 2013 is samen met studenten van Fontys ICT onder ongeveer
tweehonderd ontwikkelaars en testers in Nederland een beknopte enquête
afgenomen over de Nederlandse testpraktijk.
De gebruikte vragenlijst en een overzicht van de antwoorden zijn te vinden via
de eerder genoemde link.
Softwarekwaliteit? Natuurlijk!
57
58 Softwarekwaliteit? Natuurlijk!
EQuA staat voor Early Quality Assurance (in software production).
Het EQuA project is een RAAK-PRO project. In de periode 2010 – 2014 heeft een aantal
partijen gewerkt aan inzichten, methoden en tools om de early quality assurance bij het
produceren van software op een hoger plan te brengen.
Deze uitgave bevat een aantal artikelen over de onderwerpen die in het project aan de orde
zijn geweest.
Onderstaande instellingen en bedrijven hebben bijgedragen aan het EQuA project.