上完《LabVIEW高级构架课程》,学员常问的一个问题是:软件构架师与软件开发工程师有什么区别?
从软件开发能力来说:
- 构架师除了需要有扎实的开发能力外,还需要具备很强的抽象能力。对于复杂系统,从整体构架设计到对核心技术的正确选择,到API函数的接口设计和实现逻辑,都要能驾驭。
- 软件开发工程师重点在开发和实现,即在规定的时间把定义好的模块开发出来。对开发语言的熟悉,对框架的熟悉,对典型问题的高效实现方法的熟练。
- 开发工程师的能力是构架师能力的一个子集,即团队只有一个人的时候,构架师也能把软件开发出来,仅仅是需要一些时间而已。
从组织领导能力来说:
- 构架师需要丰富的技术储备,开阔的技术视野,以及日积月累的技术功底,这些都非一日之功
- 构架是需要建立良好的规划能力、表达能力、技术领导能力和技术影响能力
- 规划能力要求构架师不仅要关注当前的产品,更要关注未来的趋势;对未来趋势的判断,由此作出相应的准备和积累;不仅要思考目标,还要思考达成目标的过程,以及当前最佳ROI的实现方式,不断逼近理想状态。
- 表达能力要求构架师面对团队内部,跨部门,管理层和客户时,针对其不同的需求,用不同的视角和表达方式与这四大受众沟通,求得理解、信任和支持,达到事半功倍的效果
- 技术领导力要求构架师不断学习,同时也带领团队成员不断成长,让团队成员经过“事上磨炼”后,有成长感、收获感、成就感。越发愿意跟着自己一起工作,不断成长。
- 技术影响力要求构架师不断输出自己优秀的经验,让大家受益。例如:公开演讲、撰写技术文章/书籍、发表论文/专利、组织部门内部技术交流和课程等等