問題分析和解決
01-26
在很早的一篇長文系列《我是如何思考的》中我已經大量闡述過關於問題定義,問題分析和解決的一些關鍵思路,方法和工具,模式和方法論等,這篇文章準備再做一次提煉總結。 對於分析和解決問題,還是將其分為三個關鍵步驟即問題定義,問題分析和問題解決。
問題定義問題即現狀和期望之間的差距,差距即是問題,而期望值往往就是目標。因此一個好的定義至少需要包括兩個方面的核心內容,具體如下:1. 問題定義中有清晰的現狀和目標的定義,而目標定義本身又符合SMART目標定義原則。
2. 對問題的定義本身符合5W1H原則,包括時間,地點,人物,環境,問題出現過程必須定義清楚。基於這兩個核心內容,我們就可以將問題定義清楚,在《我是如何思考的》的中我重點闡述了在問題定義的時候需要更加清晰的將問題轉換為目標,目標本身又具備了空間和時間可達性。舉例來說餐廳漲價究竟該漲價多少?這類問題應該轉換希望餐廳3年盈利最大化這個目標。問題轉化為目標,即是在問題定義中的關鍵破題。遇到任何問題的時候,你多問幾個為什麼,自然就很容易探索到問題背後的問題,這個背後的問題才是本質或要追尋的目標點。問題即事物表現出來的一種狀態,這種狀態沒有達到我們的期望,類似收入低了,小孩不聽話,身體不舒服,肚子餓了,手機沒電了等等,其本質還是事物表現的一種狀態沒有達到期望。而事物本身的狀態,我們可以將其理解為一種離散非連續狀態,一種是漸進連續狀態。比如手機有電沒電時一種非連續二元狀態,而你的成績從60分到100分,則是一種連續漸進狀態。
問題分析什麼能夠叫做問題的分析?在我們前面很多文章裡面我並沒有對問題分析給出較為明確的一個定義。如果簡單點來說,問題分析的目的是找到問題的關鍵影響因素,這就是問題分析的本質。問題分析中兩個關鍵點,一個是問題分解,一個是排序。要做到這一點,我們常見的問題分析首先要做的就是基於問題的初步定義,對問題進行進一步的分解,這個分解可以是目標本身的分解,也可以是問題可能產生原因的分解。比如當前經營業績不好,這個問題已經轉化為需要提升公司利潤這個目標,那麼就可以基於這目標進行分解;再比如當前IT系統運行緩慢,性能有問題,引起問題的原因可能是硬體,也可能是軟體,對於軟體部分又可能是資料庫或中間件,也可能是我們自己的程序代碼,這種分解方式就是基於問題本身的可能原因分解。分解中用的模型都是樹模型,包括邏輯樹,問題樹,風險決策樹,思維導圖,魚骨圖等方法歸根到底都是樹模型的應用。樹模型更好的解釋了所有的分解都圍繞一個終極目標,而不是多個目標,多個目標往往僅僅是終極目標的子目標。
對於魚骨圖也是分解,但是魚骨圖更多是用於問題的分解,體現因果關係,同時又給出根據一般的法則即從人,機,料,法,環五個方面進行分解。所以魚骨圖一般沒有包括對子目標的分解。對於決策樹也是分解,當時更多的是對不同決策的分解,而我們在思考中一般不適合過渡跳躍,直接由問題轉移到決策。因此分解沒有明顯限制的還是邏輯樹,在前面幾層可以是子目標的分解,在後面幾層可以是控制變數的分解。分解的目的仍然是找到所有可能的問題影響因素或控制變數。而排序的目的則是確定關鍵的影響因素,或者根據2/8原則確定的那20%的最可能影響因素。在問題分析階段的排序重點是關鍵影響因素的確定,注意在決策階段還會涉及到決策過程中的排序,但是在分析階段重點仍然還是對問題本身的關鍵潛在原因和可能影響點的排序。舉例來說對於IT系統的性能問題分析,經過初步診斷,認為問題產生原因可能性最大的資料庫本身性能出問題,其次是程序代碼出問題。經過這種優先順序排序後才能夠確定後續解決問題的策略和次序。排序之目的最終就是形成優先順序列表,為決策服務。由分解後進行排序轉化出來的決策往往則是一種結構化的決策方法。雖然很多時候我們往往並不會按部就班的這樣一步步做,但是這確是一種科學決策和思考方法。
如何才能夠真正做好優先順序的排序,其中本質往往只有兩種:1. 基於我們的歷史經驗積累,包括頭腦風暴中各個專家經驗的積累。2. 基於我們初步的問題診斷,在這個過程中已經做了初步嘗試和假設的驗證,對非關鍵點排除(重要)正因為如此,你可以看到在問題分析中我們仍然會開展各種實踐活動,目的是對問題進行初步診斷,找到真正的問題關鍵影響因素,並把非關鍵的影響點排除掉或降低其優先順序。而問題分析最終形成的關鍵影響因素的優先順序排序則是我們進入到問題解決階段的關鍵輸入。
問題解決在前面兩者都想清楚後,對於問題解決本身就很容易搞明白了,問題解決本質就是基於問題的關鍵影響因素(有可能1個,有可能多個;有可能獨立,有可能相互影響),制定詳細的實施計劃和行動步驟,去將問題的根源和本質原因解決掉,並進一步觀察和驗證問題是否已經解決了?如果還沒有解決再進行循環迭代,直到問題真正解決為止的一個過程。把這個想清楚後,對於問題解決也包含兩個關鍵步驟,一個是決策,一個是行動。決策的目的是基於關鍵影響因素的解決從多個備選方案中確定最優方案,行動則是針對最優方案制訂詳細的行動計劃。對於決策,本身有分為結構化決策和非結構化決策,結構化決策是指對某一決策過程的環境及規則,能用確定的模型或語言描述,以適當的演算法產生決策方案,並能從多種方案中選擇最優解的決策;而非結構化決策,是指決策過程複雜,不可能用確定的模型和語言來描述其決策過程,更無所謂最優解的決策。決策要注意的就是仍然是多維度評估和排序,但是排序的目的是確定行動方案,在行動方案確定中就不能只是考慮影響因子本身,還需要考慮實施難度,投入工作量和成本,實施周期等多方面的內容。正是由於這個原因,最終的決策往往並不一定是解決關鍵影響點,而是變通為解決次關鍵影響點等。對於問題的分析,原來我們比較常用的都是二元決策,即是和非。但是隨著問題本身的複雜化帶來我們在分類和決策上的複雜化。因為一個大問題其本身就是一個問題的集合或者叫問題群,對於一個單獨的事件我們可以用做還是不做來決策,但是對於問題群我們需要的是組合決策。而矩陣分析,我的理解正是一種最簡單的多維度分析和決策,打破我們原有的簡單的二元判斷邏輯。即:1. 簡單問題或單目標的決策:排序,優先順序列表,層次分析法2. 多目標決策,而且多目標間相互影響:組合分析,矩陣分析,組合決策,計算機模擬等一個複雜問題往往無法用單一目標和精確數學模型描述,同時該問題本身又是對應到多目標間的平衡優化,特別是對於這類問題,類似當前宏觀經濟裡面的決策,投資策略決策等都是一種複雜決策。在問題定義部分,我們可以將問題分離離散二元狀態類問題和連續類狀態演進問題。對於這兩類問題本身在問題解決的時候有明顯的不同。1. 離散狀態類問題:事件觸發-》狀態變更,行動計劃很簡單,觸發一個事件即解決問題。2. 連續狀態問題:相信的實施過程和流程-》狀態漸變,行動計劃複雜周期長,需要持續不斷努力。例如我們看到提升學習成績,減肥等問題都是連續狀態類問題,這類問題給出行動或實施計劃相當反而容易,但是要嚴格遵循計划去實踐和驗證,堅持和專註就沒那麼容易了。如果我們本身的實施計劃可落地性很差,那麼這種個人成長和學習類的培訓往往就演變為雞湯或成功學。推薦閱讀:
※「說了那麼多遍,你怎麼才能改?」
※這4個靈魂問題,解決你80%的困境
※你所知道的最 Hack 的解決問題的過程是?
※《麥肯錫工作法》這本書教會了我們什麼?