:::info Auteurs:
:::
Abstract
1 Inleiding
2 Oorspronkelijke studie: Onderzoeksvragen en methodologie
3 Oorspronkelijke studie: Bedreigingen voor de validiteit
4 Oorspronkelijke studie: Resultaten
5 Gerepliceerde studie: Onderzoeksvragen en methodologie
6 Gerepliceerde studie: Bedreigingen voor de validiteit
7 Gerepliceerde studie: Resultaten
8 Discussie
9 Gerelateerd werk
10 Conclusies en referenties
Een terugkerend probleem bij softwareontwikkeling is het nemen van onjuiste beslissingen over de te gebruiken technieken, methoden en tools. Deze beslissingen zijn meestal gebaseerd op de percepties van ontwikkelaars. Een factor die de perceptie van mensen beïnvloedt is eerdere ervaring, maar dat is niet de enige. In dit onderzoek willen we ontdekken hoe goed de percepties van de effectiviteit van verschillende foutdetectietechnieken overeenkomen met hun werkelijke effectiviteit bij afwezigheid van eerdere ervaring.
\ Om dit te doen, voeren we een empirische studie uit plus een replicatie. Tijdens de oorspronkelijke studie voeren we een gecontroleerd experiment uit met studenten die twee testtechnieken en een codereviewtechniek toepassen. Aan het einde van het experiment nemen ze deel aan een enquête om erachter te komen welke techniek zij als het meest effectief beschouwen. De resultaten tonen aan dat de percepties van deelnemers onjuist zijn en dat deze mismatch kostbaar is in termen van kwaliteit.
\ Om meer inzicht te krijgen in de resultaten, repliceren we het gecontroleerde experiment en breiden we de enquête uit met vragen over de meningen van deelnemers over de technieken en programma's. De resultaten van de gerepliceerde studie bevestigen de bevindingen van de oorspronkelijke studie en suggereren dat de percepties van deelnemers mogelijk niet gebaseerd zijn op hun meningen over complexiteit of voorkeuren voor technieken, maar op hoe goed ze denken dat ze de technieken hebben toegepast.
Een steeds populairdere praktijk tegenwoordig is dat softwareontwikkelingsbedrijven ontwikkelaars hun eigen technologische omgeving laten kiezen. Dit betekent dat verschillende ontwikkelaars verschillende productiviteitstools kunnen gebruiken (programmeertaal, IDE, enz.). Software engineering (SE) is echter een mensintensieve discipline waar verkeerde beslissingen de kwaliteit van de resulterende software potentieel in gevaar kunnen brengen. In SE zijn beslissingen over welke methoden, technieken en tools te gebruiken bij softwareontwikkeling doorgaans gebaseerd op percepties en/of meningen van ontwikkelaars in plaats van bewijs, zoals gesuggereerd door Dyb˚a et al. [19] en Zelkowitz et al. [55].
\ Empirisch bewijs is echter mogelijk niet beschikbaar, aangezien bepaalde methoden, technieken of tools mogelijk niet zijn bestudeerd binnen een bepaalde context of zelfs helemaal niet. Als alternatief zijn ontwikkelaars mogelijk simpelweg niet bekend met dergelijke studies, volgens Vegas & Basili [49]. Op deze grond is het belangrijk om te ontdekken hoe goed de percepties (overtuigingen) van ontwikkelaars overeenkomen met de werkelijkheid en, als dat niet zo is, uit te zoeken wat achter deze mismatch zit, zoals opgemerkt door Devanbu et al.[14]. Volgens de psychologie speelt ervaring een rol in de percepties van mensen. Dit is ook waargenomen door Devanbu et al. [14] in SE.
\ Dit onderzoek is echter opgezet om te ontdekken hoe goed percepties overeenkomen met de werkelijkheid bij afwezigheid van eerdere ervaring met de gebruikte technologie. Dit is om verschillende redenen zinvol: 1) ervaring is niet de enige factor die de percepties van ontwikkelaars beïnvloedt; 2) ontwikkelingsteams bestaan meestal uit een mix van mensen met en zonder ervaring; en 3) het is niet duidelijk welk type ervaring percepties beïnvloedt. Dieste et al. [17] concluderen bijvoorbeeld dat academische in plaats van professionele ervaring de externe kwaliteit van de code die door ontwikkelaars wordt gegenereerd bij het toepassen van Test-Driven Development zou kunnen beïnvloeden.
\ We willen onderzoeken of percepties over de effectiviteit van drie foutdetectietechnieken overeenkomen met de werkelijkheid, en zo niet, wat er achter deze percepties zit. Voor zover wij weten, is dit het eerste artikel dat dit probleem empirisch beoordeelt. Hiervoor hebben we een empirische studie plus een replicatie uitgevoerd met studenten. Tijdens de oorspronkelijke studie hebben we (als onderdeel van een gecontroleerd experiment) de effectiviteit gemeten van twee testtechnieken en één codereviewtechniek wanneer deze door de deelnemers werden toegepast. Vervolgens hebben we de als meest effectief waargenomen techniek (verzameld door middel van een enquête) vergeleken met de werkelijke.
\ Daarnaast hebben we de kosten van de mismatch tussen percepties en werkelijkheid geanalyseerd in termen van effectiviteitsverlies. Belangrijke bevindingen zijn onder meer:
– Verschillende mensen beschouwen verschillende technieken als effectiever. Geen enkele techniek wordt als effectiever beschouwd dan de andere. – De percepties van 50% van de deelnemers (11 van de 23) zijn onjuist.
– Verkeerde perceptie van technieken kan de effectiviteit gemiddeld met 31pp (procentpunten) verminderen.
\ Deze bevindingen hebben ons ertoe gebracht om het doel van de studie uit te breiden in een replicatie om te onderzoeken wat er achter de percepties van deelnemers zou kunnen zitten. Hiervoor hebben we hun meningen over de technieken die ze toepasten en de programma's die ze testten onderzocht in een replicatie van het gecontroleerde experiment. Belangrijke bevindingen zijn onder meer:
– De resultaten van de replicatie bevestigen de bevindingen van de oorspronkelijke studie.
– Deelnemers denken dat de effectiviteit van de techniek uitsluitend afhangt van hun prestaties en niet van mogelijke zwakke punten van de techniek zelf. – De meningen over de complexiteit van technieken en voorkeuren voor technieken lijken geen rol te spelen bij de waargenomen effectiviteit. Deze resultaten zijn nuttig voor ontwikkelaars en onderzoekers. Ze suggereren:
– Ontwikkelaars moeten zich bewust worden van de beperkingen van hun oordeel.
– Er moeten tools worden ontworpen die feedback geven aan ontwikkelaars over hoe effectief technieken zijn.
– De beste combinatie van toe te passen technieken moet worden bepaald die tegelijkertijd gemakkelijk toepasbaar en effectief is. – Er moeten instrumenten worden ontwikkeld om empirische resultaten beschikbaar te maken voor ontwikkelaars.
\ Het materiaal dat bij de hier gepresenteerde studies hoort, is te vinden op https://github.com/GRISE-UPM/Misperceptions. Het artikel is als volgt georganiseerd. Sectie 2 beschrijft de oorspronkelijke studie. Sectie 3 presenteert de bedreigingen voor de validiteit. Sectie 4 bespreekt de resultaten. Sectie 5 beschrijft de gerepliceerde studie op basis van de wijzigingen die zijn aangebracht in de oorspronkelijke studie. Sectie 6 presenteert de bedreigingen voor de validiteit. Sectie 7 rapporteert de resultaten van deze gerepliceerde studie. Sectie 8 bespreekt onze bevindingen en de implicaties daarvan. Sectie 9 toont gerelateerd werk. Ten slotte schetst sectie 10 de conclusies van dit werk.
\ \
:::info Dit artikel is beschikbaar op arxiv onder CC BY-NC-ND 4.0 licentie.
:::
\

KopiërenX (Twitter)LinkedInFacebookE-mail
BNB zakt onder belangrijke steun terwijl crypto markt
