|
|
|
|
|
by trhway
3502 days ago
|
|
>Agile doesn't cause more inter-team interactions and dependencies; It doesn't cause more of them, it makes them fail. > In general dependencies can be minimized by organizing around feature teams instead of component teams. You can't include common core upstream components into downstream branching features. Basic topology of a tree. Until of course you just have only one team doing the whole project. Even when components with a dependency between them are in the same team the dependency still exists and agile makes it much more harder to handle. Until i guess it is one person doing both components - that by transitive closure would mean one person doing all the project himself (until the project component graph contains disconnected islands) |
|
If you want to divide the teams up by component rather than by feature you can do that, but it's usually a bad idea. Most projects can achieve higher velocity and quality by having teams take on vertical slices of functionality through the full software stack; this minimizes misunderstandings and delays when handing off work between teams. But either way it's essential to have stable APIs and clear design contracts before building any dependencies on top of common core upstream components. Again this is all orthogonal to agile versus waterfall.