part b02 a段架構師-創新思維_twok
TRANSCRIPT
基於軟硬整合觀點
By By 高煥堂高煥堂 [email protected] [email protected]
海峽兩岸海峽兩岸智慧電視智慧電視&&家庭商業策略與技術論壇家庭商業策略與技術論壇http://home-cloud.blogspot.tw/http://home-cloud.blogspot.tw/
A段架構師:創新思維
內容內容
1. 溯因推理與創造性2. 溯因推理基本觀念3. 孔明的溯因推理範例4. A段架構設計5. ”假定-否證”= 刪除法6. 麥肯錫公司的商業應用
基於軟硬整合觀點
11、、溯因推理與創造性溯因推理與創造性
★ 溯因(Abductive)推理是去猜測現象的可能原因,具有高度靈活性,是具創造性的推理方法。
溯因推理是除了演繹推理、歸納推理之外的第三種邏輯推理方法
★ 溯因邏輯是<假定-否證>的邏輯,透過檢 驗方式,發現走不通的路,就刪除之(減
法) 。 ★ 熟悉溯因思考,就能擁有諸葛亮(孔明)的 高度創意(如三分天下和空城計) 。★ 熟悉溯因思考,就像麥肯錫公司一樣,展 現高度的商業價值。
演繹邏輯
命題
結論
溯因邏輯
命題
結論
假定
高老師的創新
基於軟硬整合觀點
22、、溯因推理基本觀念
• 溯因推理是由觀察現象(結果)到原因的猜測推導過程,沿著現象的特徵往回追溯產生該現象之原因。
• 運用這種方法去猜測現象的可能原因,受邏輯規則制約的程度較小,具有高度的靈活性,是一種頗具創造性的推理方法。
創造性的推理
演繹推理
• 推理R:停在斑馬線上的車子都會被開罰單 P:這些車子停在斑馬線 (已知) Q:這些車子都會被開罰單 (結論)
• 推理R:敏捷(Agile)開發將細節設計轉移到開發階段,開發者都要做設計
P:A公司採取敏捷開發 (已知) Q:A公司的開發者都做設計 (結論)
• A公司的開發者都需要設計思維和技能• A公司的開發者都需要看設計的書籍
延伸性推論
P:這些車子都停在斑馬線上 Q:這些車子都被開了罰單
• (可能性)推理R:停在斑馬線上的車子都會被開罰單
歸納推理
P:農夫天天挑水澆花, 又捨不得傷害花(摘花去賣)
Q:農夫成為大富翁 • (可能性)推理R:心境好的人(農夫)可成為 大富翁
P:許多廠商生產智慧手機配件 Q:這些廠商都賺錢 • (可能性)推理R:智慧手機的配件市場 生意熱絡
• 智慧電視的配件市場將蓬勃發展 • 小米公司可以靠STB配件市場取勝
延伸性推論
Q:這些車子都被開了罰單• (假定性)推理H:停在斑馬線上的車子都會
被開罰單• (可能性)P:這些車子都停在斑馬線上
溯因推理
Q:許多病人得天花 • (假定性)推理H:感染A病毒會得天花• (可能性)P:這些病人都感染A病毒
溯因邏輯
得天花 感染A病毒會得天花
A病毒感染
Q:養乳牛的村莊裡許多人沒得天花
• (假定性)推理H:擠牛乳的人一旦感染了 牛痘,就會對天花產生免疫性。 • (可能性)P:感染過牛痘的人,不會再感染 天花。
• 在這個溯因推理方法中,假定性推理(Hypothesis)的內容就是:若P(車子停在斑馬線上),則Q(車子會被開罰單)。
• 一般而言,要去正面性實證這項假定性推理,可能大費周章;然而,卻能輕易地從反面去”否證”它。
否證
• 剛才說過,這個假定性推理的內容就是:<若P則Q>。當這個<若P則Q>是真時,就表示<若~Q則~P>的推理也是真。
• 基於Q是已知的事實,我們可以觀察~Q的現象,然後從中尋覓其中之一是P原因所產生的結果。只要找到其中之一,就足以否證了這項假定性推理。這也就是俗稱的”假定-否證”思維方法。
溯因邏輯
得天花 感染A病毒會得天花
A病毒感染
非A病毒感染
• 從得天花病人發現是非A病毒感染,• 或醫生給A病毒的藥而發現無效。
• 例如,P: 停在斑馬線上的車子,發現了其中一輛或多輛車子沒被罰(~Q),就否定掉該項假定性推理了。
• 為了更通俗易懂起見,剛才的溯因推理範例,可以簡化如下:
(假定性)推理H:車子停在斑馬線上都會被開罰單。
否證:停在斑馬線上的車子,發現了其中一輛或多輛車子沒被罰,這可以更簡單地表現出”假定-否證”的思維。
基於軟硬整合觀點
33、、孔明的溯因推理範例孔明的溯因推理範例
前言
• 在這個溯因推理方法中,假定性推理(Hypothesis)的內容就是:若P(車子停在斑馬線上),則Q(車子會被開罰單)。
• 一般而言,要去正面性實證這項假定性推理,可能大費周章;然而,卻能輕易地從反面去”否證”它。
否證
• 剛才說過,這個假定性推理的內容就是:<若P則Q>。當這個<若P則Q>是真時,就表示<若~Q則~P>的推理也是真。
• 基於Q是已知的事實,我們可以觀察~Q的現象,然後從中尋覓其中之一是P原因所產生的結果。只要找到其中之一,就足以否證了這項假定性推理。這也就是俗稱的”假定-否證”思維方法。
Q:養乳牛的村莊裡許多人沒得天花
舉例
• (假定性)推理H:擠牛乳的人一旦感染了 牛痘,就會對天花產生免疫性。 • (可能性)P:感染過牛痘的人,不會再感染 天花。
溯因邏輯
天花免疫 得過牛痘有天花免疫力
得牛痘
Q
P
• 觀察~Q的現象,然後從中尋覓其中之一是P原因所產生的結果。
輕易地去”否證”它
溯因邏輯
天花免疫 得過牛痘有天花免疫力
得牛痘
~Q
P
得天花
天花免疫
Q
得過牛痘有天花免疫力
天花免疫
Q H
溯因邏輯
得牛痘
P
得過牛痘有天花免疫力
天花免疫
Q H
溯因邏輯
得牛痘
P
得過牛痘有天花免疫力
得天花
~Q H
• 例如,P: 停在斑馬線上的車子,發現了其中一輛或多輛車子沒被罰(~Q),就否定掉該項假定性推理了。
• 為了更通俗易懂起見,剛才的溯因推理範例,可以簡化如下:
”假定-否證”
(假定性)推理H:車子停在斑馬線(P)上都會被開罰單(Q)。
否證:停在斑馬線上的車子(P),發現了其中一輛或多輛車子沒被罰(~Q),這可以更簡單地表現出”假定-否證”的思維。
得過牛痘有天花免疫力
H
種牛痘P
得過牛痘有天花免疫力
H
否證
種牛痘
P
種過牛痘有天花免疫力
得天花
~Q H
孔明的溯因推理
• 目標:劉備想當皇帝
(假定性)推理H_1:直接北伐曹操(一分天下)是可行的手段
否證:”今操已擁百萬之眾,挾天子而令諸侯,此誠不可與爭鋒”(<<隆中對>>原文)
(假定性)推理H_2:先取孫權(二分天下)是可行的手段
否證:”孫權據有江東,已曆三世,國險而民附,賢能為之用,此可以為援而不可圖也”(<<隆中對>>原文)
(假定性)推理H_3:先取益州劉璋(三分天下)是可行的手段
否證:(沒有足以否定的證據)
軟體的敏捷(Agile)開發
也是基於溯因推理溯因推理
• 在傳統的Waterfall軟體發展裡,屬於演繹邏輯(左圖):從需求可演繹出來代碼和架構。
• 敏捷開發,屬於朔因邏輯(右圖):架構和代碼都不是純然從需求演繹出來,而是假定-否證的邏輯。
• 所以,敏捷的TDD主要任務不是來證實你的架構和代碼,而是來否證,並將被否定的部分回饋回去給架構師和開發者,而帶動一次新的反覆運算。
願景
軟件(代碼)
• 造形&樣式• 足夠好架構
設計
(回應&引領)
需求(測試)
願景
軟體(程式)
(測試反饋)(回饋&修正)
• 造形&樣式• 代碼重構• 持續整合
設計
基於軟硬整合觀點
44、、AA段架構設計段架構設計Mapping from Vision to Reality
• 管理學大師 比得.杜拉克(Peter F. Drucker)指出,決策往往不是從真相開始的,而是從想法開始。
• Hypothesis是不依賴事實根據或邏輯推理的假想,做為驗證的命題,為了驗證才去進行分析、搜集事實。
摘自: http://apple4.us/2011/10/jobs-begin-end.html
此文章裡,寫道:此文章裡,寫道:
• “你不可能在眺望未來時把生活中的每個點連接起來,只有回顧時能才連點成線。所以你必須相信今日所做的會影響你的未來。”Apple的賈伯斯(Jobs)說。
• <從未來回顧今日>就是:
Mapping from Vision to Reality
• 對架構師而言,尋找Vision並非最關鍵之事。反而,透過 Mapping from vision to reality的動作來找到Vision --> Reality之間的<連線>才是架構師最關鍵的本事。
• 一位架構師的vision,並不是看到別人所沒看到的景象。而是別人都從現在遙望未來,看到reality(現實)----> problem X 的密切關聯;而有效架構師則從未來看回來,看到problem Y --> vision的密切關聯。
• 彼眾人陷入problem X泥糟之際,他解了problem Y並實現vision。
• 架構師洞悉自己團隊開發者的思維陷阱,還能看清敵對方開發者可能的思維漏洞。愈是大型、激烈競爭,勢均力敵的競賽,一來一往決定勝負。
洞悉與創造洞悉與創造
Vision(夢) Reality(真實)
Mapping(想) EIT from vision to reality Pattern(形成)
Architecture (架構)
Requirement (需求)
Vision (願景)
三個主要元素:
A(架構)R(需求&事實)
(基於願景)
(支持願景)
V (願景)
(實證刪除)
(引領實證、萃取需求)
架構設計也
需要敏捷過程
聆聽Fred George怎麼說
◎ “As an architect, I will implement the most difficult parts of a system.”
(身為架構師, 我先實現系統裡最艱難的部分。)
◎ “I call it "pioneering", the process where I see if an idea in my head actually is a good idea.”
(我稱它為”先驗過程”,這過程檢視我的設計理念是否足夠好。)
◎ “I will always refine the idea in that first implementation. Then I feel comfortable letting the rest of the programming team follow that pattern. That is the architecture.”
(在這先驗過程的實踐中,我會不斷修正設計裡念,直到有了感覺足夠好的設計模式。然後才讓開發團隊跟進;這項設計模式就是系統架構了。)
◎ Simple solution是足夠好的架構,它也是來自反覆過程(“Always refine …”)。
◎ 架構師在設計出simple solution時,已經進行了無數次心智內的敏捷反覆過程了。
啟示!!
基於軟硬整合觀點
55、、 ”假定-否證”= 刪除法
否證(刪除)
• 一位架構師的vision,並不是看到別人所沒看到的景象。而是別人都從現在遙望未來,看到reality(現實)----> problem X 的密切關聯;而有效架構師則從未來看回來,看到problem Y --> vision的密切關聯。
• 彼眾人陷入problem X泥糟之際,他解了problem Y並實現vision。
◎刪除法。例如,孔明軍事架構設計的經典之作<<隆中對>>寫道:<今操已擁百萬之眾,挾天子而令諸侯,此誠不可與爭鋒。>分析兩件事實,就足以刪除一統天下的路徑。而且,<孫權據有江東,已曆三世,國險而民附,賢能為之用,此可以為援而不可圖也。>這也刪除了二分天下的路徑。
孔明的否證(刪除)
Subissue:可以
安全撤退嗎?
Subissue:可以
正面迎戰?
Subissue:可以
固守城內嗎?
Subissue:可以
採空城計嗎?
Issue:孔明如何
化解危機?
◎例如,基於事實分析,可知道已經來不及撤退了,所以「可以安全撤退嗎?」議題的答案是『否』,該假設被推翻了。
◎ 同樣地,事實也顯示兵力太懸殊,無法正面迎敵,所以「可以正面迎敵嗎?」議題的答案是『否』,該假設被推翻了。
◎如果所提的假設無法被否定(刪除),就進行更細膩的分析事實,直到有信心認定自己的假設絕對不會錯,或錯誤的可能性微乎其微為止。
◎ 例如孔明的空城計,其議題樹狀圖如下分析一下問題,可知道已經沒有足夠糧食了,所以「糧食足夠嗎?」議題的答案是『否』,也連帶推翻「可以固守城內嗎?」議題之假設了。如下圖:
Subissue:可以
安全撤退嗎?
Subissue:可以
正面迎戰?
Subissue:可以
固守城內嗎?
Subissue:可以
採空城計嗎?
Issue:孔明如何
化解危機?
Subissue:糧食
足夠嗎?
Subissue:兵力
足夠防守嗎?
◎ 剩下「可以采空城計嗎?」的議題假設無法被否定(刪除),就繼續進行更細膩的分析下去了。
◎許多未來的事物常常不容易找到強有力的正面支持的reality。架構師倒過來,尋找強有力的反面否定的reality就簡單多了。架構師對於無法被否定的命題,要有信心<敢>去相信。
基於軟硬整合觀點
66、、麥肯錫公司的商業應用麥肯錫公司的商業應用
麥肯錫公司的<MECE + FBA>思維
◎ MECE是建立一個樹狀的議題架構。◎ FBA是在架構引領下的現實(Reality)收集和
分析,以便核對總和刪除不現實的議題。
麥肯錫:著名的McKinsey顧問公司MECE :mutually exclusive, collectively exhaustiveFBA :Fact-based analysis
• 基於MECE原則來擬定扎實的議題起始假定(Initial Hypothesis) 。
• 然後展開探索更細節的議題假定,逐漸建立出扎實而完整的樹狀議題架構(又稱議題樹) 。
從創意到 實現計畫之 能力不足
創意和 想像能力不足
因(亦是果)
實現計畫之 執行能力不足
創新能力
薄弱
果
思考技術能
力沒有發揮
的環境
不知道有此 思考技術
沒有去學習
及練習思考
技術
因(亦是果)
因
思考的 技術能力不足
• 議題樹包含一系列有待檢驗(否證)其假定(Hypothesis)的議題。
• 依循溯因的<假定-否證>邏輯,透過檢驗方式,發現走不通的路,就指示不必去探索該議題了 。
◎ 建立一個合乎MECE條件的邏輯樹,已經證明是極為有效的問題解決方法,可掌握問題的整體架構,有脈絡地思考問題的核心。藉由「因-果」之邏輯關係,或是「目的-手段」之邏輯關係而把重要的議題(Issue)連結起來,形成一個樹狀結構,稱為議題樹。
◎ 除了<因-果>議題樹和<目的-手段>議題樹之外,還有一種常見的議題樹就是:<結論-理由>議題樹。此議題樹連結了結論與理由之間的邏輯關係,可協助我們掌握問題的整體面貌,有脈絡地思考問題的核心。
Thanks…