软件架构师能力树
1. 好奇:架构师究竟做什么?
1.1 角色与职责
角色 | 职责 |
---|---|
1.软件专家 | 软件架构的高层设计决策,宣讲技术标准,包括编码规范、工具、平台 |
2.基础架构设计师 | 软件架构设计工作,包括组件及其关系、运行环境、系统演进路线等 |
3.干系人之间的沟通者 | 业务人员与开发者之间“横向”沟通,开发者与管理者之间“纵向”沟通,“技术”沟通集成不同的技术或应用 |
1.2 架构师的层级
架构师层级 | 说明 |
---|---|
应用级 | 专注于单个应用,处理底层、细节设计。应用级架构师通常在一个小组范围内沟通 |
方案级 | 专注于满足某个业务需求的一个或多个应用设计,主要处理底层细节设计,也会涉及到一些高层设计。方案级架构师通常在多个小组之间沟通 |
企业级 | 专注于多个解决方案,处理高层、抽象设计,由方案和应用架构师来落地执行。企业级架构师通常在组织内部沟通 |
1.3 典型活动
架构设计师一项持续性活动,下面的活动会持续进行:
定义、决定开发技术与开发平台;
定义开发标准:包括编码规范、工具、审核流程、测试方法等;
理解、澄清业务需求;
根据需求设计系统,做出设计决定;
为架构定义、架构定义与架构设计决定编写文档,进行沟通;
检查、审核架构与代码:比如定义的模式、编码规范是否有效执行;
与其他架构师、干系人协作;
培训、指导开发者;
把高层设计细化为底层设计,进行优化。
2. 成为软件架构师要具备哪些能力?
架构师能力 | 说明 |
---|---|
1.Design 设计能力 | 熟悉基础的设计模式,深入理解架构设计模式、反模式,了解质量度量方法与指标,乐于尝试并理解不同的技术栈,分析、理解模式应用的场景,保持好奇心 |
2.Decide 决断力 | 理解设计重点,设定优先级,了解自己的能力边界,评估各种设计决策 |
3.Simplify 设计简化力 | 设计简化的过程也是反思设计的过程,从更高的层次“鸟瞰”自己的设计,对问题分而治之,重构自己的设计 |
4.Code 代码能力 | 架构师编码,目标是理解开发者在干什么,更好的让开发者采纳设计 |
5.Document 写作能力 | 区分好代码和差代码,尽可能生成文档,从读者的角度写作的时候抓重点,学习架构框架 |
6.Communicate 沟通能力 | 学习如何表达自己的观点,在重要的场合演讲,针对干系人的不同关注点找到正确的沟通方式,经常沟通,对没有参与设计决策的人能够正确地传递重要信息,随时随地可进行报告 |
7.Estimate and Evaluate 项目管理能力 | 了解项目管理基础原则,能够评估“未知”框架 |
8.Balance 平衡能力 | 质量与成本平衡,解决互相冲突的目标,冲突管理 |
9.Consult and Coach 顾问与教练能力 | 具备远见,搭建实践社区,组织开放会议 |
10.Market 市场能力 | 具备说服能力,坚持不懈、捍卫自己的观点,找到支持伙伴,重复、笃信 |
3. 总结
从产出来看,架构师是“全栈”工程师。具备好奇心,沟通能力(理解能力、说服力、写作能力),学习能力,产品与市场能力,项目管理能力,自我驱动能力。
作者:tangyouhua
链接:https://juejin.cn/post/7022121279335448606