I have been working both as a product manager and as a lead developer. I think both roles are designs of companies where hierarchy are more important than the outcome. A healthy company probably lacks Product Managers, Lead Developers and System Architects and those roles are filled by loosely formed teams based on interest in the problems and products people are solving/building. Where I come from, it is called taking responsibility.