Disclaimer: In this post I am not claiming that, this as an one fit solution to all but the crux of this can be applicable to large domain. This post is based on my experience and is solely my own opinion.
- Hierarchy in the project
- Communication matrix
- How to communicate between different entity
- How not to communicate
- Role and responsibilities
For any project, we have two main entity which keeps on fighting to get the best results and also to blame each other for their in-competencies. In some world we call functional & software OR Project Manager & Developers OR….
Product Owner (PO): He/She is the ultimate head of the Product who owns it and under him falls two entities Functional Owner(FO) & Software Owner(SO). They are responsible for entire chain below them and they need to report on progress of project, to PO on regular basis.
Functional Owner (FO): He/She is the owner of the functional part of the product, and under him can be many more Functional Managers or Product Managers(PM) who reports to FO on regular basis regarding the progress of the product in their portfolio. Similarly kind of division is on the Software Owner side also.
2: Communication Matrix:
Communication matrix can play a key role in having effective communication and which could in itself lead to a proactive approach to solve any un-wanted circumstances. Work flow can be in two direction:
- From top to bottom. In this category we are mainly considering the product requirement are being conveyed by PO, and then broken into independent/semi-independent task which are delegated to PM which further assign budget to software team.
- Second come when we have semi-independent project and one or more software teams are involved. In this case communication between them should go through product manager of the involving teams.
3: How to communicate between different entity
Communication should be limited to one level up and one level down. Example Software owner should report to Product Owner for the performance of the software team & he should talk to all his/her team leads to get updates on there work projection rather each individual in the team (Basically micro managing should be avoided).
Having said that always providing a long term vision to the about the project is the responsibility of all head of the hierarchy person in project flow diagram. The main benefit of this is the alignment it creates to achieve the goal.
4: How not to communicate
Cross communication should be avoided as lack of ownership may lead to loss in communication. (read communication as commitment) For example a software team lead should not talk to functional owner or product manager(other) without involving his/her software owner or product owner respectively as then they will take active lead in ensuring that commitment is fulfilled.
5: Role & Responsibilities
Role and responsibility should not be rigid but more flexible as it provides person with a room to improve and grow. A software developer in a software team has role to build excellent software given the requirements from the product manager in consultation with the team lead and software owner, so that the team and product is aligned with respect to final delivery or minimum viable product.
Similarly, different linking entity should effective communicate so that any issue can be contained at the earliest without loosing too much energy in wild goose chase. By linking entity we means Software Team and Product Manager should solve some disagreements without involving Software Owner or Function Owner, let alone call Product Owner.