Beter code door achievements in Visual Studio ?

 
21 februari 2012

Voor Visual Studio is een plug-in beschikbaar die het mogelijk maakt om achievements te halen, net als op de XBOX 360. Leuk idee, maar krijg je hierdoor ook betere code?

Achievements kennen we van de XBOX 360. Als je in een spel iets bijzonders presteert krijg je een soort van medaille. De uitdaging is om alle medailles in een bepaald spel te halen. Vaak moet je een spel meerdere keren spelen en echt beheersen voordat je alle achievements kunt halen. Je kunt ook je behaalde achievements vergelijken met die van je vrienden. De Playstation 3 heeft iets soortgelijks met Trophys en ook Steam op de PC kent achievements.

Het leuke is dat de achievements plug-in voor Visual Studio gebaseerd is op een  humoristisch blog artikel van een ontwikkelaar.

Je kunt deze achievements beschouwen als een vorm van “gamification” . Bij “gamification”  worden aan een niet-spel  spel elementen toegevoegd om het leuker te maken.  Je kunt dit ook zien als een vorm van “game based learning, waarbij een spel(element) wordt ingezet om een leereffect te bereiken.

Het onderwerp waar ik het eerste aan dacht was de unit test. Een eerste achievement bij je eerste “groene” unit test. Bij je 100ste unit test weer en dan weer bij nummer 1000.

Toen ik de lijst met mogelijke achievements doorlas bleek er helaas geen unit test achievement in te zitten.  Wel krijg je bijvoorbeeld een achievements als je GOTO gebruikt of 20 variabelen met een naam van 1 karakter binnen 1 class.

Nu zijn het wel  achievements van 0 punten en er wordt je wel duidelijk gemaakt dat dit geen best practices zijn, maar volgens mij hadden ze met een beetje meer moeite wel een aantal leuke achievements kunnen verzinnen die wel best-practices stimuleren. Bijvoorbeeld voor een project met een bepaalde grote zonder FxCop waarschuwingen.

Terug naar de vraag aan het begin van dit artikel. Krijg je betere code door achievements in Visual Studio ? Ik denk het (nog) niet. Daarvoor zijn de achievements nog niet goed genoeg voor uitgewerkt, maar het bied wel potentie voor de toekomst.

Daarnaast is het misschien leuk om na te denken hoe je  “gamification” en  “game based learning” kunt inzetten voor de projecten waar je zelf aan werkt. Lees ter inspiratie eens deze artikelen over  SAP en  Rypple (overgenomen door Salesforce) waarbij deze toch wel “saaie” bedrijfssoftware leuker en beter wordt gemaakt door toevoeging van spel elementen.

Maar wanneer komt de Trophy ondersteuning in Eclipse ?


Werken met ?
Kijk dan bij onze mogelijkheden voor starters en/of ervaren IT'ers.


Categorieën: Development, .Net

Tags: , , ,


Reacties (3)

  • Paul van Dam schreef:

    We hebben deze vorm nu ook al min of meer in de buildomgeving zitten. Je krijgt pluspunten bij betere coverage, opgeloste FxCop-violations etc. https://wiki.jenkins-ci.org/display/JENKINS/The+Continuous+Integration+Game+plugin

    Geplaatst op 22 februari 2012 om 20:52 Permalink

  • Ik denk dat gamefication kan bijdragen aan je groei als ontwikkelaar. Daarbij is het van belang dat de achievements goed gedrag stimuleren. Iets wat de achievements uit het artikel niet (altijd) lijkt te doen.

    Een ander voorbeeld van een (positieve) vorm van gamefication software development is http://coderwall.com/. Hierbij gaat het om de achievements die je als software ontwikkelaar kunt behalen door bij te dragen aan projecten op GitHub.

    Een andere vorm van groei lijkt mij het mentor-protegé model. Waarbij een (senior) ontwikkelaar zich verantwoordelijk voelt voor en actief bijdraagt aan de ontwikkeling van een andere (junior) ontwikkelaar.

    Geplaatst op 22 februari 2012 om 17:17 Permalink

  • Ivo Limmen schreef:

    Zo heb ik een tijdje terug voor Sogyo nog een stuk software geschreven die de Subversion logs analyseerde en elke checkin uitcheckte om vervolgens de code per ontwikkelaar te analyseren en punten toe te kennen aan de persoon.
    Dit was precies die gamification en waar ik grote voorstander van ben. Het is beter om mensen te belonen (met achievements) dan te straffen (niet kunnen inchecken omdat je geen commentaar invoerde).

    Geplaatst op 21 februari 2012 om 22:07 Permalink