Do’s & don’ts van crowdsourcing

Outsourcen van softwareontwikkeling is heel normaal. Crowdsourcen daarentegen is een nieuwere en alternatieve aanpak voor softwaresourcing. Met crowdsourcing laten softwareorganisaties hun software ontwikkelen door een wereldwijde talentpool. Klaas-Jan Stol bespreekt de do’s en don’ts.

Klaas-Jan Stol is wetenschappelijk onderzoeker bij Lero, the Irish Software Research Centre, aan de Universiteit van Limerick in Ierland.

Het outsourcen van softwareontwikkeling is in de afgelopen jaren flink toegenomen. Populaire outsourcingbestemmingen zijn India en China. Een alternatief voor outsourcen is crowdsourcen van softwareontwikkeling. De term ‘crowdsourcing’ refereert aan het outsourcen naar een ‘crowd’, ofwel een onbekende groep individuen, in het geval van software-crowdsourcing zijn dat dus ontwikkelaars die letterlijk overal kunnen wonen.

Crowdsourcing is een relatief nieuw verschijnsel dat gefaciliteerd wordt door web 2.0 internettechnologieën. Een gerelateerd concept is crowdfunding, maar dat heeft als doel het ­vinden van financiering om nieuwe ideeën en producten te realiseren.

Crowdsourcing kan gebruikt worden voor tal van zaken (zie kader), maar het crowdsourcen van softwareontwikkeling is nog niet zo wijdverspreid. Met crowdsourcing kunnen cliënten en leveranciers elkaar vinden door middel van een platform, een onlinemarktplaats, waar ­cliënten het werk kunnen aanbieden. Er zijn talloze platformen beschikbaar, gericht op ­verschillende doelgroepen. Bij conventioneel outsourcen is er sprake van een contract tussen twee partijen, de cliënt en de leverancier: de cliënt geeft de productvereisten aan een leverancier en die levert vervolgens een product. Bij crowdsourcing daarentegen verdeelt de ­cliënt de software in een groot aantal stukjes, bijvoorbeeld verschillende componenten of een verzameling webpagina’s voor een gebruikersinterface. Voor elk stukje dat gecrowdsourced wordt, schrijft de cliënt een specificatie, die vervolgens wordt aangeboden op een crowdsourcingplatform tegen een bepaald bedrag. Individuele ontwikkelaars kunnen dan aan het werk om voor de gestelde deadline een implementatie te leveren. De best scorende implementatie wordt vervolgens geselecteerd en de winnaar van zo’n ‘contest’ krijgt betaald. In plaats van een een-op-eenrelatie tussen cliënt en leverancier, is er dus een een-op-n-relatie tussen cliënt en crowdontwikkelaars. ­Omdat er maar één of soms twee winnaars zijn, wordt dus veel werk onbetaald gedaan, maar veel ontwikkelaars participeren om ­ervaring op te doen.

 

Voordelen

Crowdsourcing impliceert de participatie van een grote groep individuen. Het succes van bekende platformen zoals Amazon Mechanical Turk suggereert een aantal potentiële voordelen van crowdsourcen:

Hoge kwaliteit en innovatie: twee weten meer dan één. Gegeven een grote groep ­mensen is de kans groot dat er getalenteerde ontwikkelaars tussen zitten die veel gespecialiseerde kennis hebben van bepaalde technologieën, die de cliëntorganisatie wellicht niet zelf heeft. Lage kosten: in plaats van een langdurig contract aan te gaan met een enkele leverancier voor een compleet softwaresysteem, kunnen opdrachten voor kleinere, modulaire stukjes voor relatief beperkte bedragen worden ­aangeboden. Omdat een cliënt niet vastzit aan een langdurig contract, heeft hij meer controle over de uitgaven. Korte ontwikkeltijd: omdat niet een heel systeem wordt geleverd maar slechts een stukje, kan het werk in grote mate parallel worden gedaan door verschillende crowdontwikkelaars. En daardoor kan de time-to-market worden verkort.

De mate waarin deze voordelen behaald kunnen worden, valt nog te bezien. Voor sommige organisaties heeft crowdsourcing goede resultaten opgeleverd, maar voor andere zijn de verwachte voordelen uitgebleven. Bovendien introduceert deze aanpak ook een aantal nieuwe uitdagingen. Het verdelen van een systeem in componenten en weer samenvoegen tot één werkend geheel bijvoorbeeld is verre van triviaal.

Crowdsourcing als softwaresourcingstrategie staat nog in de kinderschoenen. En hoe ­organisaties precies deze voordelen ­kunnen realiseren, is een open vraag.

Crowdsourcingsoftware: de do’s

1. Bepaal of crowdsourcing een geschikte aanpak is Allereerst is het belangrijk om te bepalen of een softwareproject geschikt is om gecrowdsourced te worden. Als een project bedrijfsspecifieke kennis vereist waar buitenstaanders weinig vanaf weten, is het wellicht beter om een project zelf uit te voeren. Verder is het belangrijk om te beoordelen hoe essentieel een tijdige oplevering van een project is: net als bij outsourcing wordt een organisatie afhankelijk van derden. Als de crowd om wat voor reden dan ook niet in staat is om op tijd te leveren, dan kan dat ook andere vertragingen tot gevolg hebben.

2. Plan ontwikkelactiviteiten nauwkeurig Het softwareontwikkelingsproces in crowdsourcing verschilt erg van hoe interne softwareontwikkeling plaatsvindt. Softwareontwikkeling met crowdsourcing is noodzakelijkerwijs een watervalproces: requirements moeten van tevoren bekend zijn (anders kan de software niet worden ontwikkeld door een crowd), en het heeft weinig zin om incrementeel software te ontwikkelen met een crowd, omdat ontwikkelaars misschien maar in één contest meedoen. Echter, veel softwareorganisaties volgen tegenwoordig een agile proces dat incrementeel en iteratief is, en het afstemmen van een lineair waterval- en een iteratief agile proces kan lastig zijn. Om misverstanden en oponthoud te voorkomen is het daarom belangrijk om het proces van tevoren goed te begrijpen, om zo op problemen te ­anticiperen en een goede planning te kunnen maken.

3. Geef duidelijke instructies aan de crowd Documentatie speelt een belangrijke rol, omdat dit een van de belangrijkste communicatiekanalen is met ontwikkelaars in de crowd. Als de instructies voor een bepaalde ontwikkeltaak niet duidelijk zijn, dan is de kans groot dat inzendingen van onvoldoende kwaliteit zijn, of dat er veel vragen worden gesteld (middels onlinefora) die veel tijd kosten om te beantwoorden. Het is ook belangrijk om de juiste balans te vinden: te veel instructies en documentatie kunnen ontwikkelaars afschrikken met als gevolg dat zij afhaken. Te weinig documentatie betekent dat aannames niet expliciet worden gemaakt, wat resulteert in software-inzendingen die niet voldoen aan de vereisten.

4. Stel een technisch persoon aan voor ­interactie met de crowd Contact houden met crowdontwikkelaars kan veel tijd en moeite kosten. Sommige platformen prefereren één contactpersoon binnen de cliëntorganisatie, die ook als projectmanager kan fungeren. Echter, projectmanagers met technische kennis zijn vaak hoogbetaalde werknemers, en dit maakt het contact houden met de crowd erg duur. Daarom is het aan te raden om één technisch persoon aan te stellen om dagelijks vragen te beantwoorden via fora.

Crowdsourcingsoftware: de don’ts

1. Blijf niet anoniem Softwareorganisaties die willen crowdsourcen zijn wellicht bezorgd over het delen van gevoelige informatie en Intellectual Property (IP). Om dat tegen te gaan, kan een organisatie anoniem blijven, maar dit heeft ook een groot nadeel: veel crowdontwikkelaars gebruiken crowdsourcing als een manier om hun cv op te poetsen. Voor ontwikkelaars in ontwikkelende economieën, zoals India en China, is het waardevol om bekende bedrijfsnamen op je cv te zetten. Sommige platformen geven ontwikkelaars een ‘rating’: een score die de technische kennis en vaardigheden aangeeft. Als cliënten anoniem blijven, zou het goed kunnen dat opdrachten van dat bedrijf minder aandacht trekken dan ‘Blue Chip’-bedrijven, die een goede reputatie hebben.

2. Wijs contributies niet te snel af Zodra een contest over is, heeft de cliëntorganisatie een beperkte tijd om de winnende oplossing te accepteren. Als de kwaliteit niet voldoende is, dan kan de inzending worden afgewezen, en hoeft geen betaling gedaan te worden. Dit kan echter leiden tot een ‘slechte naam’ als wanbetaler, als een cliënt om het minste of geringste een inzending afwijst. Dit kan potentiële participanten afschrikken, omdat zij de kans betaald te worden te klein inschatten. Daarom is het goed om te kijken wat voor problemen een inzending heeft, en als interne ontwikkelaars gemakkelijk een inzending kunnen aanpassen zodat het wel bruikbaar is, dan is het beter om de inzending te accepteren.

3. Onderschat de kosten niet Een van de potentiële voordelen van crowdsourcing is kostenbesparing. De meeste ‘microtasks’ op Amazon Mechanical Turk kosten één euro of minder. Echter, de kosten van softwareontwikkeling op gespecialiseerde platformen moeten niet onderschat worden. De totale prijsbepaling hangt uiteraard af van het platform dat een cliënt gebruikt. Het prijzengeld van een contest kan variëren van enkele honderden tot een paar duizend euro, wat natuurlijk ook afhangt van de complexiteit van de taak. Sommige platformen vereisen bovendien een ‘abonnement’ om het platform te kunnen gebruiken. Dit kan oplopen tot duizenden euro’s per maand.

4. Verwacht geen wonderen Ten slotte, crowdsourcing is niet de ‘Silver Bullet’ voor softwarontwikkeling. De potentiële voordelen, zoals hoge kwaliteit, een korte ontwikkelduur en lage kosten, zijn niet makkelijk te realiseren. Net als bij outsourcing, is het bijzonder moeilijk voor een cliëntorganisatie om precies duidelijk te maken wat zij wil. De ontwikkelde software die de crowd aflevert, is dus niet altijd van goede kwaliteit. Als interesse voor een contest tegenvalt en er dus maar weinig inzendingen zijn, kan het gebeuren dat die opnieuw moet worden aangeboden. Als gevolg daarvan kan de verwachte korte time-to-market ook niet worden gerealiseerd.

Tag

Onderwerp



Niet gevonden? Vraag het de redactie!

Heeft u het antwoord op uw vraag niet gevonden, of bent u op zoek naar specifieke informatie? Laat het ons weten! Dan zorgen we ervoor dat deze content zo snel mogelijk wordt toegevoegd, of persoonlijk aan u wordt geleverd!

Stel uw vraag