One-piece flow in agile teams
Following on the concept why small teams are needed to be agile as introduced in a previous post, this post will look at why these teams should be cross-functional.
Different teams use different terminology to explain roles. For example, the Scrum Master is typically called an Agile Coach if the team doesn’t use Scrum. Same thing, except that it’s not limited to using Scrum only and includes methodologies such as Lean and Kanban. To keep it simple, I’ll refer to Scrum and the roles defined in the Scrum Guide to explain what I mean.
Product Delivery in a Nutshell
In the Scrum Guide, a Scrum Team is defined as the combined roles of Product Owner, Development Team and Scrum Master. Essentially, this means that these people have everything that they need to transform an idea (input) into working software that is valuable to the customer (output) through the process of development, as depicted in the image below.
That’s the process of development, regardless of whether you are agile or not. The purpose of development is to take an idea and make something with it that a customer will be willing to pay for.
We also, however, need to understand the purpose of agility, and how this changes the mindset behind the cogs and wheels of what happens inside the black box.
Agility is all about delivering value fast and responding to change (for this post, I’ll only focus on fast). It’s about increasing your efficiency and your productivity. The faster you can convert ideas into sold products or services, the more profitable you are.
So the question that that needs to be asked to increase profitibility is: “How can we increase the speed in which we deliver value to our customers?”
One of the reasons why Scrum works so well, is because of the built-in lean principles. So in order to find a possible answer to this question, let’s look at the concept of One Piece Flow as it is used in Lean Manufacting.
One Piece Flow
One Piece Flow aims to produce one product at a time, as efficient as possible, from start to finish. In agile, it means that one complete feature or user story is delivered from start to finish with the least amount of waste. One Piece Flow essentially is the same as having a cross-functional team, and here’s why it works.
In a typical organization, or at the start of an agile transition, the organizational structure might look like process one in the diagram below.
The Product Owner manages the product backlog from which a team of designers pick the story at the top and create a design. Once the design is complete it’s considered “Ready” for the development, which happens in a separate team, sometimes more than one team depending on the complexity. Once development is “Done”, it’s handed over to the test team and once they have verified the software, it’s ready to deliver to the customer, or “Done-done”.
Another principle of Scrum and agile is to limit distractions, thus each team has a separate schedule and sprint backlog. A story done by one team, does not guarantee that it will be picked immediately by the next team in the value chain.
A cross-functional team, however, as shown in Process Two above, doesn’t have any handovers between the different teams, as all the skills needed (as depicted by the various colors) are in the same team. They don’t need a separate Definition of Done and Definition of Done-Done. There is also no need to wait for a completed story to be added onto a sprint backlog in the next team down the value chain.
The top line, or Process One, can be compared to Mass Production, and the bottom line in the picture above, or Process Two, can be compared to One Piece Flow.
In the following video by Ron Pereira from Gemba Academy he shows why one piece flow is more efficient than mass production. This is also the reason why Scrum advises to have cross-functional teams.
In a team where you don’t have all the competencies and skills to do the work, you are increasing not only the time to produce the product, but adding waiting time, thus decreasing your cycle time and thus your ability to deliver a product to the customer, or receive feedback.
The purpose of having a cross-functional team is to increase efficiency, which in turn reduces your cycle time. It is not the only way to increase your efficiency, but it has the potential to radically reduce waiting time, while increasing trust and communication within the team itself.
Feedback, questions or comments? Please let me know by sending me a mail or leaving a comment.