There aren’t many people in the Agile space who will tell you a cross-functional team is a bad idea. It’s harder to get them to explain precisely what that means.
Does it mean any given person on the team can do any given task? That every person on the team can do every task? Should we expect subpar work from a team filled with generalists?
In truth, this is not as big of a question mark as it used to be. Agile methods have been around long enough that people are starting to understand how they work regardless of framework, methodology, process, or even accreditation body.
Still, people are being introduced to agile concepts for the first time every day. Some of them are in technology, but many of them may be from other disciplines that are just starting to realize the benefits found in software development can be applied to them as well.
Of course, the question still remains for them, and sometimes ourselves, will we get quality work from a cross-functional team? The short answer is – yes.
As you may expect from the name, a cross-functional team is a team that can handle every function needed to accomplish the work given to them. What isn’t readily apparent is that this goes beyond the capabilities of individual team members to perform tasks. The truly cross-functional team that can accomplish all the work it’s given is also an empowered team. They have the power to remove blockers, make decisions, and work more closely with people outside the team that they need to.
That said, the team can accomplish every task they need. Note, it is the team that can accomplish this – not specific individuals.
One way to think of this is with the concept of a “Generalizing Specialist.” This is not a hard concept to get once you realize what it means. In fact, almost every single programmer is already a generalizing specialist to some degree. Developers have to create code that works. After they write some code, they test it to know if it works. While this is never as exhaustive as testing you get from a dedicated QA team, it is a level of testing nonetheless. As a team works together longer, these connections become stronger. QA specialists may learn how to write limited amounts of code, assisting the developers with troubleshooting. Developers will get better at asking relevant questions assisting product owners in gathering requirements. Product owners will learn about testing as they prepare for demos, assisting QA teams in their work.
Beyond getting work done, these cross-functional teams should also be empowered. If a development team needs a new database server, they should have the ability to get one up and running without going through months of red tape. When a product owner sees the backlog getting short, they need the ability to approach the customer and gather more requirements without having to sit and wait for a team of public relations personnel or lawyers to give them permission.
In case it hasn’t become clear yet, for a team to truly become cross-functional, they need something from the company they work within. They need its trust.
Trust is essential for a team to become cross-functional, high-performing, or just generally excel. This seemingly obvious concept is surprisingly difficult for many companies. On the one hand, the company is spending half million to a million dollars a year for this team to produce software for them. On the other hand, that’s a lot of money to not keep a close eye on.
What many agile frameworks, methodologies, and processes are really trying to do is create an environment conducive to this trust. They almost universally include things like rapid feedback, and close interaction between the business, the developers, and the customer.
If your organization is struggling to establish this trust, let me help. Contact me today for an initial conversation on your needs. We’ll walk away knowing how I can help you and holding the next step of an action plan.
More