【IT168 技术文档】上周从开发部转来一个刚毕业的小伙子,要我面试一下看看是否适合质量部的相关工作。交谈中,小伙子说大学里已经考过了系统分析员,于是我便问他:“系统分析员主要做什么?” 小伙子想了一会说道:“系统分析员主要就是组织、管理和规划系统”。于是我接着问道:“如果负责组织、管理、规划的话,那和项目经理的区别是什么?”小伙子想了半天,终于摇着头说:“不知道。”问这个问题倒不是为了为难小伙子,主要是希望他能够明白,书本上学来的东西必须和实践联系起来,在开发也好在质量部也好,都离不开自己的主动学习和思考,没有思考的学习只是在收集知识而已,是不能够化为己用的。在离开学校的头两年里,大部分人是无法找到自己真正的兴趣所在,我也是一样,所以刚开始无论在哪个岗位都必须主动学习和思考,包括对自己现有岗位的知识的学习,以及由于不满而对岗位之外的知识的学习(当然这是在工作之外),而不满正是思考的起点。不过,正是因为无法找到真正的兴趣所在,就需要坚守岗位,一方面也许它就是自己的兴趣所在,一方面也为了寻找真正的爱好而积蓄力量。
额外的话说了不少,还是回来看看,到底“系统分析员、架构师、项目经理”之间有着什么样的差别?下面按自己的理解粗略的整理了一下,也许并不全面,绿色部分代表每一个角色主要需要参与考虑的活动(注:下面所说的系统分析员混合了设计的职责):

首先看一下架构师和系统分析员的区别:
1、系统分析员必须考虑自己所设计系统的方方面面,他是系统实现的原始作者,也对系统能否满足客户的技术要求以及产品成本是否可接受起着最直接的作用。
2、架构师一般在软件组织内仅仅是少数人,他们主要负责对产品的架构进行评估以及子系统之间的接口批准上,评估的主要方面集中在系统级的质量属性和成本上,包括:当前架构是否满足可靠性要求、系统架构的可扩展性、可重用性、性能以及基础的公共功能等等。他们必须对系统分析员设计出来的系统进行最初的把关,所以责任重大,也需要经验非常丰富的人来承担。在公司其他部门和Ivar Jacobson的交流中,Jacobson明确的指出,架构委员会不是常设组织,通常都来源于团队的系统分析员,唯一常设的职位通常只有一个主席,其他的成员必须临时来源于系统开发的一线,只有他们最了解系统开发的基本思想。
3、系统成本是架构师和系统分析员最容易忽略的事情,而这个也是他们最基本的职责之一。