In Agile software development projects, effective cross-functional teams are a means to producing timely applications
that fulfill the needs of users and build business value. Agile's cross-functional team best practices, however, call for making some challenging organizational and cultural changes. In this article, software project managers and experts explain the rewards of the Agile way to teamwork and offer advice on overcoming its hurdles.
Cross-functional teams were used in software development before the Agile development methodology was created, but Agile calls for taking the concept beyond simple developer-business consultations to the continuous collaboration of a broad constituency, according to Yvette Francino, QA/QC manager at McKesson Corp.
"Traditionally, cross-functional team members would 'represent' their function at a meeting, but organizationally they would still report up to a functional manager," said Francino. But true cross-functional teams are made up of members from different departments within the organization.
In many Agile environments, there's an effort to break down silos that might still exist organizationally and have all team members be responsible as a whole for the entire effort, said Francino. There is less emphasis on specific roles and responsibilities and more on the whole team working together to accomplish what needs to be done.
Agile developer-business collaboration lacking
A recent survey on Agile practices by Voke Inc. highlights the challenge of breaking down departmental silos. "We found 11% of survey participants reported they use Agile without any cross-functional teams, just a team of developers only," said Theresa Lanowitz, Voke co-founder. Voke canvassed more than 200 software professionals. The majority of respondents' Agile software projects did not include active participation by line-of-business representatives.
Voke surveyed 200+ geographically-dispersed IT and management software professionals in midsize and Fortune 2000 companies. Of those, 41% assigned a dedicated business/customer representative to projects, but 23% say assigned customer reps do not actively or regularly participate. About one-fifth of companies do not assign a business rep to project teams. For 17%, a customer representative is assigned but participates only in demonstrations of the application. For one-fifth, a customer representative is not assigned to the project team. Failure to get active and ongoing participation from the business side directly impacts the quality of software requirements, said Lanowitz.
The majority of Agile project teams also did not include quality assurance representatives, the survey revealed. That's a critical mistake, said Lisa Dronzek, Voke co-founder. "Given the impact on the brand when there are catastrophic software failures, we should be witnessing a movement towards increased quality, not movements excluding QA," Dronzek said.
Agile ways to involve business
In the Voke report, the majority of enterprise organizations reported that availability of the line of business representative is an ongoing challenge. Agile coach Lisa Crispin agreed, noting that getting business people's time was a problem in her early development projects. She and other experts offered advice on overcoming this and other hurdles that come up around creating cross-functional teams.
Tip 1: Assign product ownership to a line-of-business manager.
Assigning product ownership is one way to enforce availability, said Crispin. "Make a senior person the business product owner [PO], and locate the PO's office close to development. One of the PO's primary responsibilities is getting business, IT and development together."
Tip 2: Devise a common language to ease communication.
Getting technical people and business people to understand each other can be difficult, said Chris Moyer, vice president of technology, Newstex LLC and author of the book, Building Applications in the Cloud. His development teams include people from analytics, development, QA, the customer's and Newstex's business side, the user and others. To foster clear communication, he created a glossary of common terms each group uses.
Tip 3: Act as an interpreter.
Moyer said a large part of his project management job is acting as a go between. "I can't talk technical-speak to clients," he said. "I have to translate that into what the clients are going to understand. If I speak like that to my developers, they're just going to get annoyed because they're not getting details."
Tip 4: Encourage team members to gain knowledge of different perspectives.
Cross-functional Agile teamwork requires all members, not just the product owner, to acquire broader skills, experts said. Employees need to be more versatile and become a jack-of-all-trades, but some prefer to stay in a niche area, said Francino. "One challenge in this is that often people don't have the appropriate skills or interest outside of their primary role." Agile project leaders will most value developers who know testing and vice versa, and business people who have some IT or development background, she said.
Tip 5: Understand what business stakeholders want in any particular new feature.
Crispin advised developers to find ways to learn about the business domain. "Understand the purpose behind it so that the technical team can help the business customer get the right features to solve the problem," she said. "By knowing the business domains, you can help them find the least costly way to provide value."
Knowledge-sharing, support and group accountability are the key benefits of Agile's whole-team approach, experts agreed. Team members work more closely and are often able to back one another up. Each team member's skills are improved by observing the different perspectives presented. Most importantly, they should include the customer's or business user's perspective, said Francino. Finally, she added, there is a lot less "passing the buck" or pointing fingers at individuals or other groups when something doesn't get done.