programming-good-bad-ugly-featured-image

Pro­gram­ming has fun­da­men­tal­ly changed many facets of life over the last 20 years and will con­tin­ue to do so for the fore­see­able future. The field of behav­iour­al science is no excep­tion. Over the last ten years, many research soft­ware engi­neers have created prod­ucts and ser­vices to further “Better Science” — from Pro­lif­ic and Gorilla to OSF, AsPre­dict­ed, Figshare, JASP and more.

Without a doubt, pro­gram­ming is an extreme­ly pow­er­ful skill, and it’s one that people in the sci­en­tif­ic com­mu­ni­ty spend years devel­op­ing. But how do you figure out the right moment to invest that time into deep­en­ing your under­stand­ing of coding — or decide whether it’s nec­es­sary at all?

The Wearing of Many Hats

Before we answer the above ques­tion, let’s estab­lish a bit of context around the life of a behav­iour­al scientist.

We all know and appre­ci­ate that you wear many dif­fer­ent hats. As you conduct your research, there is a whole port­fo­lio of skills you need to master at various dif­fer­ent stages of your journey. Under the umbrel­la of “behav­iour­al sci­en­tist” you will need to cul­ti­vate the fol­low­ing skills to a level of proficiency:

  • Pitch­ing — Pitch­ing for grants and funding requires the ability to put forward a com­pelling argument
  • Experiment Design — Design­ing and oper­a­tional­is­ing exper­i­ments is incred­i­bly hard to do and dif­fi­cult to describe. But gosh isn’t it sat­is­fy­ing when you find an elegant way to measure a construct!
  • Tech­ni­cal Skill — Build­ing the experiment and craft­ing the par­tic­i­pant experience
  • Project Man­age­ment (Data Gath­er­ing and Man­age­ment) — Organ­is­ing and col­lect­ing the data and man­ag­ing that process
  • Under­stand­ing Sta­tis­tics — Becom­ing sta­tis­ti­cal­ly lit­er­ate is a huge part of the science
  • Written Com­mu­ni­ca­tion — Writing every­thing up into a paper
  • Dis­sem­i­nate your Find­ings — Share your find­ings through public speak­ing, lec­tures, and con­fer­ences to ensure your audi­ence con­nects with your work

Putting all things in context, behav­iour­al sci­en­tists have a huge amount to learn in a short amount of time. It’s actu­al­ly a triumph in and of itself that behav­iour­al sci­en­tists con­tin­u­al­ly make one-person teams out of them­selves in the pursuit of knowledge.

We see you.

The point here is that there are so many things vying for your time and the limited resources at your dis­pos­al. At every stage, you’ll need to ask your­self, what should be the focus? Doing every­thing at once is unre­al­is­tic in a lot of cases, so where and when can we create workarounds that relieve the pres­sure sci­en­tists find them­selves under to be all things to all research?

More impor­tant­ly, when is the right time to push for learn­ing a little — or a lot — more about coding? Or will there always be some­thing more impor­tant to do?

Dif­fer­ent Strokes for Dif­fer­ent Folks

The reality is that there is no one-size-fits-all. If you’re pio­neer­ing a new method­ol­o­gy, it’s entire­ly pos­si­ble that the task will need custom code. You’ll then need to learn the most appro­pri­ate lan­guage for the envi­ron­ment you want to test in. Matlab or Python if you’re in the lab. Or JavaScript if you want to test online. Or you’ll want to hire a research soft­ware engineer.

There’s no denying that there are great oppor­tu­ni­ties for research soft­ware engi­neers. But do you want to be one? That’s the ques­tion you have to ask your­self when pri­ori­tis­ing your work. Or instead, could you perhaps find a col­lab­o­ra­tor that already has these skills, or a tool that makes these skills unnecessary.

For many exper­i­ments, coding simply isn’t nec­es­sary anymore. There are tools out there that have been designed to empower you to create the experiment you need without code. These tools are known as task builders and experiment builders. I’ve chatted with sci­en­tists that are still strug­gling with their tasks after three months of steady progress in code — and we’ve repli­cat­ed their task in a task builder in under 30 minutes.

Task builders often offer high-quality train­ing on how to build an effec­tive task online, which you’ll com­plete in a frac­tion of the time it would take you to code from scratch. In other words, a good research tool will free you up to focus more on the science.

So How Do You Choose A Good Task Builder?

So if you decide to choose to use a task builder, how do you pick a good one?

Well think about your experiment — what dif­fer­ent facets will it have? If you’re going to be doing a ques­tion­naire exclu­sive­ly, for example, then a tool like Qualtrics is going to be your best bet. But if your task needs accu­rate reac­tion times, and a trial struc­ture, are there tools that can get you there with less coding or no coding at all?

For some, just using a task builder for a simple experiment may actu­al­ly remove the coding element alto­geth­er. If you’re trying to get to grips with all the other things, that’s going to be super handy. This video demon­strates how to build a cat­e­go­ry naming task — and it only takes three minutes:

However, if you’re looking for a halfway house, where you’re free to write your own code in JavaScript, but don’t want to host and manage your own server, then you have other options, too. There are a variety to choose from, which is great. But it’s impor­tant to ensure that the tool you choose enrich­es your research prac­tice, instead of com­pro­mis­ing it by allow­ing you to focus on the science and not the programming.

The way to check that a tool is right for you is to think about how much flex­i­bil­i­ty the inter­face gives you:

  • How cre­ative can you be with the build­ing blocks given?
  • Are you able to augment the tool’s func­tion­al­i­ty so it can serve your unique needs if the default tool is not an exact fit?
  • Does it offer to host bare bones code, for when you absolute­ly have to write your tasks your­self, but don’t want to manage a whole server?
  • Is it easy to get started on this tool when you’re a begin­ner and pow­er­ful enough to power exper­i­ments for professors?
  • Can you build the whole par­tic­i­pant expe­ri­ence under one roof?

It’s like the dif­fer­ence between Duplo and Lego. With one you can build a rudi­men­ta­ry house. With the other, you can create a mini version of Hog­warts School of Witch­craft and Wiz­ardry. Com­plete with spires. And the Whomp­ing Willow. Or the Star­ship Enter­prise. The point is to choose a tool where the experiment world becomes your oyster. So make sure your tool can deliver that kind of func­tion­al­i­ty for you.

A Word of Caution With This Tale…

No tool is perfect; they all have their lim­i­ta­tions. If an inter­face isn’t able to deliver what you’re looking for despite having con­sid­er­able cre­ative freedom, maybe your task can be tweaked a bit? Some­times, a bit of smoke and mirrors is enough to get you what you need sci­en­tif­i­cal­ly, without adding tech­ni­cal complexity.

For example, sci­en­tists have found that it can be hard to get browsers to trigger audi­to­ry and visual stimuli togeth­er with the nec­es­sary degree of pre­ci­sion. However, a great design workaround is to use video (thereby com­bin­ing the audio and visual stimuli into one file) as video is widely sup­port­ed in HTML5.

Alter­na­tive­ly, a dif­fer­ent coding approach might give you the flex­i­bil­i­ty to tighten up the syn­chro­nised onset of audi­to­ry and visual stimuli. With the latter option, you’d take on the burden of imple­ment­ing, testing and val­i­dat­ing your code. Great for all the coding genius­es with easy access to timing val­i­da­tion equipment.

If that latter option seems like a distant dream though, the moral of the story here is to choose a tool that gives you plenty of flex­i­bil­i­ty — and to find cunning work-arounds that give you better quality data with no addi­tion­al tech­ni­cal complexity.

A Quick Word on the Impor­tance of a Support Team

If you’ve gone back­wards and for­wards trying to figure it out and nothing’s working, make sure you make use of a tool that allows you to speak to someone who knows the inter­face inside and out — i.e. a tool backed by an effi­cient support team.

In some cases, the col­lab­o­ra­tion could lead to the build­ing of a custom feature for your experiment, which is always a hugely excit­ing endeavour.

Be Smart About Your Pro­gram­ming Needs

Overall, when it comes to pro­gram­ming, it’s impor­tant to be real­is­tic about your time and how and where it should be spent. As a researcher, you don’t have a choice about working hard. It’s a given in this field. But you can also work smart, and conduct your research in a way that makes the most effi­cient use of your time and doesn’t rein­vent the wheel.

Research soft­ware engi­neers have invest­ed their time cre­at­ing and val­i­dat­ing their tools, so that you don’t have to. Let them do the invalu­able job of lifting some of the burden and stress off your shoulders.

If you want to find out more about best prac­tices when it comes to build­ing exper­i­ments online, check out our insights here.

Happy Exper­i­ment­ing!

Jo Ever­shed

Jo is the CEO and co-founder of Caul­dron and Gorilla. Her mission is to provide behav­iour­al sci­en­tists with the tools needed to improve the scale and impact of the evi­dence-based inter­ven­tions that benefit society.