We have an internal software development team in my company that are building a set of software frameworks and some infrastructure (database hosting) to be used by other teams. Since they are not delivering software directly to any external client, they are trying to figure out how to chargeback to recoup their costs / budget They are trying to determine the correct payment model for other teams to use their services. So essentially we would be paying for the following resources:
- Using the software frameworks
- Using the infrastructure (servers – disk, memory, etc)
- The support people in this group to maintain the infrastructure
- The developers that are building the frameworks.
This seems like a generic problem that must exist with other software shops so I wanted to see if there was some standard or a suggestion here?
The fact that you are considering this kind of relationship within a shop is probably very symptomatic of our times. If you think the framework team is useful, then measure its usefulness, in a somewhat fine-grained way, and just give the team the budget to keep being useful!
For example, have other teams assess their use of specific features in the framework and their wishlists, and check that the framework team only works on parts of the code relevant to those.
Paying for services could have some problematic drawbacks, as with any such arbitrary metric. For example, it gives other teams an incentive not to use their services: it encourages homegrown indrastructure, custom code(so you get a more potent NIH syndrome).