谈一谈架构师这个称号
Contents
几年前规划自己的发展方向时,待选目标里面有:
- 后台系统架构师
- 技术专家。
按当年的理解:架构师偏向于技术的广度,要带领团队建设系统。技术专家偏技术的深度,更关心自己的一亩三分地。
什么是架构师
但什么是架构师呢,似乎并没有清晰的职责描述,不像"JAVA程序员"这个职位一样,很明确的知道其岗位职责。从国内互联网公司的职业体系看,虽然招聘jd上会有架构师的岗位,但入职后,往往采用通道+职级的称呼方式,比如"初级后台开发工程师", “高级后台开发工程师”,架构师不会经常提起。
之所以出现这样的情况,是因为没有搞清楚这些称呼的真是含义。按我现在的理解:“工程师"是一种职业,类比军队行业的"军人”; “初级后台开发工程师”、“高级后台开发工程师"是一种职级,类比"营长”, “团长”;而"架构师"只是一种临时的、针对特定项目的头衔,类比于军队中的"总指挥官"也是针对特定战役的。所以说"架构师"是服务于一个特定产品或项目的,而充当架构师的往往是一些高级开发工程师,如果说招聘JD里面说招聘一名架构师,那潜台词已经表明招聘一名高级工程师了。
到这里可以给出架构师的定义了:架构师,指的是某一项目或产品的架构设计者。
举例说明,Anders Hejlsberg在wikipedia中的一个称呼是:the chief architect for the team that produced Delphi
。
那一个项目的架构师应该架构哪些方面,其应该具备哪些架构能力,怎样衡量其是否完成架构呢?
为什么需要架构师
如果一个规模很小的软件,一个人可以完成,则此时不需要架构师,只需要关注代码的结构。只有当项目规模复杂,涉及人员较多时,为了更好的完成项目,此时才需要架构师,其职责是:
- 分层,拆解模块
- 制定接口规范,中间件选型,统一术语
- 推进开发进度,关注开发风险
- 关注性能和扩展性问题
架构师的目标
“总指挥官"的目标是通过指挥达到战役的胜利,架构师的目标当然是通过架构达到产品的成功。那怎样算成功呢?
- 产品本身是积极向上的,是有益于社会的。
- 产品的按时交付,为公司或组织完成了更高层次目的。
- 产品的可持续性。
架构师的能力要求
- 更高的视野
- 了解团队的实际情况
- 丰富的技术经验
- 攻克难题的能力
- 人才的传承
License 知识共享署名 3.0 中国大陆许可协议