Developing useful software products is becoming an increasingly important research activity in many fields. However, it seems the proper credit/incentive system has not been fully worked out.
The situation becomes particularly problematic when large and complicated software products depends on many individual components developed by different research teams.
Consider a situation in which a researcher spend years of effort to develop a software component C that solves a very specific but very difficult fundamental problem. This researcher then publishes a paper on C.
Another group then develops a more general software B in a few weeks, which is a thin wrapper for C. It basically reduces a more general class of problems to specialized problems that C can solve and then feed to C. With everything being open source, B can directly incorporate C into itself in various ways. Let's assume this is done legally, and the README file in B contains flattering acknowledgement to C. This group then publishes a paper on B, which properly cites the original paper on C. (Best possible situation)
Fast forward a few years. Since C solves only very specific problems, no one uses it directly (other than B). The more general class of problems that B can solve (thanks to C) happened to become a hot topic. And the citation tally is now:
- C: 1 citation (just the paper on B);
- B: 1200 citations.
This seems like a terrible situation for the author of C. And this is not purely hypothetical. I have seen this happen to several people already.
More broadly, this credit/incentive structure may be bad for a field. In particular, any one in tenure track position probably shouldn't be developing software for solving specific but fundamental problem (even though they are likely in a career stage in which they are most capable of doing exactly that).
My question is, taking what I described as given (I know it happens, so there's no point explaining why such situation does not exist), how original developer of fundamental software components could position themselves (other than keeping things closed) to get proper credit?
More broadly, how can a field setup proper structure to incentivize the development of such software?