敏捷導入的真相
這天 Azure DevOps 課程下課後,又有位學員留下來找我。 事情是這樣的… 他們公司政策規定要導入敏捷和ADO,但上完我的課程後,覺得有點困惑… (我內心OS: 呃? 怎麼會呢? 🤔 你不是應該上完我的課程後豁然開朗的嗎?) 他說,因為公司很多專案還是瀑布式在跑。需求從客戶那邊來的時候,動不動就是三個月、五個月這麼大包的東西。PM 離開技術圈一段時間了,也不知道該怎麼 end-to-end 切出一個迭代(兩周)內可以完成、又有價值的 PBI。 (我一邊聽,一邊想,覺得這是個難題沒錯,但其實最大的挑戰是心理障礙和習慣,因此…) 我跟他說:「其實把需求顆粒度切小,對每個人都有好處。對 PM、對客戶、對開發人員,全是利多。」 他笑的很無奈。 「這道理我可以理解,但我們的開發人員同時身兼好幾個專案,很難專注在某一個案子上。這時候,大家心態上就不想把顆粒度切小,因為怕時時刻刻被盯著要看進度。」 他停頓了一下,接著說:「所以開發人員寧願維持以前那樣一個功能做一個月、兩個月的顆粒度。這樣開發人員可以先去忙別的事情,最後幾天再來趕工。」 聽完,換我沉默想了幾秒。 因為這根本不是技術問題,也不是工具問題。這是整個組織的心態問題。 更深層的,是大家對「敏捷」的誤解。 很多人以為敏捷就是迭代、就是 Scrum、就是看板或站立會議。 但其實,真正的敏捷有一個很明顯的照妖鏡: 需求的顆粒度 。 沒有小的需求顆粒度,就沒有頻繁交付;沒有頻繁交付,就沒有敏捷。 我幾乎可以說,如果團隊無法把需求顆粒度變小,那敏捷導入十之八九是假的。 粗顆粒度的惡性循環 你在 Board(看板) 上看過那種預估要做三、五週的需求卡片嗎? 「完成訂單管理功能」(預估五週) 「優化報表系統」(預估三週) 「整合第三方金流」(預估兩週) 每次看到這種,我就知道這個團隊有問題。 為什麼?因為一個需求如果要做兩週,在這兩週裡,這張卡片的狀態是什麼?「In Progress」? 但 In Progress 告訴了我們什麼?什麼都沒有。你不知道他做到哪裡了,可能才剛開始,也可能快做完了,也可能卡住了但不好意思說。 更慘的是,開發者在自己的 branch 上悶著頭寫了兩、三週的程式碼。等到要 merge 的時候,衝突、錯誤、邏輯不一致,問題才一個一個冒出來。然後就是...