| Research environment differs significantly from regular software engineering: - researchers conduct experiments that may fail - they often produce PoC instead of final products - it's tempting to produce tonnes of low quality code (since it just an experiment/PoC!) - often researchers are not software engineers so they don't really care about code quality / tests How to find a good trade-off between high coding standards and not getting in the way of research? Is it possible to move smoothly from PoC to production solution without rewriting everything from scratch? How to share code between experiments / PoCs? |
Addressing the specific points:
> - researchers conduct experiments that may fail
Very true! Often many, many, many experiments...
> - they often produce PoC instead of final products
This is going to vary a lot depending on where you are working. We were responsible for developing, deploying, and for some time supporting whatever we developed.
> - it's tempting to produce tonnes of low quality code (since it just an experiment/PoC!)
Yep, especially in early stages.
> - often researchers are not software engineers so they don't really care about code quality / tests
This really depends on what stage in the lifecycle of a research project we were in. We were responsible for deploying the final code, so at the end of the day it had to be of the same quality as something someone with the title of software engineer would generate.