重點摘要#

  • 每個軟體專案都會有比預期更多的問題,而這些問題往往在早期就被識別出來
  • 團隊中的少數人可能早已發現問題,但多數人會忽視或低估,直到為時已晚
  • 多種力量阻礙問題的及時處理:樂觀偏見、團隊盲點、個人阻力
  • 建立系統化的風險追蹤機制,從討論中移除情緒因素

詳細內容#

作者在數百個軟體專案中工作過,每一個都有超出團隊預期的問題。通常,團隊中的一小部分人早期就識別出了問題,但多數人要嘛忽視它,要嘛因為不了解其重要性而不在意,直到為時已晚。

阻礙問題處理的力量#

  • 溫水煮蛙效應:在專案早期看似微不足道的問題,在來不及修復時才變得嚴重
  • 個人阻力:當團隊其他人不分享自己的經驗或知識時,個人要克服這種阻力需要非凡的勇氣、信心和說服力
  • 樂觀偏見:大多數軟體開發人員都是樂觀主義者。開發團隊中的天生悲觀主義者往往不受歡迎,即使他們始終是對的
  • 視角差異:每個團隊成員對什麼重要有不同的看法,他們的關注點往往集中在個人職責而非專案目標
  • 盲點:我們都有難以辨識或接受的盲點

對策#

以下策略可以幫助對抗這些力量:

  • 建立系統化的風險追蹤:用追蹤 bug 的方式追蹤風險。任何人都可以識別風險,每個風險都被追蹤直到不再是風險。定期檢視和重新評估,從討論中移除情緒因素
  • 幫助少數派被理解:當與多數意見相左時,尋找方法讓團隊更容易理解你的觀點。鼓勵團隊認可異議意見的價值
  • 重視「壞味道」:如果事實還不充分,尋找最簡單的測試來提供事實依據
  • 持續驗證理解:不斷用團隊和客戶來檢驗你的理解。優先排序的使用者故事列表有幫助,但無法替代與客戶的定期溝通和開放心態
  • 信任坦誠的人:能在你需要時告訴你殘酷真相的人是寶貴的資源

盲點之所以叫盲點,就是因為它們很難被自己辨識出來。找到你信任的人,讓他們在你需要時告訴你真相。

— By Dave Quick