七牛云许式伟:软件架构师的能力要求
极客时间编辑部
讲述:杜力大小:1.96M时长:04:16
从做事的角度来讲,程序员有三个级别,即软件搬砖师、软件工程师和软件架构师。
软件搬砖师的数量目前其实还不算太多,而产生软件搬砖师也并不难。许式伟曾做了一个长达四年的实践,教小学二年级的学生学习编程,等到学生六年级的时候,就可以达到软件搬砖师的水准。所以,编程并不是非常复杂的学问,只要具备基本的逻辑能力,把常规的业务代码按部就班地垒出来就可以了。
软件工程师就相对难一些,要求代码必须有可读性、可维护性。另外因为软件工程是群体协作,所以在协作方面也要求软件工程师有自己的方法论和思想。
而软件架构师需要具备综合能力。第一,在用户需求方面,要有判断能力和预见能力,此处的判断可以理解为对需求的鉴别,虽然这可能与产品经理最为相关,但架构师也需要有自己的判断力,以及对未来需求的预见能力。
第二,在产品迭代方面,软件架构师要有规划能力,规划需求被满足的优先级。架构师应该源于程序员,但不应该局限于程序员视角。
除此以外,在系统设计方面,软件架构师还要有分解和组合能力;在技术选型方面,要有决策能力。在人力资源方面,要有统筹能力。
综上不难看出,架构师对综合能力的要求比较高。许式伟认为,这是因为架构师需要对软件工程的结果负责。
如上所言,软件架构师需要具备产品经理的部分能力,因为需要对用户需求进行分析,并进行判断和预测,以及对产品迭代优先级进行把控。所以,软件架构师和产品经理之间的关系可以看作是技术和用户需求的关系,在这当中,产品是连接二者的“一座桥”。
用户需求的变化非常缓慢,那么为什么产品会产生迭代?这是因为技术在迭代,产品迭代是技术迭代导致的需求满足方式的变化,也就是说产品是需求满足的一种方式。
从这个意义上讲,架构师更多的是从技术角度看产品,而产品经理是从用户需求出发,二者的能力达到一定程度时,能力会有相同点,虽然产品经理在做产品架构,架构师在做技术架构,但二者的最终目的是一样的。
1. 从产品和需求视角看架构师
如果展开讲解产品定义过程,首先需要进行需求梳理,关心用户反馈。找到用户的根源需求。其次,有些用户需求是稳定的,有些是变化的。所以架构师需要预见需求的变化点并做对应的开放式设计。最后,理清产品边界。此外,在梳理需求时,架构师需要考虑现有的市场策略,哪些是主流方案等等,考虑为某些关心既有市场的玩家做桥梁,这些桥梁也是产品的功能点。
2. 从技术视角看架构师
从技术视角看,架构师需要的关键能力是技术的全局视角,所谓的技术全貌是指从底到上的核心骨架。为什么真正意义上的架构师比较难找?这是因为需要构建两个层次的能力:
懂用户、懂市场,有一定市场洞察能力。
建立技术上的全局视角。
这两点也是软件架构师所需具备的最核心的能力。一方面,作为技术人员,可能不愿意和用户打交道,但是作为架构师,和用户打交道会帮助自己成长。因此,架构师要尊重用户反馈,并学会思考需求分析和推演,这比技术能力更重要。另一方面,架构师必须拥有技术全局视角,只有掌握每一层的核心思想,才能在架构设计中没有技术盲点。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(2)
- 最新
- 精选
- 爱学习的大叔开放式设计确实很重要,理清哪些是伪需求2
- 加菲猫要达到软件架构师也需要时间的积累和经验的积累,也需要一定的刻意练习,比如综合能力、迭代能力、产品能力,懂用户,懂市场2
收起评论