关于软件项目经理与架构师的区别,来自于 Rational Edge的一句话很形象:

      “在电影制作术语中,软件项目经理被称作制作人,因为他们决定需要做什么事情。而软件构架师就是导演,他来决定所作的事情是否正确,并且他要保证产品符合投资人的要求。”

 

大家都知道,项目经理可以不懂技术,负责项目的宏观计划、组织和控制,要求需要很好的领导才能、沟通能力、人际交往能力、承担压力的能力和应变能力。那软件构架师呢?是不是需要拥有很精深的技术?除了技术外其他方面的能力是否就不那么重要?显然不是。

 

 

1、构架师是技术主管。需要很强的技术能力,也需要很好的领导、决策和沟通能力。他需要确定项目的技术路线,组织进行技术交流,在技术上要做出正确的决策,确定团队成员都能按照正确的技术路线和方法去做事情,很大程度上决定了项目的整体质量。

2、构架师需要非常广泛的技术,这比技术深度更重要,当然架构师也需要在特定领域有一定的技术深度。

3、架构师应当熟悉用户业务流程,能够更好的把握系统需求,确保需求能够被准确的把握。一个不了解用户业务流程的架构师,是无法写出能够解决实际问题的解决方案的。

4、构架师需要很好的设计技巧,对于需求的变化能够以最小的代价完成,对于系统的目标质量属性有充分的理解,比如可用性、安全性、性能、可移植性、可修改性等等,对系统不同的质量属性需求,能够设计出合理的战术进行应对。

5、构架师是一个谈判代表。他需要与投资人交流很多软件架构尺度、规模和性能等问题,把握需求的风险,对于有较大风险的需求进行取消,与投资人协商以达成共识,这都需要一些谈判的技巧。

 

从目前自己的工作来看,自己也在朝软件架构师这个方向走。最近学习了《软件项目管理》和《软件体系结构》相关的知识,对于软件项目经理和软件架构师的职责也有了更深入的理解,对于架构的一些要素和方法有了更好的理解。