Way of Working
A Stream Team's way of working covers three concerns: aligning with the goals of the Product and the wider business, working together internally as a cross-functional team without handovers, and coordinating with other Stream Teams to complement each other's work without duplicating effort.
Purpose
The purpose of an explicit way of working is to ensure that all teams are working cohesively towards common product objectives, maximising efficiency, and fostering innovation through effective collaboration. It also ensures that the team itself works as a single unit (through teaming and pairing) rather than as a collection of individuals passing work between specialities.
Principles and Practices
The principles below are grouped by the three concerns named in the intro. Each concern has its own set of practices linked from the table.
Aligning with the Product Team
How the Stream Team stays connected to the wider product strategy and reports its progress.
| Principle | Goal | Practice |
|---|---|---|
| Not all opportunities are worth solving | We need to identify the opportunities that align with our strategy and deliver the best impact for customers. | By understanding the long-term vision of the product as well as the more medium-term strategy we can ensure that we are working on the right things. |
| Fail to plan, plan to fail | We need to ensure that the Stream Teams are looking at the big picture and not just the immediate work. | By running an annual planning process that identifies the key bets that the team will make we can balance the benefits of long-term planning with the flexibility needed to respond to change. |
| Involvement drives commitment | We need to ensure that people are committed to the Stream Team objectives. | By involving the Stream Team in the setting of the objectives we can ensure that they are committed to them. |
| Transparency builds trust | We need to share the work that we are doing freely to build the trust needed for Product Teams to continue empowering Stream Teams. | By creating public Stream Kanban boards we can ensure that the work that the Stream Teams are doing is visible to the Product Teams. |
| Trust, but verify | We need to ensure that the work that the Stream Teams are doing is delivering the expected value. | By implementing a Weekly Product Review we can identify variance from the expected value early and take corrective action. |
Working together internally
How the team itself operates day-to-day. This is where the most distinctive ZeroBlockers practices live: no handovers between specialists, the team is the unit of delivery rather than the individual, and flow is optimised over individual utilisation.
| Principle | Goal | Practice |
|---|---|---|
| Lead time matters more than step time | We need to minimise the total time from idea to satisfied customer, not the time each speciality spends on its part. Internal handovers between specialists are the largest source of delay in most product teams. | By using teaming as the default mode of working, the whole team works on a single piece of work end-to-end with no handovers between disciplines. |
| Multiple perspectives drive innovation | We need to bring the different knowledge, experience and perspectives of the team to bear on every problem, not have each speciality work in isolation. | By implementing teaming and pairing practices the team works as one unit on the hardest problems and pairs on smaller pieces of work. |
| Flow over utilisation | We need to optimise for value delivered to customers, not for keeping every specialist 100% busy. Local utilisation comes at the cost of process throughput. | By applying small backlogs with hard WIP limits in the Stream Kanban we create a pull system where the bottleneck is visible and people pull work rather than pushing it. |
| Quick decision making is a competitive advantage | We need to ensure that people have the information they need to make decisions quickly without waiting for sign-offs. | By defining the company values and principles of how we work, coupled with the product objectives, we give people the context they need to make decisions on the spot. |
Coordinating across Stream Teams
How separate Stream Teams complement each other's work without collapsing into a single coordinated mass.
| Principle | Goal | Practice |
|---|---|---|
| Collaboration across teams is expensive | We need to minimise the overhead of collaboration across teams. | By defining clear boundaries between the Stream Teams we can encourage lower overhead interaction modes instead of more time-intensive collaboration. |
| Information silos increase the risk of failure | We need to ensure that people rotate through the Stream Teams to share knowledge and experience. | By balancing the benefits of a long-lived team with rotating people between teams we can achieve the best mix of detailed knowledge and fresh perspectives. |
Criticisms
| Name | Description | Mitigation |
|---|---|---|
| Overemphasis on Planning | Having strict annual planning with detailed solutions can reduce agility and responsiveness to change. | Integrate regular review cycles to adapt plans based on new information and market changes. |
| Verification Rigidity | Weekly reviews could become bureaucratic, stifling innovation and flexibility. | Ensure that the weekly review focuses on metrics and not the solutions being developed. |
| Rotational Complexity | Rotating individuals between teams might disrupt team cohesion and project continuity. | Implement a structured rotation process that minimises disruption and maximises knowledge transfer. |
| Decision-making Paralysis | Over-reliance on company values and principles for decision-making could lead to analysis paralysis. | Provide training on practical decision-making and empower teams with context-specific autonomy. |
Anti-patterns
Aligning with the Product Team
- Planning Paralysis: Teams spend so much time planning and aligning that they delay taking action. Holding teams accountable for outcomes will instill a bias for action.
- Over-verification: The practice of "Trust but Verify" becomes overly bureaucratic, leading to micromanagement and diminishing team autonomy. Balance oversight with trust, emphasising outcomes over process adherence and allowing teams some autonomy in how they achieve objectives.
Working together internally
- Cosmetic cross-functional teams: A team has all the disciplines on it but still operates as a sequence of handovers between specialists. The structure is cross-functional but the way of working is not. The team gets the staffing cost of a cross-functional team without the lead-time benefit.
- Internal handovers: Work moves between specialists within the team via tickets and status updates rather than collaboration. This defeats the purpose of co-locating the disciplines: the lead time looks the same as a team-of-functions.
- Specialist silos: Team members only work on tasks within their own discipline. Creates a single point of failure per discipline and prevents knowledge spreading across the team.
Coordinating across Stream Teams
- Collaboration Overhead: Efforts to minimise collaboration overhead ironically increase it, as teams navigate rigid boundaries and overly complex collaboration protocols. Streamline collaboration practices, focusing on simplicity and effectiveness rather than strict adherence to predefined boundaries.