文/秦五一
软件咨询师对于广大软件工程师来说是一个既向往又神秘的职业。
有人会问:“咨询师要写代码吗?”
A:“有可能的啊。”
有人问:“有不写代码的时候吗?”
A:“有啊,而且更多时候是这样的,软件咨询师既不写代码,也不设计测试用例。”
那软件咨询师干什么呢?他们在客户遇到问题时提供建议。
作为软件领域的专家,他们擅长利用个人丰富的领域知识,去解决软件开发、测试过程中的各种难题。除此之外,软件咨询师需要利用各种技能与工具帮助自己快速收集信息,分析、定位客户的问题所在。
本文尝试通过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软件咨询师日常工作中所使用工具及方法的一部分,针对不同的咨询场景还有很多不同工具。但是对于软件咨询师而言,工具只是招式,丰富的领域知识与过硬的技术能力才是内功,像金庸小说中讲到的那样,“无招胜有招”才是最高境界。