From the course: Agile Foundations

Cross-functional teams

From the course: Agile Foundations

Cross-functional teams

- Agile teams should be motivated and self-organized. You see this in principles five and 11 in the Agile manifesto. Many organizations have found that the best way to keep teams self-organized is by running them differently from the rest of the organization. Many organizations are split up into functional areas. These are often called silos because they look like the vertical buildings used to store grain. In an organization, each of these silos has their own area of responsibility. So you might have a vertical stack for business people, then another for software development, maybe another for quality assurance. Each of these silos will have their own managers and common practices. That's why a typical team will have representatives from each of these silos. So you might have a business analyst who coordinates with the customer to write the products requirements. Then you'll have software developers who write the software. Then you'll have testers who make sure that the product doesn't have any bugs. Each of these team members will have their own manager. This manager might pull them from the team to work on another project. Now, remember, in the penny game, we talked about how handoffs can slow down your work. So if each team member has their own area of responsibility, then you're encouraging them to create handoffs. Plus, if each person has their own manager, then you're in some danger of being pulled from the team. This will create backups as work waits for the missing team member. And Agile team should be cross-functional. A cross-functional team has each team member working horizontally through these functional areas. That means that you might have software developers that help you write requirements. You might have quality assurance people who are also developing software. Each person focuses on the work and not on their own functional role. In the penny game, you saw that when everyone works together, you can quickly have work move through the system. It's true that it's much easier to find people who can flip a penny than develop software. So cross-functional teams spend a lot of time cross-training. That means that everyone spends a little time training and learning. It's nearly impossible to have everyone on the team equally skilled in all the functional areas. But agile teams should strive to have everyone good enough to be able to contribute something to every bit of work on the team. If you have work that only one person can complete, then you'll create handoffs and backups. This expert needs to train the other people on the team so you can be sure to continuously deliver at a predictable pace.

Contents