what imply cross-functionality exactly for dev team

Last post 04:47 am September 4, 2019
by arvind pal singh
3 replies
Author
Messages
08:18 am September 3, 2019

Hi,

In the scrum guide, there is marked:
Development Teams are cross-functional, with all the skills as a team necessary to create a product Increment;

i don't fully understand what does it imply totally.
Does it mean that people will, during the project, try to take the different skills each, in order to have a more balanced team by the end of the project? 
Anybody could share experience on the cross functionalities on their project please ?

02:51 pm September 3, 2019

I have had teams where everyone on the team was capable of doing any of the work necessary.  I have also had teams where each person had specialized skills that together provided all of the necessary skills to do the work.  And, yes, I have had teams that were a combination of both.  I feel that a cross-functional team is any team that is capable of doing the work necessary in order to produce the valuable end product in increments of usable functionality.  In the end, I leave it up to the self-organizing team to determine if they are cross-functional. 

I don't think that a team of 5 people have to be experts in everything. But all of the skills needed to do the work should be represented across those 5 people. I recommend doing an internet search for "T shaped skills" as it might help you better understand how skills meld together into a cross-functional team.  The goal is to be able to lay each member's "T" on top of all others and have more than 1 vertical bar or a very wide vertical bar on the overlapping model.  No, I don't know how to make that model, I usually just visualize something in my head. 

One more thing, a cross-functional team may find themselves in a situation where there is a skilll needed for a specific unit of work that is not represented on the team.  As a self-organizing team they should be able to either learn the skill or find someone external to their team that they can use as a "consultant" to get the work done.  Problem solving is one of the skills that is absolutely necessary in a cross-functional team.

04:46 am September 4, 2019

Why cross functional ?

  • Basically in agile, tasks belongs to team not to individuals. Idea is to complete the tasks in least possible time (of course keeping quality and DoD in mind).
  • If tasks belongs to an individual and for some reason that individual goes on sick leave or get stuck with some issue then that task too gets stuck. Team's velocity will get impacted too.
  • If tasks are handed off from one technical expert to another technical expert then it will result in loss of some information.
  • There will be situations when tasks for 1 expertise is more than others. If tasks are not 100% independent then people will be in waiting stage for long time.

How to make cross functional ?

In my project we have 3 major different skills for development which are java, angular and technical testers. 

  • Over the time developers spent some time in learning basics of other expertise. After 3-4 sprints developers were able to take care of some low profile tasks of other technology. 
  • Knowing basics of other technology also helped us understanding the fuller context of the tasks giving us more accountability.
  • Developers also practiced pair programming, making sure they knew what is happening in there respective expertise.
  • Also, based on capacity we also did testing, adding test cases to QA tool etc as and when needed.
04:47 am September 4, 2019

Why cross functional ?

  • Basically in agile, tasks belongs to team not to individuals. Idea is to complete the tasks in least possible time (of course keeping quality and DoD in mind).
  • If tasks belongs to an individual and for some reason that individual goes on sick leave or get stuck with some issue then that task too gets stuck. Team's velocity will get impacted too.
  • If tasks are handed off from one technical expert to another technical expert then it will result in loss of some information.
  • There will be situations when tasks for 1 expertise is more than others. If tasks are not 100% independent then people will be in waiting stage for long time.

How to make cross functional ?

In my project we have 3 major different skills for development which are java, angular and technical testers. 

  • Over the time developers spent some time in learning basics of other expertise. After 3-4 sprints developers were able to take care of some low profile tasks of other technology. 
  • Knowing basics of other technology also helped us understanding the fuller context of the tasks giving us more accountability.
  • Developers also practiced pair programming, making sure they knew what is happening in there respective expertise.
  • Also, based on capacity we also did testing, adding test cases to QA tool etc as and when needed.