Platinum Edge gets lots of questions about how development teams can be cross-functional. What does it mean to be cross-functional? What if I don't know how to do all the jobs on a development team? Is my expertise going to be wasted? Can this really work in the real world?
Think about a busy restaurant. There, the development team is the kitchen team. If you walked into the kitchen any night of the week, you would find different types of chefs. There might be a chef who creates recipes and specials, chefs who are experts on specific foods, like meats or desserts, and prep cooks who generally do lots of chopping, slicing and peeling.
Suppose the flu were going around, and the vegetable chef, the dessert chef and two prep cooks were out sick. Would the restaurant close? Would it take veggies and dessert off the menu? For a successful establishment, the answer is NO. Everyone would pitch in to keep things running. That's because, while people on the kitchen team might not be experts in each others' jobs, they do have a working knowledge of what to do – they are cross-functional.
The kitchen is not all that different from a development team on a scrum project. New development teams generally do not start being cross-functional. However, each person, no matter what talents they bring to the team, should strive to learn new skills.
Development teams becoming cross-functional must keep three things in mind:
1. It's about skills, not titles.
Development team members leave their titles behind when they join scrum teams. On agile projects, development teams are teams of equals, so titles like "Junior QA Analyst" or "Senior Front-end Developer" no longer matter. Instead, development team members bring expertise in some areas, abilities in others, along with curiosity and excitement about learning. Development team members will constantly ask themselves the next two questions.
2. What can I contribute today?
If you are a development team member, what is your expertise? What are you capable of doing? What can you teach someone? A good place to start is by looking at the tasks for user stories on the sprint backlog. Which tasks would you usually do? Which tasks are you at least able to do? Which task could you help someone else do?
3. How can I expand my contribution in the future?
What can you learn? What can other team members help you learn? What might you learn on your own? Can the organization help by providing training and books? Can you use techniques like paired programming? What kinds of things are you interested in learning? What opportunities does being part of a cross-functional development team open up for you?
As development teams become more cross-functional, they are able to swarm on user stories and raise velocity. They also eliminate single points of failure, so when the flu is going around, the sprint keeps going.