This is a theme that comes up quite often in conversations with my consulting clients. How to resolve dependencies between teams?
When we organize teams into tribes and squads, with product teams and structural teams, dependencies between teams are common. For example, for a certain team to be able to do something to achieve a certain goal, it may need another team to implement something in its part of the product.
These dependencies can cause bottlenecks in the product development process and delays in achieving results and objectives.
There are 3 ways to deal with this dependency between teams:
Ask to Prioritize: The simplest of all is to ask the other team to prioritize. If the team does not prioritize, there is always the option to escalate this need and the area leader will prioritize it in a top-down manner. This is the worst way to deal with dependencies because a team’s priority is rarely the same as the other team’s and having to escalate this need and prioritization can lead to relationship difficulties between teams.
APIs: in this model, all teams build, in addition to their features, APIs for internal consumption of those features. It’s a good strategy because it allows you to minimize dependencies between teams, in addition to eventually offering these APIs for external consumption. However, we also run the risk of something new not yet being implemented and having to be prioritized by the team.
Innersource: is the use of best open source software development practices and the establishment of an open source-like culture within organizations for the development of their proprietary software. It is the best solution for dependency between teams, but it requires maturity from the teams. In this form of dependency, when team A needs something implemented in the code of another team B, people from team A make the modification they need to team B’s code and submit this modification for team B to evaluate and, if everything is ok, publish it.
Since my days at Locaweb, I’ve been trying to work with the innersource model to help reduce dependency between teams.
Summing up
When your product development team has two or more teams working independently, the dependency between the teams will certainly happen and can create bottlenecks in the development of your product. There are 3 ways to resolve this dependency.
One team asks the other to develop what they need. The problem is that priorities may not align.
Teams build everything with APIs for internal consumption. It does indeed decrease dependency, but new items still have to be prioritized.
Innersource, using open source concepts and practices within the company, allowing all teams to work on the code of all teams following certain processes for quality assurance.
Workshops, coaching, and advisory services
I’ve been helping companies and their leaders (CPOs, heads of product, CTOs, CEOs, tech founders, and heads of digital transformation) bridge the gap between business and technology through workshops, coaching, and advisory services on product management and digital transformation.
Newsletter
I write regularly about product management, product development, digital product leadership, and digital transformation. You can receive a notification whenever I publish a new article without depending on any social network algorithms to notify you! Just subscribe to my newsletter.
Digital Product Management Books
Do you work with digital products? Do you want to know more about managing a digital product to increase its chances of success, solve its user’s problems and achieve the company objectives? Check out my Digital Product Management bundle with my 3 books, where I share what I learned during my 30+ years of experience in creating and managing digital products:
Startup Guide: How startups and established companies can create profitable digital products
Product Management: How to increase the chances of success of your digital product