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