I've been reading Dennis Stevens' writing on enabling the agile enterprise because there are a lot of useful connections between Agile and Theory of Constraints, and for the useful insights on project management. His recent piece on Understanding the Customer vs Customer Value had a paragraph that stood out for me as true of almost any project-based environment.
Here's the piece that jumped out at me with just two small changes to apply to projects in general, rather than software specifically (highlight mine):
Whether the ... organization is [running projects] for external clients or to enable the organization’s business processes, there are always more things that can validly be improved than there are resources to do the work. Not all of the improvements will result in the same return of business value to the overall organization. Some benefits are more valuable to the organization than others. If you don’t pick the one that is most valuable to the business it is not the right investment for the business.
There are always more good ideas than we have resources to execute those ideas.
The most common response to a good (project) idea is to start working on it right away. After all, the sooner you start, the sooner it will finish, right? Sadly, this doesn't work very well. Under this mode of behavior, you get the vicious cycle of more and more work being delayed more and more, as I described during the Project Flow 2009 conference.
The rules that I mention there, apply here as well: evaluate the capacity of your project system, based on your constraint (the most heavily loaded resource), and release work into the system to keep your constraint active. Along with this staggering, you have to acknowledge the stack of good ideas. This is where the portfolio evaluation group comes to play. Based on what can be known about a project idea, what is its potential value relative to all the other good ideas? When resources are freed by the completion of one project, which project should be the next one to pop off the list?
By the way, Dennis' article focuses on how Agile deals with this problem with a nice example of competing interests of the project team and the larger business. In this case - and all cases - it is the business that needs to decide priority of the projects.
[Photo: "good idea lightboard" by techne]