I used to disagree with this conventional wisdom, and think I could be both. I now realize in retrospect that’s because I was in an environment where I basically had no choice but to be both. Or at least where I didn’t trust anyone who might step in to be product owner to actually take responsibility for it and do it right.
Having had the experience of being de facto the technical lead (only engineer or most experienced engineer of a very very small team) on a project/program with a very responsible and effective de facto product owner, I see I was totally wrong.
The typical argument in favor of these roles being separated is that the technical lead/engineer is too close to the code to really understand the needs of stakeholders (customers, the organization, politics within the organization, whatever) and fill a product owner role. I think that argument definitely has a lot of merit, but if a technical lead also has a lot of domain knowledge, and spends a lot of time with stakeholders (and/or hearing from UX people), and has a lot of skill, couldn’t they maybe do both things effectively in the same person? And might I be such a person who can pull it off? It’s a challenge, but maybe.
But. The real reason I’ve seen that this is no good, is that there’s no way for me to stay sane doing that. There are just too many things to worry about. Instead: One person (“product owner”) to decide what is to be done (in large part consisting of prioritization, and deciding when a feature is “good enough” and when it is not), and another separate person to decide how to do it (the technical lead).
Then I, the technical lead, can spend my time worrying about (or we could say ‘planning’ if I wasn’t such a worrier!) the technical decisions — whether we’re really doing it right, whether this is the most efficient or lowest TCO way to accomplish something, technical debt, choice of dependencies, how to set up our current work to provide the right platform/abstractions for future work, etc. Without having to worry about if we’ve chosen to do the right things, or being responsible for those decisions, or being called to account for making them “wrong” by internal stakeholders.
I just can’t do both and stay sane. And I suspect this isn’t just me. I realize now that in the former position where I was doing both and thought I was doing okay at it — I was not staying sane, and my increasing feelings of loss of control over things effected team and organizational dynamics negatively. It wasn’t healthy for anyone.
To be sure, the product owner and technical lead should be in close communication, and feeding back on each other. I still don’t believe it should be a one-way power dynamic, where the product owner simply sets down the plan and the technical team implements it. The product owner’s decisions should be influenced by feedback from the technical team/lead, on feasibility, estimated costs/time, and even just their own ideas about how to meet stakeholder needs, among other things. And the product owner should ideally have some high-level conceptual understanding of how the engineering works. But they’ve got to be different people in different roles, so they can each focus on their area of responsibility