InterVenture Best Practises: Product Owner, Not Project Manager
In our company, we are trying to regulate the development in slightly indirect ways. We have recognized that direct management of developers is a bad idea. Quite the contrary, we have recognized that nourishing a well-informed product owner brings benefits that cannot be achieved otherwise.
Product owner is responsible to join the three poles of the structure: clients, management and development. Product owner maps management’s long-running plans into short development cycles. Product owner ensures that development is paying due attention to client’s feedback and medium term priorities set by the management.
The Rule Is: No Direct Control Over Developers
Managing software development team boils down to managing relations between the product owner and the team. As long as both ends of this relation perform well, there is no need for the company managers to interfere and destabilize the development.
We believe that direct management fails in development because programmers do not have the same set of interests as managers. Programmers have deeper technical understanding of the problem. They need requirements, explanations about the product, list of priorities. The rest is programming and that is what development team does the best.
Our past experience confirms that development teams perform best when they are left alone with their goals set. The goal of the management then is to set development goals. This typically boils down to setting priorities and providing the development with the information they need.
The Other Way In the Two-Way Street
It will probably sound like a stereotype if we say that software development is a two-way street. But it definitely is a process in which both sides – those who use the software and those who write it – have to pay attention to what the other side has to say.
It is sometimes hard to explain things. Users have their own ways when it comes to doing business. Will the developers stay in the way, forcing a solution which may have technical justification but simply doesn’t fit user’s needs? Or will the programmers put an extra effort to reach a solution which is of higher value to the user?
Will the users stay stubborn and confident in their opinion even in cases where a certain level of technical knowledge would help them get a better understanding? Or will they listen to advice from programmers?
These are the situations in which product owner can mediate. He can help close the scope of each iteration so that both the developers are able to ship the solution in due time and clients are satisfied with the features they receive.
Why Not Project Manager?
From our past experience we can confidently say that development teams do not need to be managed. They need explanations of what the software is expected to do. They need information which features are more important than the others. They need someone to value their technical expertise and to incorporate it into the requirements.
These are the needs of the development team. The role which suits them best is the Product Owner. At the same time, Project Manager role tends to close the communication and make the development one-way process, which doesn’t help develop a working software.