Is there an equivalent to Banker's Algorithm but for project management? For example you have several teams with different tasks and there is a deadlock, how do you resolve and prevent these situations? (For example, team A must do task X and team B must do task Y, but to do Y team A needs to finish X and to do X team B needs to finish Y).
If two components are being developed at the same time, you are in a "codevelopement" or "parallel development" situation.
The most standard approach to addressing this works like this:
- Both teams complete their design phase in parallel.
- Both teams publish an interface specification for their component
- Each team reviews the interface specification for the other team and creates a mock service that matches the specification.
- The teams develop their own components against the mocks
- When development is complete, you remove the mocks and proceed with proper integration testing.
Even though this is more total work, it eliminates the interteam dependency, and can often result in better team throughput.