I spent a great deal of time trying to find others who have written about product versus project management, especially as to how it relates to Agile. Unfortunately, it is not a hot topic. This is a shame – it should be.
I have had the pleasure of working with teams and organizations that are successful with Agile and others who are not that successful. Those that are not successful are those who cannot see a difference between product and project management. While the differences may be subtle, it can make all the difference in the world.
When you are in the project management mindset all effort is made to complete the project on time and on budget with the maximum amount of features. Those things that do not count as important to these features – automated testing, TDD, BDD, continuous deployment, etc. – are not completed, “de-scoped”, or given lower priority. In the process a huge amount of technical debt is created.
When you use a product management mindset you will make the long term investments in process and infrastructure necessary to contribute to the long term health of the product.
In “Frequently Forgotten Fundamental Facts about Software Engineering” Robert Glass asserts that the cost of maintenance is typically 40-80% (with an average of about 60%) of the total cost of ownership for a software product. I have seen estimates that put it even higher.
There is another cost to thinking about project management at the expense of product management. Most of the increases in productivity of agile teams can be traced back having stable teams. In project management there is a great deal of overhead in creating the project, assembling the team, completing the work, releasing resources from project, etc. On the other hand, using product management leads to stable teams that do not have that overhead. All work that comes to the product team is placed on the team backlog and prioritized, worked by people familiar with the product and domain in the order that creates the most value for the business. If you want the work faster just augment the team for a short period of time.
I don’t want to create a long thesis on the subject, but wanted to point it out in the hopes that this topic will become a more popular one in the agile world.