核心概念#
作者以一個故事開場:太平洋島民從未見過飛機,直到陌生人來到他們的土地上,在「跑道」上起降巨大的機械鳥,帶來了令人難以置信的物質財富。後來陌生人離開了,帶走了他們的財富。島民們渴望恢復好運,於是用當地材料——藤蔓、椰子殼、棕櫚葉——重建了機場、控制塔和設備的仿製品。但飛機沒有來。他們模仿了形式,但沒有掌握內容。人類學家稱之為貨物崇拜(cargo cult)。
而太多時候,我們自己就是那些島民。
貨物崇拜的陷阱#
很容易掉入貨物崇拜的陷阱:投資於容易看見的表面工程,希望能吸引到底層真正有效的魔法。但就像美拉尼西亞的貨物崇拜一樣,用椰子殼做的假機場不能替代真正的東西。
作者親眼見過聲稱在使用 Scrum 的團隊,但仔細檢查後發現他們每週才開一次每日站立會議,四週的迭代經常變成六到八週。他們覺得這沒問題,因為他們用了一個流行的「敏捷」排程工具。他們只投資於表面的工件,彷彿「站立」或「迭代」是某種咒語。
脈絡很重要#
問問自己:為什麼你在使用這個特定的開發方法?或這個框架?或這個測試技術?它真的適合手頭的工作嗎?它對你有效嗎?還是只因為最新的網路成功故事在用它才被採用?
當前有一種趨勢是採用成功公司如 Spotify、Netflix、Stripe、GitLab 等的政策和流程。但考慮一下脈絡:你在同一個市場中嗎?有同樣的約束和機會?類似的專業知識和組織規模?類似的管理和文化?類似的使用者群和需求?
Tip 87 - Do What Works, Not What’s Fashionable(做有效的事,不要跟流行)
你怎麼知道「什麼有效」?你依靠最基本的務實技巧:嘗試它。 用一個小團隊試行這個想法。保留好的部分,丟掉不好的。因為即使是 Spotify 或 Netflix 也沒有在成長期間遵循他們目前的流程,而且幾年後他們會做完全不同的事情。那才是他們真正成功的秘訣。
一體適用不適合任何人#
軟體開發方法論的目的是幫助人們一起工作。如同 Topic 48 The Essence of Agility 所討論的,開發軟體時沒有單一的計畫可以遵循,尤其不是別人在另一家公司想出來的計畫。
許多認證計畫實際上更糟:它們的前提是學生能記住並遵循規則。但那不是你想要的。你需要的是超越現有規則、利用可能性的能力。
相反地,你要從任何特定的方法論中取出最好的部分並加以調適。沒有一種方法適合所有人,現有的方法都遠非完整。
真正的目標#
目標不是「做 Scrum」、「做敏捷」、「做 Lean」或其他什麼。目標是能夠隨時交付給使用者新功能的可工作軟體。不是幾週、幾個月或幾年後,而是現在。
Tip 88 - Deliver When Users Need It(在使用者需要時交付)
如果你的交付週期是以年計,試著縮短到月。從月縮短到週。從四週的 sprint 試試兩週。以此類推。能隨需交付不代表你被迫每天每分鐘都要交付,你在使用者需要時交付,在商業上有意義時交付。
要達成這種持續開發風格,你需要堅實的基礎設施,這正是下一個主題 Topic 51 Pragmatic Starter Kit 所討論的。
過度投資於任何特定的方法論可能讓你對替代方案視而不見。你習慣了它,很快就很難看到其他方式。你已經僵化了,再也無法快速適應。不如用椰子算了。
相關章節#
- Topic 12,曳光彈
- Topic 27,不要超越你的車頭燈
- Topic 48,敏捷的本質
- Topic 49,務實的團隊
- Topic 51,務實的上手工具