What Is an Agile Cross-Functional Team (XFT)?
A very simple way of defining an agile cross-functional team would be that it is a team where different team members come from different functional blocks to take end to end responsibilities of a tasks. A team consist of marketing, sales and software developers is an example of XFT who can take end to end responsibility to deliver products to the marketplace.
To limit such broad topic, this article refers to software product development teams as the cross-functional agile teams.
The business need of a cross-functional team is more like a team of experts coming from different departments who can solve and deliver urgent issues very fast. They are also known as virtual teams. Once the team delivers the issue, team members go back to their expert departments. Scrum teams are cross-functional and formed for long-term. how do you develop competence and become a subject matter expert?
It is very important for a team to start with a well-balanced competence distribution. T-Shaped, illustrated in figure-1 is an ideal representation of a well-balanced agile cross-functional team. Everyone in an XFT shall do everything is a myth and often mislead the growth and directions of the team.
Shall Team Members Be Generalist?
Software product development (PD) cycle consist of system, design, and test. System is primarily responsible for requirements and modeling. Design is responsible for programming the software and test is for verification and validation. Typically, a product development cycle start with systematization then development and finally test. There is often a little overlap in the scope. The work distribution for every functional group in one PD cycle is not equal. A very wide generalization would be that systems will have 1/3 of workload compare to design.
Enterprise management that is in their early phase of agile transformation often may think most of the agile team members have nothing to do when the PD cycle is heavily in the design phase. At this software development phase, system had almost finalized all models and heavy integration can not start due to modular development. The management wants to utilize every resource as much as possible thus they try to enforce "Everyone shall do everything, it is an agile cross-functional team!". In the long run, such constellation of team forming causes frustration within the team members due to inability to practice SILOs and become a specialist. Also, not everyone likes to do everything.
Figure-1: Agile Cross-Functional Product Development Team's Competence Matrix - an Ideal Scenario
Competence Development Toward Specialist vs. Generalist?
Dynamics of agile XFT teams are dependent on few parameters as followings:
- Engineers' individual development plan (some want to be specialist and some generalist)
- Project managers' requirements (team may join during different PD phase)
- Organizational requirements (enterprise often delegate specific responsibility to smaller sub-organizations)
Which Team Competence Development Model to Take
For agile cross-functional teams' competence development; it is very important to create long-term teams. Newly formed teams must have specialists in every functional block and then progressively grow the team members towards the adjacent functional block. T-Shape structure is an excellent illustration of a well-balanced team. A good starting agile development team formation is to have 2 system engineers, 2 testers, and 4-5 programmers.
Who Is Responsible for Team Competence Development?
Everyone is responsible for their own development. Management must recognize the need of people and allow time and training for the growth. The Scrum master should facilitate and add processes to flourish the agile team.