文/秦五一
軟件咨詢師對于廣大軟件工程師來說是一個既向往又神秘的職業。
有人會問:“咨詢師要寫代碼嗎?”
A:“有可能的啊。”
有人問:“有不寫代碼的時候嗎?”
A:“有啊,而且更多時候是這樣的,軟件咨詢師既不寫代碼,也不設計測試用例?!?/p>
那軟件咨詢師干什么呢?他們在客戶遇到問題時提供建議。
作為軟件領域的專家,他們擅長利用個人豐富的領域知識,去解決軟件開發、測試過程中的各種難題。除此之外,軟件咨詢師需要利用各種技能與工具幫助自己快速收集信息,分析、定位客戶的問題所在。
本文嘗試通過ThoughtWorks咨詢師的一些實踐,來總結一下軟件咨詢師常用到的工具。
工具從兩個維度出發:
- 技能工具
- 物理工具
技能工具
MECE分析法
MECE是麥肯錫所提出的一種分析方法,是Mutually Exclusive,Collectively Exhaustive的縮寫,通常翻譯成“相互獨立,完全窮盡”。簡單的說,MECE提供了一種有效的分類方法,當我們獲取了團隊中的信息時,這些信息可能非常雜亂。
例如當團隊中出現測試效率低下的問題,團隊中不同的人會給出非常多,互相交織的,層次不同的問題,有人會說“自動化太少”,有人會說“測試時間太靠后”等等。通過MECE原則,我們可以將這個事實進行抽象,歸納成相互獨立的領域,驗證是否實現了完全窮盡,讓我們對問題的調研更加全面。
Five Whys分析法
Five Whys,從字面理解非常簡單,就是連續問5個“為什么”,同樣是一種解決問題的分析方法,用于簡單快速的找到問題的根源。
例如,
- “我現在頭痛”--為什么?
- “我沒休息好” -- 為什么?
- “我寫文章寫的太晚了” --為什么?
- “我白天沒有想好怎么寫” -- 為什么?
- “之前準備工作沒有做好” --為什么?
“所以,我對寫這篇文章所需要的時間估算出現偏差”。
通過這一系列連續的詢問,我發現了導致我現在頭痛的深層原因,其實是我對這篇文章的時間估算出現了問題,導致我熬夜加班寫,最終沒休息好。如果以后要避免類似的頭痛,治本的方法是作好規劃,減少熬夜。
當然,并不是說Five Whys一定就能找到問題的更深層次的根源,但是在咨詢現場、時間寶貴的情況下,是一種相對快速有效的方法。
系統思考
“系統思考就是以整體的觀點對復雜系統構成組件之間的連接進行研究。” ——《系統思考》
當我們找到了很多問題之后,需要判斷哪些問題需要解決,以及做到怎樣的程度時,系統思考會幫助我們從系統的角度出發,發現這些問題之間存在的相互關聯與影響,幫助我們的客戶作出決策。
例如,從測試的角度出發,我們希望產品的質量非常好,最好一直不出現問題,但是單純通過測試達到改善質量的目的,可能將增加成本,進而導致產品價格上升,產品競爭力有可能下降等等。在咨詢現場,咨詢師們會經常遇到這樣的問題,通過系統思考,幫我們找到當下最符合客戶核心需求的方案。
系統思考在測試領域應用的實例:《運用系統思考,走上改善之路》。
手繪
為什么有手繪呢?邊講邊畫比單純的語言效果好。擁有好的手繪能力,在白板上繪出形象生動的圖,可以極大的提升演講的效果和趣味性,同時體現出專業的一面。
物理工具
常用的工具有Trello、 Xmind、PPT/Keynote,以及現場使用白板。
Trello: 主要作為項目管理工具,主要用途
- To do list
- 記錄與總結當天的討論或者其他有價值的信息。
- 放一些參考資料,如網站鏈接、文檔等。
- 與其他同事協作,如將任務卡分給同事,讓他(們)幫忙確認。
- 作為長期的咨詢方案庫,以備后用。
Xmind:作為整理資料與思路的工具,主要用途
- 總結看到的文章或者視頻資料,將其整理為素材。
- 展示方案,做一些初步方案時,方便討論。
- 建立知識圖譜,例如自動化測試框架相關信息的總結,讓自己的知識越來越系統化。
- 利用Xmind的模版實現MECE、5Whys分析法,整理思路。
白板:作為咨詢現場快速信息收集與展示工具,主要用途
- 講解某個系統或者觀點。
- 結合便利貼進行頭腦風暴,快速收集并分析想法。
PPT/Keynote: 作為正式的方案交付件。
結語
上述工具是ThoughtWorks軟件咨詢師日常工作中所使用工具及方法的一部分,針對不同的咨詢場景還有很多不同工具。但是對于軟件咨詢師而言,工具只是招式,豐富的領域知識與過硬的技術能力才是內功,像金庸小說中講到的那樣,“無招勝有招”才是最高境界。