LimeSurvey

My first Python package

As a self-taught programmer, I sometimes feel a bit uneasy about the code I write. Sure, it may work, but there’s probably a more efficient and more elegant way to do it. These doubts notwithstanding, I’ve just published my first Python package: limepy.

Its purpose is simple: it helps you process and summarise LimeSurvey data. LimeSurvey is a survey tool, somewhat similar to Surveymonkey. It’s different in that it’s open source, and probably more versatile.

If you download survey data as a csv, the answers to question types such as multiple choice questions or blocks of questions (‘arrays’) will be spread out over multiple columns. One task of limepy is to make sure all the data for a specific item end up in one table.

Limepy will also help you with a number of other tasks, like downloading survey data, creating a codebook, printing answers to open-ended questions and printing the answers of an individual respondent.

Find the package on Github and PyPI. Install with pip install limepy. Feedback welcome.

De uitvinders van skip logic?

Vroeger had je papieren formulieren met ingewikkelde instructies: als je bij deze vraag “Ja” hebt ingevuld, ga dan verder met vraag 12; heb je “Nee” ingevuld ga dan naar vraag 16 op pagina 3. Tegenwoordig word je automatisch door vragenlijsten heengeloodst met behulp van skip logic (of conditional branching).

Houdt u van korte vragenlijsten?

Ja
Nee

Ik had er nooit bij stilgestaan hoe dat technisch werkt, tot ik in Beautiful Data (2009) een artikel las van Jonathan Follett en Matthew Holm over gebruikersvriendelijke enquêteformulieren. Als illustratie gebruiken ze een enquête waarin vermogende 55-plussers werden ondervraagd over een niet nader genoemd luxeproduct.

Follett en Holm beschrijven een aantal manieren waarop ze rekening probeerden te houden met hun doelgroep: val respondenten niet lastig met eindeloze variaties op dezelfde vraag (sociale wetenschappers hebben daar een handje van); gebruik een sobere, functionele vormgeving; maak duidelijk dat je geïnteresseerd bent in de mening van de respondenten en dat je ze niet iets probeert te verkopen. Allemaal open deuren, maar die kunnen niet vaak genoeg worden ingetrapt.

En daarnaast maakten ze dus gebruik van skip logic - al gebruiken ze zelf die term niet. Ze kwamen op het idee toen ze een portfolio-site maakten voor een ontwerper:

We used JavaScript to hide and reveal details about different projects, making it possible to take in all of the designer’s work at a glance and then dive deeper into areas of interest, all without leaving the home page.

Datzelfde idee gebruikten ze vervolgens ook in de vragenlijst voor rijke 55-plussers:

As programming goes, this is child’s play and hardly worth mentioning. But the impact from the user’s standpoint is subtle and powerful. It meant that we could ‘listen’ and ‘respond’ to the user’s input in a very conversational manner.

Dat het technisch gezien kinderspel is kan ik persoonlijk niet beamen, maar hé, ik ben nog maar net met JavaScript begonnen. Wat ik wel intrigerend vind is dat de auteurs zich in feite opwerpen als de uitvinders van skip logic. Terwijl ik niet anders weet dan dat deze functie standaard aanwezig is in allerlei online enquêteprogramma’s (ik heb het gecheckt, Limesurvey gebruikt ongeveer dezelfde code als Follett en Holm).

Skip logic in online vragenlijsten bestaat al zeker tien jaar en het is dus onwaarschijnlijk dat Follett en Holm dit hebben uitgevonden. In theorie is het wel mogelijk dat zij het script hebben bedacht waarmee vragen zichtbaar worden gemaakt in reactie op eerder gegeven antwoorden. Vroeger werd skip logic op een omslachtigere manier vormgegeven, waarbij respondenten van de ene naar de andere pagina werden gestuurd (zie bijvoorbeeld dit artikel uit 2007 waarin wordt gewaarschuwd dat respondenten kunnen afhaken als je skip logic gebruikt).