開發產品就像鐵人三項運動!Facebook技術顧問:用錯方法等於騎單車游泳

2016.07.28 by
張庭瑜
開發產品就像鐵人三項運動!Facebook技術顧問:用錯方法等於騎單車游泳
你會想在鐵人三項比賽中,騎自行車完成游泳項目嗎?答案想必是否定的,甚至你可能認為這個問題很蠢。Facebook技術顧問Kent Beck認為...

你會想在鐵人三項比賽中,騎自行車完成游泳項目嗎?答案想必是否定的,甚至你可能認為這個問題很蠢。Facebook技術顧問Kent Beck認為,產品開發過程其實就像鐵人三項一樣,每個階段需要用的設備、技巧和訓練都不同。

圖說明
(圖說:開發產品就像鐵人三項分成三階段。圖片來源:wikipedia

產品開發三階段:探索、發展、提煉

過去,產品開發大多採用傳統的「瀑布模型(Waterfall Model)」,從定義需求、設計到發布等共分為6個階段,每個階段確認後才能進行到下個階段。雖然各階段工作目標明確,但由於是單向進行,各階段少有反饋,且產品開發成果只能在開發接近完成時才能看出。

美國著名軟體工程師、目前擔任Facebook技術指導的貝克(Kent Beck)則是將產品開發分為三階段,並將此過程比喻成參加鐵人三項。他強調,如同鐵人三項中的游泳、自行車和跑步三階段都需要不同設備、技巧和訓練,不同的產品開發階段也需要不同的工具、技術和價值系統。

探索期(Explore)

在此階段,應從可行的投資項目中,大膽搜尋可帶來報酬的方案。由於無法預期哪樣方案會成功,此階段應盡可能減少實驗成本,將資源分散成多個、彼此無關的小型實驗。夠幸運的話,眾多實驗總有一個會開花結果。

發展期(Expand)

當產品受到市場關注後,可能會迅速竄紅(像Pokémon Go 或 Facebook Live),此時應將所有時間用來解決產品問題,以免之後這些問題回頭過來打擊整體發展。

提煉期(Extract)

一旦產品回歸平穩成長,就進入第三階段。此階段要開始思考如何獲利,例如,如何在新城市推出這些產品,也要考慮經濟規模,用較少的成本提供服務、得到更多利潤。

從鐵人三項學到的事

鐵人三項對軟體開發帶來什麼啟示?貝克指出,構成「好的軟體工程」元素會依階段的不同而改變,例如是否需要測試、團隊大小、功能型團隊還是產品型團隊等。

要特別注意的是,不可以將這些階段混在一起,「就像雖然騎自行車的時速最快,但並不表示騎自行車可以讓你在水裡的移動速度更快」。此外,游泳、自行車、跑步都是不同的獨立項目,每個階段的轉化過程一定會碰到困難,但卻是必經過程。如果專案已進行到下個階段而團隊成員未注意到,那就像試圖在水裡騎自行車前進,不僅用錯方法,也會帶領團隊往錯誤的目標前進。

圖說明
(圖說:和鐵人三項相同,產品開發的不同階段也需要經歷轉換期。圖片來源:wikipedia

正如鐵人三項必須完成三種項目才算完賽,組織也須執行完三階段,才算完成產品開發。不同之處在於,產品開發不需要同一批人完成所有階段,而是按照個人專長分工。例如,擅長探索的人,一旦計畫進入發展階段,應回到探索階段重新發現其他可能。

探索期(游泳)看似很慢,須不斷透過實驗驗證,歷經許多失敗,這個過程不斷重複後,會迎來發展期(騎自行車)的一夕成名,本來需要幾個月的過程,可能幾天甚至是幾小時內就可完成,就像騎腳踏車一定比游泳還快。提煉期(跑步)則會比發展期更艱辛。

這些概念如何實際應用產品開發上呢?貝克有三點建議。第一,如果在提煉期時感到毫無希望或氣力用盡,可先轉換到探索階段。第二,如果在實驗階段遇上瓶頸,應打破規則並加快實驗速度。第三,不論在哪種階段,如果事情發展不順利,檢查是否已經進到下個階段而未自覺。如果是,應調整符合該階段的行事規則。

代表圖來源:Michael Gardner
資料來源:KENT BECK

每日精選科技圈重要消息