Creating cross-functional teams is more effective than coordinating teams with dependencies

Many companies find themselves organized around projects that come to their development group from all directions. There often isn’t even a backlog to see what’s to be worked on. This results in teams working on multiple projects at a time, multitasking, waiting for others, and general chaos. Short projects take months.

One solution is to get all of the groups of interrelated teams together every 3 months to do a big room planning event. This is putting all of the work that needs to be done over the next 3 months in a backlog and having the teams spend a couple of days ina big room planning together how they will manage it.

While not truly Agile, it is definitely an improvement in many ways:
1) all work is now visible
2) dependencies have been mapped
3) teams are now collaborating with each other

But this is really an accommodation to the challenge of value streams (workflows) that cut back and forth across teams. A better approach is to create teams that can get the work done on their own. This may be larger than a standard Agile team (8-12 people). But it can be subdivided into smaller teams with few dependencies between them. This is a much easier problem to solve.

Refactoring SAFe to FLEX part 1 of 2

Frameworks should be architected in the same way that software systems are. Both need to be able to evolve without adding complexity, be robust and be clear in how their different components interact. Few frameworks, other than FLEX, however, have what could be called an architecture. Most are collections of value and practices loosely overlaying some principles (which, often enough the framework itself doesn’t follow well).

Continue reading “Refactoring SAFe to FLEX part 1 of 2”