身為敏捷教練;可能一輩子都會不停地在尋找能夠讓敏捷更加敏捷的方法(它可能就是我這輩子的無限賽局了)。其實可以推廣的理念很多,例如 Dan North 的刻意發現(Deliberate Discovery),就是一個讓敏捷開發更早開始的好概念。應該算是團隊在開始開發行為之前的前置處理動作吧。這種讓開發者在還沒開始動手之前就能先加強相關domain knowhow的做法(增進開發專案的相關知識),對即將到來的開發作業一定會有著某種程度上的幫助的(與prototype 或MVP應該有著一樣的貢獻)。波士頓諮詢公司BCG的「假說思考」在某種形式上也算是一個前置思考的方法,但要更讓人驚艷。

我們習慣的思考方式
一般人在面對問題的時候,都會採取先搜集、分析資訊再做決策。也就是依據戴明博士的 PDCA循環(註1)做解題的動作。這樣做的結果往往容易花費大量的時間在做資料蒐集(尤其是在現今資訊過量的時代),卻未能及時的拿出解決問題的策略(敏捷化的團隊則是在收集了部分足夠開工的資訊後就啟動Sprint,這種啟動方式避免了過度分析資料的做法。說起來是一種快速啟動作業的開發方式)。但其實;在這個資訊爆炸的時代「捨棄資訊比搜集資訊更重要」。因此而衍生出來一種更快速的解題模式,它的做法是先構建假說,並在向前推進工作的同時,對假說加以驗證,然後持續探索解決策略。這是一種既科學又符合敏捷精神的作法;這種方式就稱為「假說思考」方式。
在VUCA的時代下,未來是多變、不確定的,因此無論多大規模的企業,都需要應對未來的一切變化。所以,應該培養並持續累積顧問式的經驗法則,如此便能在遭遇問題時立即(先)做假設,以快速的回應來爭去時效。這對任何企業的管理者來說,藉由累積的經驗來掌握假說思考方法都是至關重要的。
假說(hypothesis):未經證明而最接近答案的解答。
–內田和成
假說思考: 就是先做假設,然後再去驗證它的對錯,藉此避免過度蒐集資訊,而浪費太多時間在做分析上。它是以結論為起點的一種思考模式。 從右腦大膽假設,再交由左腦細心求證。可分成二個先後階段: 首先藉由假說找到真正的課題。再續用假說尋求解決課題的最佳答案或最適決策。

首先要有假説 – 第一條法則: 捨棄資訊比搜集資訊更重要
提出假説的好處是能加速解決問題的速度,而且能避免一開始就陷入資訊洪流中,藉著思考描繪問題框架(避免一開始就Google!)。有經驗的顧問們通常都能見微知著,從簡單的細節看出問題的模式(pattern),然後提出假説並釐清問題解決流程。不過就算是新手,也別害怕提出假説,一旦發現錯誤了,只要能心平氣和地修正就好,千萬不要死守假説或不必要的資訊。最後要相信,對顧問而言;假説能力遠比分析能力更重要,因為唯有能提出解決方案的人才能成為顧問因而立足商場,如果過度重視分析能力而身陷資料流沙中,便無法幫助企業解決問題。
在目標確定之後,透過大家Brain Storming ,列出種種假設,然後挑選最被看好的幾個依序去分析它們,再去驗證它們,如果錯了就換下一個來做,發現對了就挖到寶了,這麼做;怎麼說都比全部去分析、驗證要划得來許多,省下不少時間。是先快速做假設,看起來很盲目但其實對於一開始我燜面對無知的探討實在是很科學,能快速的過濾多做假設所造成的雜訊,也提升了許多效能。
避免窮盡分析 – 網羅思考
網羅思考vs假説思考。網羅思考就如同人機對弈時AlphaGo所採用的窮盡分析法,每下一步棋,電腦就得將所有的可能性都分析一遍,強調決策一定要基於完整的資訊和分析角度。這在超級電腦上或許行得通,但在瞬息萬變的商業市場上則是行不通的,一方面商業發展的可能性無窮無盡,另一方面它變化快速,而網羅思考耗時耗力,是無法滿足即時分析的需求而快速的產生解決方案的。
假說思考讓敏捷更加敏捷
假說思考的特色是;於一開始就從事物全貌切入,再來思考如何解決個別問題。這一點與敏捷強調以小增量、多迭代與尋求回饋的方式十分相似。敏捷避開了傳統開發法在前置分析上的時間浪費。但這麼做只縮小了在開發量上資源的浪費,並未減少需要收集資訊量的大小,若是再加上預做假說的思考模式,就可以大量減少資訊收集的範疇(對系統思維System Thinking而言;就是先運用假設來縮小系統的邊界),而在分析、求證上只針對該假設的範疇來進行,在時間上更符合小增量、多迭代的思維,然後在透過驗證假設是否正確的嘗試得到實質上的回饋。做為新假說的依據。所以說;假說思考的方式能讓敏捷更加敏捷,也更能聚焦在一個基於假說上的小增量上頭。也更符合科學精神。
假說思考是來自波士頓諮詢公司BCG的策略思維方法。(請參考内田和成所著的《假說思考:培養邊做邊學的能力,讓你迅速解決問題》,原著標題是The BCG Way—The Art of Hypothesis-driven Management) 是一種思維模式也是一種顧問需要養成的習慣。就是在解題時從資訊還相當有限的初期階段起,就不斷思考問題全貌與結論的方法。先做假說;這麼做可以有效的減少需要考慮的系統範圍,一旦系統範圍縮小了,就能讓我們更專注在小事件的驗證上,小範圍能便於快速的進行驗證,又能以逐步釐清的方式去看見問題事件的全貌。它符合敏捷開發小增量的核心觀念,讓我們專注的聚焦於小的驗證上頭,逐步去釐清問題的看見它的全貌。
要了解自己的第一步,就是做出一個決定 ;然後去質疑自己關於自己的種種預設,去積極考證我們在別人眼裡的樣子,去帶著一種積極的思維和接納自我的態度去追求真實。
-《深度洞察力》,TASHA EURICH
傳統思維 vs 假說思維 的敏捷性
傳統開發法是認為仔細的分析後就能按部就班地完成專案。相對的;敏捷開發追求邊做邊學,再蒐集足夠開工的資訊時就快速的開工,以應對變化為常態的一種開發方式,進行方法是衝刺(sprint,全力邁進)的小增量、多迭代與尋求回饋的開發作業。傳統對問題的思考模式是認為資訊收集的越多,就越能確保決策會越正確。假說思考法則認為: 捨棄資訊比搜集資訊更重要。運用假說來縮小驗證的範圍,迅速的邁入求解的途徑。
假說思考的好處
1. 解決問題的速度倍增: 以答案為起點的做法,讓該做什麼變得清楚分明。
2. 能夠累積出解題的路徑,有效的「定位問題」: 如果在遇到問題的同時,就能夠在心裡建立「暫時的解答」,便可以很快的去「驗證這個暫時的解答是否正確」。
3. 假說無論對錯,驗證完後(對/錯), 都能夠讓下⼀步更清晰 : 如果目前假說是對的,可以深入分析,並試圖提出可能的解決方案。如果發現假說不對,便可以快速的換到下一個假說去驗證它。
4. 可以有效累績、運用過去的經驗 :「假說」是基於現有知識的最佳解,因此隨著你對於問題的相關領域的了解越來越深,或是日積月累解決問題的經驗越來越豐富,很有可能在一開始就提出了正確的假說。因此假說暫解是善用及累積經驗的好方法。
以假說(設)為基礎的思考方式,是一種以最短時間有效達成目標的方法。
小結
敏捷開發Agile development不是一種快速的開發方法,它是應對需求多變的一種開發方法。目的是避免軟體在專案前期花費太多時間進行分析、文件製作的工作上,而在遇到變化時反而因為依循計畫而失去彈性的缺失。波士頓諮詢公司BCG的「假說思考」則更進一步的依據工作者的經驗先進行假說,有效的縮小了問題系統的開發範籌,雖然它是顧問公司所用的一種快速取樣驗證的手法,但在搭配以敏捷化的小增量、多迭代與尋求回饋的增量,就更能展現出它的效益了,也更能符合多變的VUCA時代的問題特徵。
假說思考法是一種顧問的策略模式。是一種吻合科學實驗的方法(若是你沒先做好假設就開始做實驗,當取得實驗數據時;反而會不知如何去詮釋)。它以為在問題出現的前期,即提出假説的好處是能加速解決問題的速度,而且能避免一開始就陷入在資訊洪流因為吸收過多訊息而造成分析上的時間浪費。這是一種基於捨棄資訊比搜集資訊更重要的實際行動。核心觀念是遇到問題時,先「想」或猜(依據經驗而來)有什麼可行的解法,接著再進行數據的收集與分析驗證。也就是所謂的「大膽假設、小心求證」的科學實驗精神。這與我們一般在做策略規劃的流程: 先分析再設定目標然後擬定對策的正規思考方式不同(1.現況、2.目標、3.分析、4. 擬定策略、5.資源投入與建議的五步驟解題流程)。假說思考法是直接跳到最後一步(步驟五、資源投入與建議)上,依靠顧問的直覺與經驗快速的給予解題建議。但它是一種暫時性的答案,還需要驗證,透過驗證才能確認問題的全貌與結論。
《假說思考法》作者內田和成在書裡的定義;所謂「假說」,是指在蒐集資料過程、著手分析之前先做的「暫時性答案」。「假說思考」可說是一種思維模式或是習慣,從資訊還相當有限的階段起,就不斷思考問題全貌與結論。換句話說;是一種刻意發現。 換言之,假說思考法的精髓在於”假設可能的答案”,而這個答案可能是整體問題的答案,特定步驟的答案或是支援論點數據的答案,而它只是一個”暫時的答案”。所以問題來了,如何進行此假設,或是如何提升假設的準確度與深度呢?這便是顧問公司所擁有的實力與經驗了。也就是我們常常聽到的麥肯錫顧問公司Mckinsey或波士頓顧問公司BCG這類的顧問公司,在為客戶提案之前早已完成了”70%的結果”,而這七成的結果其實就是從經驗或過往案例所推演出來的假說結果。說穿了就是依靠顧問們在實戰經驗中累積下來的相關經驗,正是敏捷開發中所謂的經驗主義下的快速產物了。
解決方案先行
所有的客戶都急切的想從顧問口中聽到解決方案,為了有效地說服客戶,我們花費大量精力去尋找合適的資料,繪製複雜的表格,製作大量的PPT,為的是用精準的數據來打動聽者。但這種方法並不怎麼有效,我們的溝通對象根本沒有時間和耐心來聽枯燥的報告,他們需要的是解決方案,而且立刻就想知道!因此假說思考法便顯得如此可貴。因此要持續累積經驗形成模式(pattern)才不會讓我們弄巧成拙。就如《極簡思考》作者Mike Ferriolo所言(註3. 推廣結構化思維);假設是一種實驗性的、可在未來分析中做進一步測試的觀察、現象或疑問。在結構化思維過程中,假設是你在第一步中為問題找到的答案,你之後將以它為核心進行分析,從而將其證明或推翻。不要擔心,在你把方案徹底想好前,你無須將結論與任何利益相關人分享,一些利益相關人直到你做完了全部論證才能看到你的想法。跟科學實驗相同,實驗室的初步假設往往與事實有著巨大的差異,但最終你卻端出了極具價值的原理。請記住,當你埋首於分析的時候,你並不能創造任何價值。
假說先行的思考方式;對於專案負責人PO或資料分析團隊Data Team而言,都是一種先定位後驗證的科學式思維。運用系統思維的說法是一種能讓我們面對眾多的選擇中縮減範圍畫出系統邊界再求證的做法。對專案負責人PO而言,在面對龐大的產品需求時,可以大膽的假設客戶只需要這些足夠的需求,就能接受我們的產品並感到滿意。因此而勇敢的排除了那些次要的功能,選擇依據假設先完成部分的功能,讓開發時間變得簡短了。然後在以客戶的回饋作為驗證,修正假設。若假設是不符合客戶的期望,再修正假設決定是那些功能需要既須開發來滿足假設。對於資料分析團隊言,則可以先鎖定假設,不致於被蒐集到的龐大資料所迷惑,以至於難以做成分析結論。並在持續收集到的資訊中驗證假設是否正確,並持續的修正假設來獲取結論。
註1. 戴明博士的PDCA 循環;是針對品質工作按規劃、執行、查核與行動來進行活動,以確保可靠度目標之達成,並進而促使品質持續改善。這個過程也被人們熟知為:Plan-Do-Study-Act(PDSA)。是企業界早已普遍運用的一套「目標管理」流程,透過規劃Plan、執行Do、查核Check、行動Act四階段,確保每次的目標都能達成。
註2. 假說;Hypothesis。亦可翻譯成假設,但是為了符合原著上的翻譯,這裡一律採用假說一詞。
註3. 《極簡思考》by Mike Ferriolo, 迈克·费廖洛。書中闡述的極簡思考法: 結構化思考。結構化思考是被假設驅動的,出於以下幾個原因。這個方法可更快地找出一個答案。你的假設將確定你論證所需要獲取的資訊,並指出哪些資訊與你最終的結論無關,以此能減少你花在無用分析上的時間。假設能讓你以事實為依據去找尋結論,也能讓你有能力找到事實來證明或推翻它。如果你推翻它,你將進入優化反覆運算的過程,直到找到一個可以證明為“真”的建議。你的假設越簡潔,其他人就越有可能理解你的回答和建議。
註4. 如何選擇一個正確的假設?
