论软件开发中的三种重要角色

系统构架,是对已确定的需求的技术实现构架。与产品设计相比,系统构架设计的工作更明确,而目前该领域也已经形成了较为成熟、完善的方法论和一整套易于掌握、传授的知识。相应地,系统架构师是一个不折不扣的技术人员,主要着眼于系统的“技术实现”。他/她的责任是最终确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点。因此他/她应该是特定的开发平台、语言、工具的大师,对常见应用场景能马上给出最恰当的解决方案,同时要对所属的开发团队有足够的了解,能够评估自己的团队实现特定的功能需求需要的代价。

这里,最容易导致误解的部分是产品经理和系统架构师的区别。我感到现有的不少论述和实践都倾向于将二者混为一谈。但在我看来,如果把开发软件比作摄制电影,产品经理之于系统架构师,就正像编剧之于导演。产品经理虽然要有一定技术背景,但仍应属于“商业人士(business people)”,而系统架构师则肯定是一个技术专家。二者看待问题的立场、角度和出发点完全不同。当然,就像有时电影导演也出任编剧(甚至存在“作家电影”流派),对于特定的开发领域或项目,产品经理和系统架构师这两种角色的重合也可能是无害、甚至有益的(我能想到的一个领域是编程语言的设计),但即使如此,不加区别地对待需求和实现、产品设计和系统构架设计,肯定是危险的。如果你处在一人权充两种角色的情况下,你应该时刻意识到自己目前进行的是哪一种职责,并据此调节视角和思路。

我感到这两种角色的含混还来自人们对“Architect”这个表达方式的不同用法。Architect和Architecture,这组显然是借自建筑学的隐喻,经常被不加区别地使用在产品设计和技术实现这两个不同的方面。Brooks本人在《人月神话》做出的“Architect”和“Implementer”区分,基本上对应于我在上面谈到的“产品设计”和“技术实现”,但是由于“技术构架”本身也可以称作Architecture,所以一般谈到System Architecture或System Architect时,人们关注的却主要是技术实现方面。正如Martin Fowler所说,人人都想被称为Architect而不只是Engineer,所以这里用语的含混可能也体现了不同领域的人们对Architect这个好词的争夺。

有一派哲学理论认为,多数“大问题”实际上都源自琐碎的语词误用。希望上述讨论也能通过区分名称而澄清软件开发中的一个重要事实。

如果继续上面的电影隐喻,那么摄制组中的“制片”职责也就对应于我所说的“项目控制”。显而易见,项目控制工作与上面谈到的产品设计、构架设计都不同,如果说产品设计偏重于“商业”、系统构架设计偏重于“技术”,那么项目控制注重的就是“管理”。它主要关注的是项目本身的进度、质量等方面。软件开发项目需要专人负责这些内容,我愿意称此为“项目经理”。

项目控制/管理已经形成了一个专门的学科(Project Management),对于软件项目经理,其职责也未脱离该学科的描述,包括项目计划、进度跟踪/监控、质量保证、配置/发布/版本/变更管理、人员绩效评估等方面。优秀的项目经理需要的素质,并不仅在于会使用几种软件或是了解若干抽象的方法论原则,更重要的在于从大量项目实践中获得的宝贵经验,以及交流、协调、激励的能力,甚至还应具备某种个性魅力或领袖气质(Charisma)。通俗地说,也许学校里的学生会主席要比“学习尖子”更适合这样的职位。

由此可见,项目经理和系统架构师在职责上有很大差异。混同这两个角色,往往也会导致低效、无序的开发。特别是,从性格因素上讲,单纯的技术人员倾向于忽视“人”的因素,而这正是管理活动的一个主要方面。另外,就像战争中的空军掩护(Air Cover)一样,专职的项目经理能够应付开发过程中大量的偶发事件和杂务,对于一个规模稍大的项目(《人月神话》似乎说的是6个人以上),这些杂务本身就能占用一个全职工作者的几乎全部时间。

<<上一页 1 2 3 4 下一页>>

最全面的笔记本导购资讯,给您全方位的笔记本导购平台
[数据挖掘专家] [数据挖掘研究院] [数据挖掘论坛] [数据挖掘实验室]
上一篇:6西格玛与项目管理
下一篇:论软件开发中的三种重要角色
最新评论共有 0 位网友发表了评论 , 查看所有评论
发表评论( 不能超过250字,需审核,请自觉遵守互联网相关政策法规。 )
匿名?
数据挖掘网站导航 数据挖掘论坛导航
  • 数据挖掘工具
  • 数据挖掘论坛
  • DataCruncher - Cognos
  • MineSet - MathSoft
  • Intelligent Miner - GainSmarts
  • Sqlserver - SAS - Clementine
  • CART - Weka - WizSoft
  • NeuroShell - ModelQuest
  • data mining tools - Darwin
  • 数据挖掘交友
  • 数据挖掘博客
  • 数据挖掘工具
  • 数据挖掘资源
  • 数据挖掘技术算法
  • 数据挖掘相关期刊、会议
  • 研究院联盟合作专区
  • 数据挖掘基础与相关技术
  • 数据挖掘厂商与就业
  • 数据挖掘研究者乐园
  • 知名厂商数据挖掘工具资料
  • 国内数据挖掘实验室
  • Foreign Data Mining Lab
  • 热点关注
  • 基于.NET开发和运行环境架构校园信息系统(
  • 基于.NET开发和运行环境架构校园信息系统(
  • 基于.NET开发和运行环境架构校园信息系统(
  • 基于.NET开发和运行环境架构校园信息系统(
  • 基于.NET开发和运行环境架构校园信息系统(
  • 软件开发中项目需求管理简述
  • 基于.NET开发和运行环境架构校园信息系统(
  • 基于.NET开发和运行环境架构校园信息系统(
  • 细谈软件需求分析过程
  • 商场荧屏导购展板系统软件需求说明书
  • 论坛最新话题
  • Foundations of Statistical Natural Langu
  • Game Theory meet Data Mining: A Recent P
  • System Building: How does it help or hin
  • 数据挖掘与Clementine培训
  • 新手报到
  • 求 SASEM 客户流失预测分析
  • 数据挖掘工程师/搜索研究院—北京——无线
  • 数据挖掘入门介绍(如何着手数据挖掘)
  • Information Overload Survey Results
  • The INEX 2005 Workshop on Element Retrie
  • 相关资讯
  • 软件开发中项目需求管理简述
  • 面向服务架构(SOA)的原则
  • “再用式”软件开发方法
  • 细谈软件需求分析过程
  • 客户关系管理的三大纪律
  • 需求调研分析中的项目干系人概念
  • 获取用户需求的沟通技巧之一
  • 获取用户需求的十大沟通技巧
  • 新产品开发项目中的需求问题
  • 谈谈软件开发中的调研对象与被调研对象
  • 数据挖掘实验室资料
  • 数据挖掘博客地址
  • 数据挖掘实验室网站地址
  • Prepare for Medicare audits by using dat
  • 注册成为SAS用户与爱好者俱乐部会员
  • 水南梅
  • 明日烟
  • 新人报道
  • 下载
  • 厦门服务器托管,450元/月—0592-5177319 高
  • 买空间送域名--0592-5177319 高静