Hm. In that case, smaller more frequent breaking changes may also not be ideal. It sounds like no matter how small the breaking change, everyone who uses the library is going to have to update their code… and if it’s happening frequently, that could get annoying.
This may be completely off-base, but just going off of what you said about data traversal, would it be completely out of scope for your library to provide a consistent interface for getting/traversing the data it is responsible for? Or do the consumers all use/traverse the returned data in very unique ways such that you couldn’t really develop a “general” API of sorts.
Some great comments here. Tangentially, I occasionally day dream of running or working for a company that flips typical corporate “intention” on its head – Specifically by placing employees at the highest place of priority and let profits, progress, customers, share price etc. be what they’ll be. I think that would be a very interesting experiment.
As far as how that relates to pay, part of the experiment would be to pay each employee more than they are “worth” to market. Just to see how it changes things for them and the company.
At the same time, “freeloaders” and folks that just can’t cut it would need to be identified and separated from, to protect those that recognize and appreciate that the company is truly looking out for them and are reciprocating with true hard work and value creation.