架构师需要哪些素质?
架构师在公司中担当着「IT架构灵魂人物」的角色,因为他们不仅做着架构师的本职工作,还同时做程序开发,写核心代码。另外,架构师依旧是技术高手,编程能力依然是一流的。
我们可以认为架构师是一家公司的IT架构灵魂人物,他必须具备出色的设计能力、编程能力和沟通能力,在完成本职的架构工作外,还要协调好项目中人员的关系,做出合理的分工,最终完成全部工作。
架构师是程序员个人发展的一条道路,在一家公司里有着极为重要的地位,是团队的关键人物,担当着重责。
经常这么比喻道:架构师的工作就像是他打造一棵树的主干和枝干,然后程序员们让这棵树上长出树叶和果实。
一名架构师必须能够写出他亲自设计的系统中最难以实现的那段核心代码,种出主干和枝干,才能将“冒芽开花结果”的重担交给开发团队来做。
既然架构师是「灵魂人物」,那么,成为一名架构师,需要具备怎样的素养呢?
在具体分析架构师该具备的素质前,我们首先了解下架构师的主要职责有哪些。
1 确认需求
架构师要懂得用户需求,理解用户真正想要什么,这使得架构师必须要和分析人员不断沟通,反复确认需求规格说明书,以此来保证他精准清楚用户需求。
架构师会与很多人沟通,例如开发人员,例如我们项目经理,有时甚至是用户本身。架构设计的目的很明确,目的是什么呢?挖掘用户需求。
2 系统分解
在架构师认可需求规格说明书后,架构师已明确用户需求是是什么,这时候便看架构师的分解能力了。
通过入职的全栈技术架构师周先生从「纵向分解」和「横向分解」和我们说明了系统分解是什么:一般分为纵向分解和横向分解,纵向分解是将整个系统分层,从而将整体系统分解成下一级的子系统与组件。横向分解是在系统分解成不同的逻辑层或服务后,对逻辑层进行分块,确定层与层之间的关系。
3 技术选型
在系统分解后,架构师会最终形成软件整体架构,接下来,架构师的职责是技术选型。
在了解用户需求后,分解完系统后,技术选型是非常重要的环节,提出各个方向,我再进行评估。不过,很多人都以为架构师是有决定权的,其实不是,架构师没有拍版的权力,决定由项目经理来做。
架构师在技术选型阶段会提供参考信息给项目经理,项目经理再从预算、进度、人力、资源等各方面情况来权衡,最终确认。
4 制定技术规格说明
如前文调查显示,架构师在项目开发过程中是「灵魂人物」,并且要具备协调组织能力和懂得人员分工。
在制定技术规格说明阶段,架构师要协调起所有的开发人员,架构师通常会用技术规格说明书与开发人员保持沟通,让开发人员能从各个视角去观测、理解他们负责的模块或者子系统,确保开发人员能够按照架构意图实现各项功能。
在了解架构师的职责后,再来看看架构师该具备什么能力才能成为一家公司中的「灵魂人物」。
1 设计能力-擅长整合分析
架构是过程,并非结果。
架构是架构师洞察内在结构、原则、规律与逻辑的过程,架构师要做到清晰理解系统,以及简洁描述,这是分析整合的能力。
一个架构师必须具备极强的分析能力,要做到根据产品宗旨和目标,分析清楚产品定位以及产品业务,再整合利用现有的技术领域,找出最佳方案,实现产品概念。
2 技术实力-实现产品规划
架构师首先要将代码写的清晰易懂,要能够实现功能,做到没有Bug,这要求架构师必须具备至少熟练掌握一门语言。
这是最重要的,每一名出色的架构师,必定是一位优秀程序员。架构师并不是纯粹的管理岗位,对那些爱写各式文档、画流程图、脱离代码、只说不做、高高在上的架构师,程序员们通常会称他们为——PPT 架构师。
不懂编程的架构师的职业生涯必定是短暂的,无论如何都不可本末倒置,要想实现自己的职业规划,不能荒废自己本身的技能,技术是架构师赖以生存的最基本能力。
所以,不推荐不热爱编程的人去做架构师,对于团队工作和个人发展来说,都会带来糟糕的后果。
3 沟通能力-能够横向沟通
架构师必须参与项目开发全过程,包括确认需求、系统分解、架构设计、技术选型、制定技术规格说明、系统实现、集成测试和部署各阶段,在这一系列过程中,架构师会与各部门沟通交流。
一个产品会有多部门合作,架构师在其中的沟通极为重要,直接影响产品进度与质量。架构师不仅要与开发人员沟通,也要和项目经理、分析人员甚至用户沟通,来实现产品的各种可能性。Java学习圈子
所以,对于架构师来讲,不仅有技术方面的要求,还有能够横向沟通的要求。