本文来自作者 凯哥 在 GitChat 上分享 「成为跨领域的“解决方案架构师”需要什么素养?」,
在架构师这个职业路线上,笔者理解的路径是这样的:
从一个相对专注的架构师到解决方案架构师,再到更抽象,全面,具有企业顶层设计能力的企业级架构师,这个过程中,解决方案架构师 (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.
好的解决方案架构师能够快速,全面,透彻的理解业务需求,从繁杂纷乱的业务需求和问题现象中抽丝剥茧,提炼和设计解决方案,从而帮助客户把想法,问题,需求落地成一个可以执行实施的项目。
为什么是跨领域的解决方案架构师,这里的跨领域很重要。一个资深的解决方案架构师,同时拥有横向和纵向两种能力,纵向是在某一领域的沉淀深度,而横向则是跨业务领域的。而解决方案的范围越广,融合性和可跨越性越强,
就像下面的图,涉及的业务领域越窄边界越清晰,而系统和范围越大,则可能的跨界就越多。
一个自身的解决方案架构师经常会在方案设计过程中碰到多种领域的综合分析和设计的场景。
如何能够成为一个跨领域的解决方案架构师呢,凯哥基于过去十几年的经验,总结了如下能力模型:
笔者讲跨领域的解决方案架构师的素养分成心态、能力、方法三个维度:
一、心态
1.永不言败 (Courage)
解决方案架构师在实际工作中,承担着很重要的角色,要冲锋在***线去了解客户需求,要配合销售进行售前交流,要做方案设计,要和内部项目团队介绍方案,跟进项目实施的结果,保障整体交付质量没有偏离设计的目标。
所以,好的解决方案架构师首先需要有一个好的心态,心放到位了,事情才能做好。
首先***个心态就是勇气,麦肯锡在新员工入职培训时***个教授的就是要有永不言败的精神。
作为专业的咨询服务人员,要随时能够应对各种行业,各种风格的客户,在你坐到客户对面以前,你永远不知道他会给你抛出什么样的问题和挑战。
任何时候都要有勇气,都要相信没有什么问题是不能够被分解,被解决的。
解决方案架构师要永远记住,解决方案这四个字的核心就是解决问题,你的存在就是要为问题找到一个解决的方法,变成一个成体系的方案。
经常看到的解决方案架构师出现的现象是给自己设限:
- 认为客户的需求超出了销售跟他讲的内容,觉得这不是这个项目的职责;
- 认为客户的想法不是自己的专业(即使真的解决不了,也要对接上其他的资源来予以跟进,这也是一种解决办法)。
一旦自己给自己划了圈,那么你的视野就会变窄,你的动力就会被削弱,就会有一个小人在旁边时刻告诉自己,算了吧,这个事情不是你的事情,放弃吧。
而一个好的解决方案架构师,***个特质就是永不言败,越挑战越激动,越新鲜越感兴趣,有着如饥似渴的动力,从不给自己设限。
2.快速学习的心态 (Fast Learning)
光有永不言败的勇气是不够的,好的解决方案架构师要有快速学习的能力。
快速学习,指的是能够在很短的时间内快速找到需要解决问题的知识、方法和工具。比如说我们做数字化咨询服务的解决方案架构师,当我们拿到一个需求的时候。
很多时候,这个需求是非常模糊的,甚至有的时候,凯哥所知道的就是一个公司的名字,或者连名字都不特别清楚,只能通过只言片语知道这是一个什么行业,大概干什么的公司。
这种情况下,我们要有一个学习的框架,比如从行业到企业到业务领域,分层去全面掌握这个需要解决的问题的背景。
同时,为了加深了解可能的面对的问题,我们要做一些问题的预设,然后带着这些预设的问题去搜索,去查找对应的知识,比如说竞争对手,行业趋势,相关产业链等。
快速学习的心态是一个好的跨领域解决方案架构师的能量的源泉。而很重要的就是在不断地学习和实践中要积累一套适合自己的快速学习框架。
3.虚怀若谷的开放心态
这一点非常重要,还是凯哥所提到的,心到位了,一切都好做了。很多时候,架构师在面对交流对象时,把自己放到一个很高,绝对正确的立场。
客户都是***,别人都不懂技术,当有了这样的心态后,我们就像一个***,甚至看不到明显的问题。更谈不上很好的交流了。
一个虚怀若谷的开放心态,意味着,客户讲的东西一定都是有根源的,有原因的,都是解决问题过程中的线索。
所以凯哥经常说,所有客户讲过的话,发过的邮件或者文档,尤其是 RFI,至少要读三遍,才能够动手做方案。
二、能力
1.抽象能力 (Abstraction)
架构师区别于一般的技术或者业务人员,最核心的一个能力就是抽象能力。
架构师最核心的能力是能够从纷乱复杂的表象中,总结提炼抽象出最本质的问题的关键,然后将它体系化,结构化,变成一个架构,一个模型,呈现给其他人。
拥有了这样的能力,架构师就可以从看上去一团乱麻一样的各种复杂问题中,快速抓住主干的问题,和解决问题的办法,然后将主干的问题解决方案变成架构,把解决问题的方法变成实施路线。
好的架构师能够总结,提炼,包装方法论和概念。比如我司的老马,微服务这种实践其实在很多年前,一些牛的程序员就已经在实践,但是只有他能够将这些分散的实践总结出来,抽象出来,然后给他起一个最合适,容易被记住的名字。
比如在实施一个大型项目的时候,我们经常看到什么几个一工程,什么”371”,“186”,等。这个工作和广告营销公司的策划是类似的,总的来讲,凯哥认为需要的是以下的实践和能力:
1.1 对问题的深刻的理解能力
高度的抽象,并不是文字游戏,而是基于对客户的需求,对问题的深度理解,能够抓大放小,透过现象看本质,抓住问题的本质和最重要的部分。
1.2 全局思维能力
经常我们的架构师容易陷入一些细节,“只缘身在此山中”,无法站在更高的层面俯视问题和需求的全貌,所以在这种情况下,抽象出来的方案只是局部,更不要提能够洞察本质。
1.3 对文字(表达方式)的总结利用的能力
***,文字(表达方式)的总结利用能力也是很重要的,这里不仅是文字。比如我们在写技术方案的时候,架构图就是一种常用的表达方式。
抽象能力来自于平时的实践和信息量。没有大量的实践和信息量,没有充分的练习,是很难建立高度的抽象能力的。
笔者经常能听到朋友抱怨说一个问题想了很久都无法找到解决的方法,就像一句俗话所说,“狗咬泰山”。
这个时候,笔者就会告诉他,不论这个问题多么模糊,复杂,你先把它用 PPT 一步一步的描述出来,能写多少写多少。因为只是在脑子里想,那是最简单的事情,但是一旦要把它画出来,每画一步就是一次抽象,一次提炼,一次练习。
2.沟通交流能力 (Communication)
沟通交流能力是一个资深的跨领域的解决方案架构师必备的技能。这个角色经常性的要和客户交流,和团队交流,面对各种复杂的交流场景。
当然,讲如何提高沟通交流能力的文章和书有太多太多,这里凯哥讲几个作为一个好的解决方案架构师所需要的重点能力:
2.1 以问题为核心的引导能力
不论是对外还是对内,在交流过程中,解决方案架构师要时刻牢记自己交流的目的,是为了解决问题。
所以一定要让交流的过程和内容围绕问题进行,而不要偏题或被别人带走。
2.2 换位思考的互动能力
凯哥经常见到架构师在介绍方案的时候,就是推方案,那真的是推。不管客户将什么问题,提什么意见,总是把自己预设好的方案推销给用户。
要站在客户的角度,从他们的价值观,从他们的立场上思考问题,并且要能够在理解他们的基础上,牵引这客户互动到我们认为正确的方案上,获得客户的认可,达成方案的一致。
3.业务能力 (Business)
一个好的解决方案架构师一定具备要一定的业务能力。在业务方面,从一个 BA(Business Analyst) 到 BA(Business Architect) 再到解决方案架构师的成长是这样的:
这里的业务能力就包括对领域的理解,分析和设计的能力。
作为一个解决方案架构师,要掌握一些业务设计能力的典型框架,比如 DDD(Domain Driven Design)
4.技术理解能力 (Technology)
对于一个软件行业的解决方案架构师来讲,技术能力的表现是他知道,并理解行业里的技术,产品,开源框架的作用,并且能够将它们应用到对应的业务需求上去。
但是是不是意味着,如果你不是程序员出身,不是做软件行业出身就做不了解决方案架构师呢?
凯哥的答案是,不是的。
就像《天龙八部》里的王语嫣,她不会武功,手无缚鸡之力,但是却在高手对决的时候能够洞若观火,洞察双方的招数,并且快速给出对应的制衡之法。原因就是她了解这些招数的作用。
解决方案架构师的最重要的能力是将需求理解后设计成总体的方案,然后分解到业务和技术架构师去进行详细设计和执行。
所以解决方案架构师这个层面,他需要的是掌握常用的,领先的逻辑技术实现方式,然后将这些方式铭记于心,以技术的需求的方式描述出来。
5.实施能力 (Implement)
以上讲的技术能力,业务能力是专业能力,但是作为一个好的解决方案架构师,他最终的目的是为了帮助客户解决一个问题。
光有好的业务方案,技术架构是不够的,最重要通过实施方案去落地。
一般而言,好的解决方案架构师需要把这个实施的整体方案做出来,就像拍电影,业务方案架构师就是编剧,而技术方案架构师就是灯光、现场、道具、美工等,最终是由制片人、导演来将电影最终组织并实现出来的。
一个好的解决方案架构师,能够运用成熟的架构体系为客户做出全面的解决方案。这里凯哥介绍一个业界普遍认可的架构框架,TOGAF。
TOGAF 是 The Open Group Architecture Framework 的简称。现在大的咨询公司的方法论,比如 ADM(Accenture Delivery Methodology) 就吸取了 TOGAF 的很多内容。
三、方法
1.战略思考 (Strategic Thinking)
战略思考是解决方案架构师区别于具体实现人员的***的思考方法。战略思维的概念和方法论很多,但是以下三点是凯哥认为最重要的点:
1.1 顶层思考
顶层思考能力,是好的解决方案架构师所必须具备的。比如说在进行用户访谈调研的时候,你一定要站的比用户给你讲的视角要高,从而能够一览众山小,去发现缺失的部分,引导需求方说出更多的问题。并且时刻脑子里要有一个全景图。
1.2 系统思考
结构化思维,系统思考,简单来说就是对事情全面思考,不只就事论事。是把想要达到的结果、实现该结果的过程、过程优化以及对未来的影响等一系列问题作为一个整体系统进行研究。
系统思考重要的因素是:整体性,动态性,立体型,综合性,结构性。
1.3 敏锐洞察
敏锐的洞察能力,不仅关注现象,同时关联发现相关的信息。这里很重要的表现就是联想能力和对问题本质的洞察。最简单的办法就是多问自己几个为什么。
2.设计思维 (Design 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。
【本文为51CTO专栏作者“凯哥”的原创稿件,转载请通过作者微信公众号shikai590获取授权】