Programming has fundamentally changed many facets of life over the last 20 years and will continue to do so for the foreseeable future. The field of behavioural science is no exception. Over the last ten years, many research software engineers have created products and services to further “Better Science” — from Prolific and Gorilla to OSF, AsPredicted, Figshare, JASP and more.
Without a doubt, programming is an extremely powerful skill, and it’s one that people in the scientific community spend years developing. But how do you figure out the right moment to invest that time into deepening your understanding of coding — or decide whether it’s necessary at all?
The Wearing of Many Hats
Before we answer the above question, let’s establish a bit of context around the life of a behavioural scientist.
We all know and appreciate that you wear many different hats. As you conduct your research, there is a whole portfolio of skills you need to master at various different stages of your journey. Under the umbrella of “behavioural scientist” you will need to cultivate the following skills to a level of proficiency:
- Pitching — Pitching for grants and funding requires the ability to put forward a compelling argument
- Experiment Design — Designing and operationalising experiments is incredibly hard to do and difficult to describe. But gosh isn’t it satisfying when you find an elegant way to measure a construct!
- Technical Skill — Building the experiment and crafting the participant experience
- Project Management (Data Gathering and Management) — Organising and collecting the data and managing that process
- Understanding Statistics — Becoming statistically literate is a huge part of the science
- Written Communication — Writing everything up into a paper
- Disseminate your Findings — Share your findings through public speaking, lectures, and conferences to ensure your audience connects with your work
Putting all things in context, behavioural scientists have a huge amount to learn in a short amount of time. It’s actually a triumph in and of itself that behavioural scientists continually make one-person teams out of themselves 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 disposal. At every stage, you’ll need to ask yourself, what should be the focus? Doing everything at once is unrealistic in a lot of cases, so where and when can we create workarounds that relieve the pressure scientists find themselves under to be all things to all research?
More importantly, when is the right time to push for learning a little — or a lot — more about coding? Or will there always be something more important to do?
Different Strokes for Different Folks
The reality is that there is no one-size-fits-all. If you’re pioneering a new methodology, it’s entirely possible that the task will need custom code. You’ll then need to learn the most appropriate language for the environment 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 software engineer.
There’s no denying that there are great opportunities for research software engineers. But do you want to be one? That’s the question you have to ask yourself when prioritising your work. Or instead, could you perhaps find a collaborator that already has these skills, or a tool that makes these skills unnecessary.
For many experiments, coding simply isn’t necessary 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 scientists that are still struggling with their tasks after three months of steady progress in code — and we’ve replicated their task in a task builder in under 30 minutes.
Task builders often offer high-quality training on how to build an effective task online, which you’ll complete in a fraction 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 different facets will it have? If you’re going to be doing a questionnaire exclusively, for example, then a tool like Qualtrics is going to be your best bet. But if your task needs accurate reaction times, and a trial structure, 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 actually remove the coding element altogether. If you’re trying to get to grips with all the other things, that’s going to be super handy. This video demonstrates how to build a category 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 important to ensure that the tool you choose enriches your research practice, instead of compromising it by allowing 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 flexibility the interface gives you:
- How creative can you be with the building blocks given?
- Are you able to augment the tool’s functionality 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 absolutely have to write your tasks yourself, but don’t want to manage a whole server?
- Is it easy to get started on this tool when you’re a beginner and powerful enough to power experiments for professors?
- Can you build the whole participant experience under one roof?
It’s like the difference between Duplo and Lego. With one you can build a rudimentary house. With the other, you can create a mini version of Hogwarts School of Witchcraft and Wizardry. Complete with spires. And the Whomping Willow. Or the Starship Enterprise. The point is to choose a tool where the experiment world becomes your oyster. So make sure your tool can deliver that kind of functionality for you.
A Word of Caution With This Tale…
No tool is perfect; they all have their limitations. If an interface isn’t able to deliver what you’re looking for despite having considerable creative freedom, maybe your task can be tweaked a bit? Sometimes, a bit of smoke and mirrors is enough to get you what you need scientifically, without adding technical complexity.
For example, scientists have found that it can be hard to get browsers to trigger auditory and visual stimuli together with the necessary degree of precision. However, a great design workaround is to use video (thereby combining the audio and visual stimuli into one file) as video is widely supported in HTML5.
Alternatively, a different coding approach might give you the flexibility to tighten up the synchronised onset of auditory and visual stimuli. With the latter option, you’d take on the burden of implementing, testing and validating your code. Great for all the coding geniuses with easy access to timing validation 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 flexibility — and to find cunning work-arounds that give you better quality data with no additional technical complexity.
A Quick Word on the Importance of a Support Team
If you’ve gone backwards and forwards 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 interface inside and out — i.e. a tool backed by an efficient support team.
In some cases, the collaboration could lead to the building of a custom feature for your experiment, which is always a hugely exciting endeavour.
Be Smart About Your Programming Needs
Overall, when it comes to programming, it’s important to be realistic 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 efficient use of your time and doesn’t reinvent the wheel.
Research software engineers have invested their time creating and validating their tools, so that you don’t have to. Let them do the invaluable job of lifting some of the burden and stress off your shoulders.
If you want to find out more about best practices when it comes to building experiments online, check out our insights here.
Happy Experimenting!