First, almost all academic code is really simple from a software engineering perspective, but really complex from a subject matter perspective. Having a deep understanding of both the data and the relevant hypotheses is critical, and is often actually helped by writing the code yourself. Trying to communicate every feature requirement perfectly, and making sure every assumption is met, to a third party CS person might be possible but is definitely non-trivial.
Second, most of these projects are one-time use (code up some project over a few months, write a paper, never touch again), and so spending a ton of time + money making it robust and efficient is not really worth it. For things like open source tools that are expected to be used by a lot of people it's much more feasible to get engineers involved. The Chan Zuckerberg initiative is actually funding a program that essentially does this [1].
[1]https://chanzuckerberg.com/rfa/essential-open-source-softwar...
I’m sorry but learning to code very custom or short lived software is just not that hard. I think you’re making programming too precious.
Don’t get me wrong — writing good, maintainable, long lived software, and basically anything with a UI for non programmers, and certainly anything for sale, is much harder and usually something professionals or their equivalents will need to do especially for an institution.
But writing scripts in interpreted languages like python or ruby for the research purposes of an individual or small group is not something people need to (or more importantly can) hire a dedicated team of engineers to do.
IMO it’s good that programming has become more democratic. It’s an ongoing process. And one that has happened in basically all other creative industries to some extent.
[1] https://society-rse.org/ [2] https://www.software.ac.uk/
I totally agree with the general idea of sharing code and tools, in an open research community but incentivising someone from a field completely unrelated to CS to 'just code' sounds like pretty bad advice. This is very likely to lead to a lot of time spent, frustration, and underwhelming results.
Why not incentivise building a professional Software team at inter-departmental University level and have that team act as multi-department shared resource?
edit: missed words