產品開發鐵人三項 - Kent Beck

banq發表於2020-10-07

這是2016年7月19日釋出的原始版本重新發布。
2016年3月25日。那些天我一直在認真記筆記,所以我可以確定出二十年前問題的確切時機:如果那些堅持瀑布方法的人沒錯怎麼辦,如果他們正在解決不同於我的問題怎麼辦?在解決嗎?那是什麼問題?
在過去的四個月中,我的生活令人難以置信。我改變了我對待軟體開發的方式,但也改變了整個生活。不同的風險狀況需要不同的方法,但是有時我可以選擇在某種情況下使用哪種風險狀況。
 

探索/擴充套件/提取
產品開發分三個階段進行:

  1. 探索-冒險尋找可行投資的可行回報。成功的勘探是無法預測的,因此,最高期望值的策略是降低實驗成本,併為許多不相關的實驗投入少量資金。如果幸運的話,這些實驗之一證明是出乎意料的成功,從而導致:
  2. 擴充套件-現在一切都變糟了(例如Pokemon Go或Facebook Live Video)。出現意外的瓶頸。您所擁有的全部時間就是消除在您出軌之前的下一個瓶頸。一旦增長成為常規,就該:
  3. 提取-現在問題的形狀和解決方案的空間都清晰了。工具書應運而生:這是您在新城市中推出該服務的方式。規模經濟很重要:以較低的成本提供服務更有利可圖。

這個模型隱含著好幾個小時,但這是基礎。
 

鐵人三項的教訓

  • 每個階段需要不同的裝置,不同的技術,不同的培訓。軟體產品開發在三個階段需要不同的工具,技術和價值體系。(我筆記本中的答案是“有效提取”。)
  • 您無法混合各個階段。僅僅因為騎腳踏車是每小時公里數中最快的階段,並不意味著您可以將腳踏車在水裡騎更快。(就在昨天,我正在處理一個從探索到擴充套件的過早專案。)
  • 過渡很尷尬,但是很重要。如果一個專案從一個階段發展到另一個階段,而團隊卻沒有注意到,那就像試圖騎腳踏車游泳一樣。不太好。
  • 只有可以執行所有三個階段的組織才能完成比賽。如果您只是不想跑步,那就不是鐵人三項。
  • 與鐵人三項不同,同一個人不必完成各個階段。我專注於探索。擴充套件開始後,我準備再次開始探索。只要有人可以交給我,它就可以正常工作。
  • 這三個階段的相對進度大致對應。探索(游泳)似乎很慢。實驗失敗。錯誤的希望破滅了。反覆。然後是擴充套件(騎腳踏車)的“過夜成功”。這將需要花費數月的進展,現在發生在數天或數小時,就像騎腳踏車一英里的路不到一英里的游泳短。提取(執行)更多地是擴充套件而不是擴充套件。
  • ??? [希望從實際的鐵人三項運動員或詩人那裡獲得建議]

 

應用
一些要點:

  • 選擇探索。如果您正在提取並且開始感到絕望或精疲力盡,請故意切換到探索。
  • 加速實驗。如果您遵循所有規則,而實驗卻一無所獲,請打破規則以加快實驗速度。如果實驗不可能持續下去,那麼從長遠來看,快速簡便不會花費您。
  • 過渡。如果事情進展不順利,請檢視是否已更改階段而沒有注意到。如果是這樣,請更改規則以匹配您所在的階段。

我才四個月,所以我相信還會有更多。


 

相關文章