utvikling
Kan måten utviklere skriver kode på, avsløre deres personlighet?
Nederlandsk utvikler har forsøkt å finne det ut.
OSLO SPEKTRUM (digi.no): Under JavaZone-konferansen i forrige uke holdt nederlandske Rosanne Joosten et interessant foredrag om forholdet mellom utvikleres kodestil og deres personlighet. Til daglig er hun først og fremst Java-utvikler, men har også en bachelorgrad i psykologi.
Etter at Joosten for en stund tilbake leste boken «Clean Code» av Robert C. Martin – som kommer med en rekke anbefalinger og retningslinjer om hvordan kode bør skrives, ikke minst for å gjøre koden enklere å lese og vedlikeholde – våknet psykologen i henne.
Hvorfor bruker vi ikke disse retningslinjene overalt, og kan dette knyttes til ulike personlighetstrekk?
Dette er blant spørsmålene Joosten stilte seg, før hun gikk i gang med å finne ut hva som finnes av forskning på dette området, spesielt i tilknytning til Java.
Fem overordnede personlighetstrekk
I foredraget tok Joosten utgangspunkt i den psykologiske teorien som på norsk ofte kalles for femfaktormodellen. Den antar at individers personlighet kan forstås og beskrives ved hjelp av fem overordnede, oppsummerende dimensjoner. Se faktaboksen for detaljer.
I foredraget trakk Joosten fram typiske eksempler på hvordan utviklere skriver kode på forskjellig måte.
Ett slik eksempel er bruken av lange navn på slikt som variabler, funksjoner og klasser.
– Utviklere som gjerne bruker lange navn, scorer høyt på planmessighet. Ofte er for eksempel funksjonsnavnene strukturert som et verb og hva dette verbet virker på, sa Joosten.
Et eksempel leggPersonIGruppe(). Slike beskrivende navn kan gjøre det enklere og raskere å forstå hva funksjonen eller variabelen brukes til, men langt fra alle mener at dette er optimalt.
Kompakt eller utflytende?
Et annet eksempel Joosten nevnte, var kompakt kode. Dette kan for eksempel være mye bruk av if-tester som er skrevet på én linje og generelt lite bruk av linjeskift og klammeparenteser.
– Dette er personer som er temmelig sikre på hva de skriver av kode. De scorer typisk lavt på nevrotisme, sa Joosten.
Nå er det ikke nødvendigvis slik at de som bruker mye blanke linjer i koden, scorer veldig høyt på nevrotisme. Men de scorer typisk høyt på åpenhet.
Ifølge Joosten anses både veldig kompakt og veldig utflytende kodestil som «litt dårlig», dersom man skal følge «Clean Code»-retningslinjene.
Import
Et tredje eksempel Joosten nevnte, handlet om import av biblioteker i kode. Mens noen velger å importere alle klassene i en pakke ved å bruke jokertegn, for eksempel:
velger andre å importere selektivt ved å spesifisere enn liste med nøyaktig de klassene det er behov for:
Ifølge Joosten er de som importerer selektivt emosjonelt stabile, det vil si at de scorer lavt på nevrotisme.
Kommentarer
Et annet aktivitet som kan fortelle mye om personligheten til utviklere, er hvordan de kommenterer koden sin. Kommentarer er nødvendig for at andre (og en selv) skal forstå hvordan koden er bygd opp og fungerer.
Ifølge Joosten er det ikke overraskende en tydelig sammenheng mellom de som scorer høyt på ekstroversjon og de som kommenterer mye.
– Utviklere sitter ofte i hver sin «celle» med støykansellerende hodetelefoner på hodet. Da er det med kommentarer i koden at de utadvendte utviklere kan få utløp for sine behov for å være nettopp utadvendte. Det er slik de får energi, sa Joosten.
Mange utviklere bruker GitHub og legger igjen kommentarer og meldinger der. Statistikk viser at det er mange som banner eller kommer med andre negative uttrykk i kommentarene. Men dette er på ingen måte jevnt fordelt mellom språkene. Joosten viste fram de følgende diagrammene.
Som bildet over viser, er det aller mest banning i kommentarene til PHP- og JavaScript-kode. Matematica og Visual Basic er i motsatt ende av skalaen.
Statistikken omfatter også bruken av positive uttrykk.
Dette er mest brukt i kommentarer om Clojure og Lisp, og lite i kommentarer som SQL og Visual Basic.
Om noe, så antyder statistikken i alle fall at det er få som har særlig sterke følelser for Visual Basic.