Friday, June 19, 2020

Agile Asanas: Bus Factor, Broken-Comb Skills and Cross-Functional Teams



Imagine this situation. You are managing a critical project for organization and the constraints for the project are quite tight. During execution, one of the key team members left the project. This team member was working on a very important component! 
  • If you have managed many projects over years, you would have faced such a situation. Do you remember the feeling?
  • Do you remember how frantic the next few days were?

Resource churn is very likely to happen in projects. New people will join the project, existing people will leave or may be transferred to another project. 

People may suddenly fall sick, may take forced leave due personal emergencies or team members may be reduced due to cost related measures or other constraints. These things - some or all - will happen. You can never stop it.

[ To read all posts in Agile Asanas series, use this link. ]



But then, how do you manage such situations?  

This leads us to a concept called bus factor. Let's understand this concept first.


Bus Factor

The bus factor is a numeric number. This number equals the number of team members, who if were to be hit by a bus and hence, will put the project in a serious situation. 

Simplifying, you can say it’s the number of people in a project team who have to be hit by a bus before the project is in a dire situation. 

Let’s say your bus factor is numeric “1”.  It means if just one team member is hit by a bus (just a way of saying, not actually being hit by a bus!), then the project is in trouble. If just one of your team members leaves the project or transfers or takes off, your project will come to a stand-still. 

In other words, with a low bus factor, your project is not really protected. On the other hand, with a high bus factor your project is relatively better. Because with a higher bus factor, your project can survive in spite of multiple team members leaving (or the proverbial being hit by the bus). 

Hence, you can say:
The higher the bus factor for a project, the better.The ideal bus factor equals the number of members in the project team.

There are other names for bus factor, such as lorry factor, truck factor, etc. However, the concept remains the same.

 A team with a bus factor of value “5” is better than a team with a bus factor of value “2”. Hence, for your project, you should try to have a high bus factor. The bus factor cannot be negative.

Related to bus factor, we have another concept called broken-comb skills. With such skilled team members, you can have a high bus factor.


Broken-Comb Skills

The team members in an Agile project should be Generalizing-Specialists, i.e., specialists in a particular skill, but have other skills as well, possibly to a lesser extent.

Team members tend to be highly specialized in waterfall organization, but in agile development, the team size is kept to be reasonable – sometimes just three people. Because of a small team size, you need to have "generalizing specialists". The concept of generalizing specialist translates to a skillset known as T-shaped skills.

Team members should be encouraged to build a T-shaped skill. The vertical side of T (one of the alphabets) represents specialization. The horizontal side of T represents generalization, i.e., have also other skills spread across other areas.

Developers should be encouraged to test, testers should be encouraged to do release activities; however, the specialization for an individual team member is there.

Agile teams should have members with T-shaped skills, rather than I-shaped skills. People with I-shaped skills have deep specialization in one domain, but lack expertise (or interest) in other domains. This is represented in the figure below.


Image Source: Book - I Want To Be An ACP, 2nd Edition

As shown, T-shaped people have deeper understanding in one area or specialists in one area, but have less experience in many others. However, this may not be sufficient in small teams with rapid changes. Hence, in such cases, we need broken-comb skills. With broken-comb skilled people, you have deeper experiences across various disciplines, not just one discipline. In other words, broken-comb people will have various specialization areas, not just one specialization area. This is shown below.


Image Source: Book - I Want To Be An ACP, 2nd Edition

Because they have a large range of skills, you can use them effectively and efficiently compared to T-shaped skills who have very low skill in the generalization area. The other name of it is paint-drip skills.


Cross-Functional Teams
If you have worked in Agile projects, you would be knowing that the team is strongly encouraged to be cross-functional. 

A cross-functional team means that the Team has all the skills needed to get the work done. A cross-functional team means that the development team is no longer made up solely of programmers.

The agile development team consists of all the key players needed to create an increment of working code: coders, testers, analysts, architects, technical writers, and so on. It doesn’t mean that everyone in the team has all the needed skills, but the team - collectively - has the needed skills to get the work done. 

A team member is brought in with a particular skill set. But as the team matures, each one learns more about other tasks and responsibilities. It is possible that the team, initially, may not expertise in some areas and in such cases, but over time, the team should strive to be generalizing specialists


Bringing All Three Together
In fact, to be a good cross-functional team as noted before, the team must consist of people who are generalizing specialists. 

The broken-comb or paint-drip skills add-up to be a better cross-functional team. Because with these skills, the team members are not specialists in one area and generalists in another, but the team members have specializations in multiple areas. 

So, what does it have to do with the Bus Factor that we understood earlier?

Imagine having a cross-functional team with generalizing specialists and broken-comb skills. What will be the bus factor for this team?

If not the ideal value, it will be close to that. Of course, when a team member working on a critical component leaves, there will be some impact, but the feeling won’t be like that of “being hit by a bus” and frantically trying to recover. The team and project will recover very quickly. 

In fact, I would conclude by saying: 
A cross-functional team with team members having paint-drip or broken-comb skills will have high team resiliency and also high project resiliency. This is because the bus factor is near perfect for the team.


References:

[1] Book: I Want To Be A PMI-ACP: The Plain and Simple Way, 2nd Edition, by Satya Narayan Dash

[2] Agile Practice Guide, by Project Management Institute (PMI)



Agile Asanas Series:




No comments:

Post a Comment

Sign- or Log-in and put your name while asking queries in comments. Any comment is welcome - comments, review or criticism. But off-topic, abusive, defamatory comments will be moderated or may be removed.