解决方案架构师的养成之一:Competency Model of Solution Architecture
在架构师这个职业路线上,凯哥理解的路径是这样的:
架构师成长之路
从一个相对专注的架构师到解决方案架构师,再到更抽象,全面,具有企业顶层设计能力的企业级架构师,这个过程中,解决方案架构师(SA)这个级别,是很重要的,也是走向企业级架构师(EA)的必由之路。
维基百科对于解决方案架构师的解释如下:
A solution architect, in information technology, is a practitioner of solution architecture. Typically part of the solution development team, the solution architect translates requirements created by functional analysts into the architecture for that solution and describing it through architecture and design artifacts. The rest of the development team then uses those artifacts to implement the solution. The solution architect's process typically involves selecting the most appropriate technology for the problem.
好的解决方案架构师能够快速,全面,透彻的理解业务需求,从繁杂纷乱的业务需求和问题现象中抽丝剥茧,提炼和设计解决方案,从而帮助客户把想法,问题,需求落地成一个可以执行实施的项目。
为什么是跨领域的解决方案架构师,这里的跨领域很重要。一个资深的解决方案架构师,同时拥有横向和纵向两种能力,纵向是在某一领域的沉淀深度,而横向则是跨业务领域的。而解决方案的范围越广,融合性和可跨越性越强,
就像下面的图,涉及的业务领域越窄边界越清晰,而系统和范围越大,则可能的跨界就越多。一个自身的解决方案架构师经常会在方案设计过程中碰到多种领域的综合分析和设计的场景。
跨的领域越多,越需要综合的能力
如何能够成为一个跨领域的解决方案架构师呢,凯哥总结了如下能力模型:
凯哥将跨领域的解决方案架构师的素养分成三个维度:
永不言败(Courage)
解决方案架构师在实际工作中,承担着很重要的角色,要冲锋在第一线去了解客户需求,要配合销售进行售前交流,要做方案设计,要和内部项目团队介绍方案,跟进项目实施的结果,保障整体交付质量没有偏离设计的目标。所以,好的解决方案架构师首先需要有一个好的心态,心放到位了,事情才能做好。
首先第一个心态就是勇气,麦肯锡在新员工入职培训时第一个教授的就是要有永不言败的精神。作为专业的咨询服务人员,要随时能够应对各种行业,各种风格的客户,在你坐到客户对面以前,你永远不知道他会给你抛出什么样的问题和挑战。所以任何时候都要有勇气,都要相信没有什么问题是不能够被分解,被解决的。解决方案架构师要永远记住,解决方案这四个字的核心就是解决问题,你的存在就是要为问题找到一个解决的方法,变成一个成体系的方案。
经常看到的解决方案架构师出现的现象是给自己设限:
认为客户的需求超出了销售跟他讲的内容,觉得这不是这个项目的职责
认为客户的想法不是自己的专业(即使真的解决不了,也要对接上其他的资源来予以跟进,这也是一种解决办法)
一旦自己给自己划了圈,那么你的视野就会变窄,你的动力就会被削弱,就会有一个小人在旁边时刻告诉自己,算了吧,这个事情不是你的事情,放弃吧。
而一个好的解决方案架构师,第一个特质就是永不言败,越挑战越激动,越新鲜越感兴趣,有着如饥似渴的动力,从不给自己设限。
快速学习(Fast Learning)
光有永不言败的勇气是不够的,好的解决方案架构师要有快速学习的能力。
快速学习,指的是能够在很短的时间内快速找到需要解决问题的知识、方法和工具。比如说我们做数字化咨询服务的解决方案架构师,当我们拿到一个需求的时候。很多时候,这个需求是非常模糊的,甚至有的时候,凯哥所知道的就是一个公司的名字,或者连名字都不特别清楚,只能通过只言片语知道这是一个什么行业,大概干什么的公司。
这种情况下,我们要有一个学习的框架,比如从行业到企业到业务领域,分层去全面掌握这个需要解决的问题的背景。同时,为了加深了解可能的面对的问题,我们要做一些问题的预设,然后带着这些预设的问题去搜索,去查找对应的知识,比如说竞争对手,行业趋势,相关产业链等。
快速学习的心态是一个好的跨领域解决方案架构师的能量的源泉。而很重要的就是在不断地学习和实践中要积累一套适合自己的快速学习框架。
抽象能力(Abstraction)
架构师区别于一般的技术或者业务人员,最核心的一个能力就是抽象能力。
架构师能够从纷乱复杂的表象中,总结提炼抽象出最本质的问题的关键,然后将它体系化,结构化,变成一个架构,一个模型,呈现给其他人。
好的架构师能够总结,提炼,包装方法论和概念。比如我司的老马,微服务这种实践其实在很多年前,一些牛的程序员就已经在实践,但是只有他能够将这些分散的实践总结出来,抽象出来,然后给他起一个最合适,容易被记住的名字。
比如在实施一个大型项目的时候,我们经常看到什么几个一工程,什么”371”,“186”,等。这个工作和广告营销公司的策划是类似的,
总的来讲,凯哥认为需要的是以下的实践和能力:
对问题的深刻的理解能力
高度的抽象,并不是文字游戏,而是基于对客户的需求,对问题的深度理解,能够抓大放小,透过现象看本质,抓住问题的本质和最重要的部分。
全局思维能力
经常我们的架构师容易陷入一些细节,“只缘身在此山中”,无法站在更高的层面俯视问题和需求的全貌,所以在这种情况下,抽象出来的方案只是局部,更不要提能够洞察本质。
对文字(表达方式)的总结利用的能力
最后,文字(表达方式)的总结利用能力也是很重要的,这里不仅是文字。比如我们在写技术方案的时候,架构图就是一种常用的表达方式。
抽象能力来自于平时的实践和信息量。没有大量的实践和信息量,没有充分的练习,是很难建立高度的抽象能力的。凯哥经常能听到朋友抱怨说一个问题想了很久都无法找到解决的方法,就像一句俗话所说,“狗咬泰山”。
这个时候,凯哥就会告诉他,不论这个问题多么模糊,复杂,你先把它用PPT一步一步的描述出来,能写多少写多少。因为只是在脑子里想,那是最简单的事情,但是一旦要把它画出来,每画一步就是一次抽象,一次提炼,一次练习。
沟通交流能力(Communication)
沟通交流能力是一个资深的跨领域的解决方案架构师必备的技能。这个角色经常性的要和客户交流,和团队交流,面对各种复杂的交流场景。
当然,讲如何提高沟通交流能力的文章和书有太多太多,这里凯哥讲几个作为一个好的解决方案架构师所需要的重点能力:
以问题为核心的引导能力
不论是对外还是对内,在交流过程中,解决方案架构师要时刻牢记自己交流的目的,是为了解决问题。所以一定要让交流的过程和内容围绕问题进行,而不要偏题或被别人带走。
换位思考的互动能力
凯哥经常见到架构师在介绍方案的时候,就是推方案,那真的是推。不管客户将什么问题,提什么意见,总是把自己预设好的方案推销给用户,与客户的现实问题之间没有任何的关系和连接。
要站在客户的角度,从他们的价值观,从他们的立场上思考问题,并且要能够在理解他们的基础上,牵引这客户互动到我们认为正确的方案上,获得客户的认可,达成方案的一致。
虚怀若谷的开放心态
这一点非常重要,还是凯哥所强调的,心到位了,一切都好做了。很多时候,架构师在面对交流对象时,把自己放到一个很高,绝对正确的立场。客户都是傻逼,别人都不懂技术,当有了这样的心态后,我们就像一个瞎子,甚至看不到明显的问题。更谈不上很好的交流了。一个虚怀若谷的开放心态,意味着,客户讲的东西一定都是有根源的,有原因的,都是结局问题过程中的线索,所以凯哥经常说,所有客户讲过的话,发过的邮件或者文档,尤其是RFI,至少要读三遍,才能够动手做方案。
业务能力(Business)
一个好的解决方案架构师一定具备要一定的业务能力。在业务方面,从一个BA(Business Analyst)到BA(Business Architect)再到解决方案架构师的成长是这样的:
这里的业务能力就包括对领域的理解,分析和设计的能力。
作为一个解决方案架构师,要掌握一些业务设计能力的典型框架,比如DDD(Domain Driven Design)
技术理解能力(Technology)
对于一个软件行业的解决方案架构师来讲,技术能力的表现是他知道,并理解行业里的技术,产品,开源框架的作用,并且能够将它们应用到对应的业务需求上去。
但是是不是意味着,如果你不是程序员出身,不是做软件行业出身就做不了解决方案架构师呢?
凯哥的答案是,不是的。
就像《天龙八部》里的王语嫣,她不会武功,手无缚鸡之力,但是却在高手对决的时候能够洞若观火,洞察双方的招数,并且快速给出对应的制衡之法。原因就是她了解这些招数的作用。
解决方案架构师的最重要的能力是将需求理解后设计成总体的方案,然后分解到业务和技术架构师去进行详细设计和执行。所以解决方案架构师这个层面,他需要的是掌握常用的,领先的逻辑技术实现方式,然后将这些方式铭记于心,以技术的需求的方式描述出来。
实施能力(Implement)
以上讲的技术能力,业务能力是专业能力,但是作为一个好的解决方案架构师,他最终的目的是为了帮助客户解决一个问题。光有好的业务方案,技术架构是不够的,最重要通过实施方案去落地,所以一般来讲,好的解决方案架构师需要把这个实施的整体方案做出来,就像拍一个电影,业务方案架构师就是编剧,而技术方案架构师就是灯光、现场、道具、美工等,那么最终是由制片人,导演来把这个电影最终组织并实现出来的。
一个好的解决方案架构师,能够运用成熟的架构体系为客户做出全面的解决方案。
这里凯哥介绍一个业界普遍认可的架构框架,TOGAF。
TOGAF是The Open Group Architecture Framework的简称。现在大的咨询公司的方法论,比如ADM(Accenture Delivery Methodology)就吸取了TOGAF的很多内容。
方法论
战略思考(Strategic Thinking)
战略思考是解决方案架构师区别于具体实现人员的最大的思考方法。
战略思维的概念和方法论很多,但是以下四点是凯哥认为最重要的点:
顶层思考
顶层思考能力,是好的解决方案架构师所必须具备的。比如说在进行用户访谈调研的时候,你一定要站的比用户给你讲的视角要高,从而能够一览众山小,去发现缺失的部分,引导需求方说出更多的问题。并且时刻脑子里要有一个全景图。
系统思考
结构化思维,系统思考,简单来说就是对事情全面思考,不只就事论事。是把想要达到的结果、实现该结果的过程、过程优化以及对未来的影响等一系列问题作为一个整体系统进行研究。系统思考重要的因素是:整体性,动态性,立体型,综合性,结构性。
敏锐洞察
敏锐的洞察能力,不仅关注现象,同时关联发现相关的信息。这里很重要的表现就是联想能力和对问题本质的洞察。最简单的办法就是多问自己几个为什么。顶层思考是为了从0到100,发散思维,而敏锐洞察是从100到1,快速抓住事情的本质。
预测思考
在顶层思考核敏锐洞察的基础上,结合系统思考,有一定的预测思考的能力,战略的本质是预言没有发生的事情,预测未来的走向,战略的能力强弱就体现在预测的方向是否准确以及能够持续多久。
设计思维(Design Thinking)
设计思考(Design Thinking)是一个以人为本的解决问题方法论,透过从人的需求出发,为各种议题寻求创新解决方案,并创造更多的可能性。IDEO设计公司总裁蒂姆·布朗曾在《哈佛商业评论》定义:“设计思考是以人为本的设计精神与方法,考虑人的需求、行为,也考量科技或商业的可行性。”。
说设计思维的书很多,这里就不赘述了。凯哥理解设计思维对于解决方案架构师来讲,最重要的有以下几点:
同理心(Empathy),一定要站在客户的视角去考虑问题,以使用者为核心,透过多远的方式了解用户从而找寻用户真正的问题和需求。
识别需求(Define),需求定义是将“同理心”过程中搜集到的众多信息,重新作深入的定义,探索水下的冰山,找到最本质,真正的需求,并且用一句话(电梯演讲)来定义清楚用户的需求。
创意动脑(Ideate),当识别出需求后,我们就要通过“三不五要”的原则来进行头脑风暴,从而发散出众多的解决方案,所谓的“三不五要”:不要打断,不要批评,不要离题;要延续他人想法,要可视化,要疯狂,数量要多,要有标题。
最小原型(Prototype),当一个好的解决方案被识别出来,应该快速的利用Prototype的方法来实现,从而验证解决方案的可行性,度量效果。
反馈迭代(Iteration),在需求不断变化,用户的想法也会随时发生变化,这种情况下,我们要缩短产品迭代的周期,要不断获取客户的反馈,从而根据反馈迭代我们的设计。
分析思维(Analytical Thinking)
如果说设计思维是以人为本的感性思考方式,那么作为一个合格的解决方案架构师,同时要掌握的是理性分析方法,也就是分析思维。分析思维是众多方法论的融合,主要包括以下的重点考虑维度:
抽象思维,逻辑思维,系统性思考。
成本效益分析维度,将影响分解,归一为成本效益进行分析识别。
还原论,将复杂的事物分解成简单的可分析的单元。
趋势分析,系统分析。
成为一个跨领域的解决方案架构师,除了以上的素养之外,就需要充分的实践,这里的实践包括体系的总结包装实践,比如说我们的售前活动,也包括具体的项目实施。一个好的解决方案架构师一定是出去能够讲故事,回来能够写方案,然后可以带项目做实施的,这三个环节缺一不可。
解决方案架构师很重要的一个产出,就是解决方案,那么如何能够完成一个高质量的解决方案包装呢?
请关注《凯哥讲故事-解决方案架构师养成系列》
参考文献:
http://watersfoundation.org/systems-thinking/what/
https://en.wikipedia.org/wiki/Solution_architect
http://strategyskills.com/Articles_Samples/What_is_Strategic_Thinking.pdf
https://hbr.org/2008/06/design-thinking