So, the problem we have been working on is how do you optimize multi product development spend without meddling too much in the inner working of the development organization. The answer...
MONTHLY CAPACITY PLANNING
We have settled into a process where once a month, we meet with all the development managers and go through what is getting done and what is falling behind. We make decisions about pushing out some things and most importantly allocating resources to priorities.
For instance, if a specific product initiative is falling behind and has a compelling reason to accelerate, we will push development to add capacity to that initiative. Usually, this means that something else has to give up capacity. Sometimes it means we will increase our outsourcing capacity. Either way, we work together to openly talk about turning up or down the volume relative to where we currently are.
There are two sacred rules in this process that are key for the PMs to adhere to:
- We cannot specify who works on what. Only the raw capacity.
- We cannot push back when the devs say the "plate is full". We can only ask them to add new employees or contract augmentation.
It seems like as long as we adhere to these rules, the dev team works really hard to optimize project staffing within the dev organization.
What I like about this is each month we are able to make adjustments with development and so if something is getting sideways, it will not be long until we address it. Once we set the capacity for each product, then for a full month, the PMs have all the maneuvering room they need to work on their specific priorities without having to fight for capacity.
It has all the makings of a great process: It is easy, practical, works to everyone's advantage and is sustainable.
tl;dr: Tune capacity levels monthly and live in peace