互联网
在互联网公司三个非常重要的职业,分别是“技术、产品、运营”,这个三角关系构建了一家互联网公司的灵魂也是基石,没有这三个团队都不能说是一家互联网公司。
这里面的“技术”就是我们要聊的群体,一般统称程序员,或者开发(研发)。而在这”技术“里面还有一群人,是处在程序员金字塔的顶端,就是架构师。
架构师绝大多数都是从程序员一点点爬上来的,就像理发店的学徒要经过数年才能坐上理发师,一开始就像打杂的。
还有群“PPT架构师”,他们比较特别(一般学历高),实际开发能力弱鸡但是普遍情商高(PMP很精通)。
技术能力
架构师角色一般都是系统的技术负责人,负责非功能性需求(性能、可靠性等),定义开发规范,搭建系统的核心框架,负责系统的总体设计,还要负责关键技术攻克。
一家公司架构师角色的人微乎其微,那必然不是一家注重技术的公司,或者说不认可技术领导者。
一个一线程序员成长为一名合格的架构师,一般要经过7年左右的沉淀,所要涉及的领域包括:数据库知识,计算机系统、网络知识,应用系统框架,系统安全,设计模式,一门精通语言,面向对象的分享、设计、开发能力,常用架构方法论,业务领域内的技术应用和发展,文档设计编写能力,项目推进实施能力。
架构师是根据需求,充分思考应用场景,选择和设计正确的基础架构模型,定义系统边界并约定交互方式,明确性能等规格指标,进行系统的整体设计和描述。
架构师本身是复合型人才,在掌控整个系统技术实现的基础上,还有负责技术团队的人员管理,同时负责研发过程中的组织协调工作。
管理能力
架构师技术上的leader能力外,还要具备团队管理的领导素质,如果断、诚信、远见等。
架构师必须要尽可能的使团队所有人的想法保持一致,为系统制定一个清洗的、强制性的、有远见的目标作为整个团队的动力,为实现整体目标提供基础。架构师还要提供一定的方法和模型作为技术解决方案,并排出各种不相关因素的影响。
必须具备紧迫感,随时解决出现的各种技术问题。
必须具备自信心,随时从容的面对团队和问题,以及外部沟通。
团队中作用
一般系统研发中普遍出现的角色,产品、研发、项目经理。产品负责对接客户明确需求,研发负责实现需求,项目经理负责进度跟踪和协调资源,而架构负责整体技术方案外还要负责一个很重要的事情就是协调技术人员与产品、项目的关系,承担需求翻译者,又承担进度落实推进者,还要承担进行技术讲解者。
架构师更加强调整体、宏观的系统设计,重点是架构级别的描述、分析和评估。
架构师是所在开发团队的技术路线引领者,具备很强的系统思维能力,要在诸多技术方案和工具中作出决策。一般是一个思想成熟、知识丰富、经验丰富、良好教育、学习能力强、善于沟通、决策能力强的人。
如何成长
从程序员成长为一个合格的架构师,在扎实的技术功底上,还要主动学习项目管理能力,培养自己沟通技巧,主动与产品、运维、开发、测试、项目管理的等人员接触,尝试在其中承担翻译做到技术的代理人。同时还要明白用对应角色能听懂的方式聊技术,这一点做到了,“翻译代理人”就实现了。
职业发展过程:
- 第一步:要技术积累,对每个接触到的技术深入原理;
- 第二步:广泛接触系统相关技术知识,构建知识体系;
- 第三步:积累技术之外的能力,沟通与管理;
- 第四步:学习架构方法论,相关系统与业务模型;
- 第五步:在一、两个相关行业内扎根,看透行业能技术趋势;
- 第六步:以更高思维层次带领团队培养团队前进;
- 第七步:...
很多管理者只简单的认为架构师就是在技术上很牛的人,技术硬就行了,这是不对的。如果只是想要一个比高级技术还牛的技术,那就干脆找个专家,专家一般都是技术细分领域布道师了,比如容器专家、运维专家等等。
架构师是一个符合型人才,不单单是一个高级技术。