"Software coding skills underpin successful research careers."
To progress in your research career increasingly requires you are able to code... Wait why? You didn't sign up to be a software engineer! You want to do research. Maybe you've already realised you need to program and have already written code... probably in R or Python... to process all that data and glean insights for your recent publications.
But... is it good code? Could it be better? Would you share it? Could your code be used to lift your citations and research impact?
Research coding can be a solitary activity and code is rarely shared. Data is processed, statistical outputs reported and then the code is filed away. Code is a necessary evil in the delivery of a publication. This might be too harsh, I for one quite enjoy the methodical nature of writing models and I'm sure plenty of you reading do as well, but it's all the other stuff I tend to dread... managing the code between projects, collaborating with colleagues on shared code, ensuring it delivers robust results in a publication, running large data processing on my laptop... the scrutiny over my coding practices!
Imagine if you could get the help, support and feedback on your code that gave you confidence in it and the outputs it generates. This new found confidence might encourage you to share direct access to your code and help you build collaborations, secure more funding and increase contributions to publications. There are tools and work processes that can be used by researchers to lift the impact of their code. Good research code is an asset that can be leveraged to drive impact and give you a competitive advantage. Here are a few tips:
Using code to operationalise your research will often require similar data processed or analyses operations across different research projects. By creating standardised chunks of code they can be optimised and easily recycled and reused.
If you are reusing code it is likely that the process has value beyond your own research. By creating modules you can share this resource and build stronger collaborations.
You can even explore creating a library or package in your favourite programming language. This process creates more structure and makes it easier for you to share. You can also get acknowledgement from a bigger number of users. Developing and sharing reusable code will allow your expertise to be recognised.
Sharing code can really help develop better outcomes more quickly. It also helps build stronger collaborations.
Code sharing uses professional tools that allows teams of people to keep track of progress and contribute to the final output. Effective code sharing is built around a shared goal with continuous feedback.
Use code sharing to help develop skills and build more efficient research code solutions.
Version control with a shared repository is used by software developers to track progress and ensure code updates are managed effectively.
Using version control tools is a little like agreeing on naming conventions for multi-author publications. Everybody agrees on how updates are managed, checked and who is responsible for the final implementation.
A password controlled cloud repository makes it easier for remote team members to work together.
You don't need to share your code with the rest of the world but you should be able to allow users to run your code.
APIs are a great way to give users access to your code. Learn how APIs work and experiment with local code that is wrapped in an API.
Sharing insights and allowing users to run your code will immediately lift impact and demonstrate to research funders that you have a pathway to lift the impact from research investments.
Build robust data pipelines that have well defined data standards by using data schemas. Take a long-term vision for your data and share this with your collaborators.
Long-term well organised data will help drive long-term impact. The ability to quickly and easily share and integrate data pipelines that deliver large scale meta-analyses will be foundational to the most successful researchers.
By ensuring good data standards your code is built to last. Research coding become efficient and can be easily and quickly reformatted to take advantage of new opportunities.