軟體開發 - 什麼是巴士因子

巴士因子(Bus factor)一詞起源於西班牙建築大師安東尼·高第(Antoni Gaudí)的事故。高第是20世紀初最具創新精神的建築師之一,他的代表作包括巴塞羅那的聖家堂、古埃爾公園等。

在 1926 年,高第在前往聖家堂的路上,被一輛電車撞倒,最終因傷重不治。而他的離世對聖家堂的建設產生了巨大影響,因為高第是該專案的靈魂人物,很多設計細節只存在於他的腦海中,沒有人知道。
高第的不幸遭遇,啟發人們思考團隊中關鍵人物的重要性。如果一個團隊過度依賴某個人,一旦這個人因意外或其他原因無法繼續工作,整個團隊的運作就會受到嚴重影響。

而「巴士因子」這個概念最早可追朔的記載是 Michael McLay 公開詢問:

如果 Guido van Rossum 被巴士撞到,那 Python 程式語言會發生什麼事?

至此,「巴士因子」這個概念進入了軟體開發領域,用來衡量一個團隊的風險和穩定性。

巴士因子在軟體開發的應用

在軟體開發中,巴士因子指的是「讓一個專案停擺所需要的關鍵開發人員的最小數量」。image 1

比方說,某個軟體專案的巴士因子為 1,意味著只要 1 位關鍵開發者請假、離職或是意外身亡(被巴士撞到),該專案就可能停擺。
巴士因子數值越小,專案風險越高。設想有個重要專案,只有 1~2 位工程師熟悉核心邏輯,若這些人突然無法工作,專案勢必停擺、延宕。
不僅影響軟體品質,也可能導致客戶流失、公司聲譽受損。

那麼,以下是提高巴士因子,降低專案風險的一些常見方法:

  • 團隊成員互相培訓,減少知識壟斷
  • 養成撰寫技術文件的習慣,方便他人快速上手
  • 實施 Code Review,讓更多人熟悉程式碼
  • 定期輪調工作,避免關鍵技能被壟斷
  • 適度引入新血,儲備關鍵人才

結語

高第的故事啟示我們,即使是最有天賦的人,也不能成為團隊的單點依賴。
一個健康的團隊,應該能夠在關鍵成員離開後仍然維持運作。

這需要通過知識共享、交叉培訓、文件管理等手段來實現。

高第的遭遇也提醒我們,在追求個人卓越的同時,不要忽視團隊的可持續發展。
一個偉大的建築,不能只依賴一個天才建築師,而應該有一個強大的團隊來支撐。這樣,即使面對意外的打擊,專案也能夠繼續向前。

參考

也許你也會想看看