Фактор автобуса

Фактор автобуса (англ. bus factor; также фактор лотереи[1], фактор грузовика[2], или фактор цирка[3]) — количественная оценка риска, связанного с тем, что информация и ключевые компетенции не распределены между участниками команды, происходящая от выражения «если его собьёт автобус».

Концепция близка к идее риска для ключевого сотрудника, но основное внимание уделяет техническим экспертам, а не финансовым или административным руководителям (которых, теоретически, можно заменить за разумную сумму). Для влияния на фактор автобуса сотрудник должен быть одновременно ключевым и незаменимым; утрата заменяемого либо не ключевого работника не влияет на этот показатель.

Термин впервые стал использоваться в разработке программного обеспечения, где член команды мог создавать важнейшие компоненты, которые были недоступны остальным: например, если работа была не задокументирована, не передавалась, зашифрована, обфусцирована или оставалась в виде трайбального знания. В результате, потеря такого члена команды означала потерю его знаний и остановку проекта, если без них невозможно было продолжать работу.

Определение

Фактор автобуса — это минимальное число членов команды, внезапная потеря которых приведёт к остановке работы над проектом из-за нехватки знающих или компетентных специалистов.

Фраза «сбит автобусом» описывает ситуацию, когда человек либо погиб, либо по какой-то причине внезапно исчезает из проекта. Это тёмный юмористический термин для гипотетического обсуждения подобных потерь. На самом деле речь может идти о любых событиях, препятствующих внезапному и существенному участию человека в работе над проектом: уход на другую работу, декретный отпуск, смена образа жизни и др.

Например, если команда из 30 человек производит хлеб, проходя три важных шага: смешивание ингредиентов, замес теста и выпечка, при этом 10 знают, как смешивать ингредиенты, все 30 — как месить тесто, а только 5 — как выпекать. Если все 5 специалистов по выпечке покинут коллектив, хлеб выпускать будет некому, а фактор автобуса всей команды равен 5. Если фактор автобуса равен единице — это единственная точка отказа.

История

Один из первых публичных примеров этой проблематики — когда Майкл МакЛей в 1994 году задался вопросом, что будет с языком Python, если Гвидо ван Россум окажется вне проекта[4].

Понятие «фактора грузовика» обсуждалось уже в книге Organizational Patterns (2004)[5], которая являлась развитием идей, опубликованных в первом томе серии Pattern Languages of Program Design (1995)[6], основанном на материалах первой конференции Pattern Languages of Programs в августе 1994 года, где этот термин применялся в шаблонах вроде Solo Virtuoso[7]. В 1998 году термин был также применён в области психического здоровья для описания аналогичного риска[8]. В инженерии концепция встречается к 2003 году[9], а в проекте Debian — в 2005 году[10].

Исследования, проведённые в 2015—2016 годах, вычислили фактор автобуса/грузовика у 133 популярных проектов на GitHub. Оказалось, что большинство систем имеют низкий фактор автобуса (65 % имеют значение ≤ 2), а показатель превышает 10 менее чем у 10 % систем[11][12].

Термин используется главным образом в управлении бизнесом и особенно в сфере разработки ПО.

Повышение фактора автобуса

Во многих проектах разработки программного обеспечения одной из задач становится расширение обмена знаниями с целью повышения фактора автобуса — вплоть до всей команды. Хорошее значение фактор автобуса означает, что многие специалисты достаточно осведомлены, чтобы продолжить проект даже при неблагоприятных обстоятельствах[13].

Для повышения фактора автобуса предлагаются следующие меры:

  • Снижение сложности[14],
  • Полное документирование всех процессов и поддержание документации в актуальном состоянии[14],
  • Поощрение перекрёстного обучения внутри команды[14].

Примечания

  1. Adler, Adler Reducing the Lottery Factor, for Data Teams (англ.). Locally Optimistic (4 апреля 2023). Дата обращения: 10 декабря 2024. Архивировано 4 апреля 2023 года.
  2. Bowler, Michael Truck Factor (англ.). Agile Advice (15 мая 2005). Дата обращения: 9 апреля 2014. Архивировано 29 апреля 2021 года.
  3. Bernard, Mercedes RubyConf 2021 - Minimize Your Circus Factor: Building resilient teams by Mercedes Bernard (англ.). devconf.net. Дата обращения: 8 октября 2024. Архивировано 1 декабря 2024 года.
  4. McLay, Michael If Guido was hit by a bus? Список рассылки (29 июня 1994).
  5. Coplien, James. Organizational patterns of agile software development / James Coplien, Neil Harrison. — Wiley, 26 июля 2004.
  6. Coplien, James. Chapter 13, A Generative Development-Process Pattern Language // Pattern Languages of Program Design / James Coplien, Douglas Schmidt. — Addison Wesley, 12 мая 1995.
  7. Coplien, James Internal proceedings of PLoP 1994. unpublished. (4 августа 1994). Дата обращения: 12 сентября 2014. Архивировано 12 сентября 2014 года.
  8. Simon, Robert. The Mental Health Practitioner and the Law: A Comprehensive Handbook. — Harvard University Press, 17 мая 1998. — P. 69. — ISBN 0-674-69721-9.
  9. Redmond, Matthew C.; Newton, Paul Integrating GIS in the Engineering, Planning and Design Processes (2003). Архивировано 12 марта 2012 года.
  10. Reinholdtsen, Petter Re: Resignation and uploads. Список рассылки (11 ноября 2005).
  11. Avelino, Guilherme; Valente, Marco Tulio; Hora, Andre (10 сентября 2015). “What is the Truck Factor of popular GitHub applications? A first assessment”. PeerJ Preprints [англ.]. DOI:10.7287/peerj.preprints.1233v3. Архивировано из оригинала 8 декабря 2015. Дата обращения 4 декабря 2015. Используется устаревший параметр |url-status= (справка)
  12. Avelino, Guilherme. A novel approach for estimating Truck Factors // 2016 IEEE 24th International Conference on Program Comprehension (ICPC) / Guilherme Avelino, Leonardo Passos, Andre Hora … [и др.]. — 2016. — P. 1–10. — ISBN 978-1-5090-1428-6. — doi:10.1109/ICPC.2016.7503718.
  13. Джеймс Коплиен, Pair Programming Illuminated. Цитата: «Сколько человек нужно, чтобы их сбил грузовик (или чтобы они уволились), чтобы проект остановился?»
  14. 1 2 3 Increasing your team's bus factor (англ.) (3 сентября 2008). Дата обращения: 4 декабря 2015. Архивировано 16 апреля 2016 года.

Литература

  • Микеле Маркези, Джанкарло Суччи, Дон Уэллс, Джеймс Донован Уэллс, Лори Уильямс. Extreme Programming Perspectives. — Boston u. a. : Addison-Wesley, 2003. — ISBN 0-201-77005-9.
  • Лори Уильямс, Роберт Кесслер. Pair Programming Illuminated : [англ.]. — Boston u. a. : Addison-Wesley, 2002. — ISBN 0-201-74576-3.
  • Кент Бек. Extreme Programming. Das Manifest : [нем.]. — s. l. : Addison-Wesley, 2000. — ISBN 3-8273-2139-5.