Effective use of the R programming language in the workplace

Focus areas

Correctness

Trust your results - Minimize your risk of calculation errors and demonstrate compliance to your regulator. Whether you are making investment decisions, calculating capital requirements, or pricing insurance products, you want to have confidence in your results and to be able to generate proof of compliance with (inter)national regulations.

Put together and implement a combined strategy of standards, assertions in code, logging, user testing, and code reviews to create a solid foundation of quality and trust.

Accountability

Reproduce your results - Need to know which version of your model generated those results? Set up your project to ensure that you can trace back the exact versions of your code and calculation environment and to be able to reproduce the results at all times, now and in the future.

Design templates for model environments or use containers and virtual environments to achieve full accountability.

Maintainability

Make your software sustainable - What happens when your key programmer or analyst leaves the company? How long does it take to fix bugs or to implement new features? Is the documentation any good? If you're worried about these things, then the maintainability of your models is at risk and you may miss important opportunities.

Build a suite of unit tests, improve and expand documentation, or even refactor your code to ease the maintenance and the development of your models.

Manageability

Painless software development - Software is built using software and most software development is not done alone. You therefore need tools that help you develop your models in R, to be able to collaborate with a team of developers, and to plan and track the work that needs to be done.

Select and configure the right software tools (think of IDE's, source code repositories, and issue trackers) for your company to reduce friction while developing and maintaining your models. We also design protocols and templates to bring structure to your development process and configure continuous integration pipelines to automatically test, release, publish, and deploy your models.