Can you be “agile” without cross-functional teams?

September 15, 2014

Scrum Guide, June 2013, by Ken Schwaber and Jeff Sutherland: “Scrum teams are self-organizing and cross-functional. … Cross-functional teams have all competencies needed to accomplish the work without depending on others not part of the team. The team model in Scrum is designed to optimize flexibility, creativity, and productivity.”

Can you be “agile” without cross-functional teams?” In a single word, no. In my coaching and consulting experience, every now and then I run into an organization that wants to become “agile”, but they are not willing to do what it really takes. The worst is when an organization does not want to form project teams comprised of cross-functional talent. They don’t want to “rock the boat” and decide to leave their teams organized by subject matter domain. For example, you might find a UI team, a middleware team, a firmware team, a database team, etc. Each team defines its own product backlog for the project and makes commitments within their functional domain with little regard to integration with the other parts of the system. In these cases, integration is typically deferred to some point in the future (when I ask?), which is in my opinion the #1 reason for schedule slips. Just like in waterfall, these teams typically struggle to deliver systems on time because of the lack of a focus on integration.

Reluctance to reorganize into truly cross-functional teams prevents these organizations from truly going agile. Scrum absolutely requires cross-functional teams. The delivery at the end of each sprint is a collection of completed end-to-end functional slices of code traversing all required domain layers. For example, a single user story typically involves some UI work, some business logic, some middleware, some database, and perhaps some firmware. The idea is that a cross functional team made up of developers with knowledge in these domains can work closely together (on the same team!) to develop the code and integrate within the same sprint! This “vertical slice” development is called “sashimi” by the inventors of Scrum. It is at the heart of going Agile.

If you are trying Agile and you do not really have cross-functional teams, then you are not Agile. Stop pretending. If you need a simple technique that could be considered a game-changer in lifting your team’s productivity levels, then reorganize your project efforts into a few cross-functional teams of 10 or less developers. Have each team choose user stories from the product backlog for the entire project. Require integration during the sprint. If you are willing to do this, you will enjoy the benefits of Agile.

Back to Blogs