- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * 第11章 组织 11.1 民主制程序员组 有两种极端方法可用来组织程序员组,这两种组织方法分别称为民主制程序员组和主程序员组。 构成民主制程序员组的基本概念是“无私编程”。 1、改变评价程序员价值的标准,每名程序员都应该鼓励该组其他成员找出自己编写的代码中的错误。 2、不要认为存在错误是坏事,而应该认为是正常的事情,找出模块中的一个错误是取得了一个胜利。 3、不能嘲笑程序员所犯的编码错误。 4、程序员组作为一个整体,将培养一种平等的团队精神,坚信“每个模块都是属于整个程序员组的,而不是属于某个人的”。 5、民主制程序员组的特点是:小组成员完全平等,享有充分民主,通过协商做出技术决策。 6、小组成员间的通信是平行的,如果一个小组有n个成员,则可能的通信信道有n(n-1)/2条。 7、程序小组的规模应该比较小,以2~8名成员为宜。 8、如果项目规模很大,则应该使用多个程序设计小组,每个小组承担工程项目的一部分任务,在一定程度上独立自主地完成各自的任务。 11.2 主程序员组 美国IBM公司在20世纪70年代初期开始采用主程序员组的组织方式。采用这种组织方式主要出于下述几点考虑: · 软件开发人员多数比较缺乏经验; · 程序设计过程中有许多事务性的工作,例如,大量信息的存储和更新; · 多渠道通信很费时间,将降低程序员的生产率。 Baker描述的一个典型的主程序员组如图11.1所示。该组由主程序员、后备程序员、编程秘书以及1~3名程序员组成。在必要的时候,该组还有其他领域的专家(例如,法律专家,财务专家等)协助。 11.3 现代程序员组 实际的“主程序员”应该由两个人来担任:一个技术负责人,负责小组的技术活动;一个行政负责人,负责所有非技术的管理决策。这样的组织结构如图11.2所示。 由于程序员组的成员人数不宜过多,当软件项目规模较大时,应该把程序员分成若干个小组,采用图11.3所示的组织结构。该图描绘的是技术管理组织的结构,非技术管理组织的结构与此类似。由图可以看出,产品的实现作为一个整体是在项目经理的指导下进行的,程序员向他们的组长汇报工作,而组长向项目经理汇报工作。当产品规模更大时,可以增加中间管理层次。 把民主制程序员组和主程序员组的优点结合起来的另一种方法,是在合适的地方采用分散做决定的方法,如图11.4所示。这样做有利于形成畅通的通信渠道,以便充分发挥每个程序员的积极性和主动性,集思广益攻克技术难关。这种组织方式对于适合采用民主方法的那类问题(例如,研究性项目或遇到技术难题需要用集体智慧攻关)非常有效。 11.4 软件项目组 程序员组的组织方式主要用于实现阶段,当然,也适用于软件生命周期的其他阶段(当考虑在更广阔范围的应用时,把程序员组更名为软件项目组更恰当一些)。这里从更广阔的角度进一步讨论软件项目组的组织方式。 一、三种组织方式 Mantei提出了下述的三种通用的项目组组织方式。 1、民主分权式(Democratic Decentralized,缩写为DD): 这种软件工程小组没有固定的负责人,“任务协调人”是临时指定的,随后将由协调别的任务的人取代。用全体组员协商一致的方法对问题及解决问题的方法做出决策。小组成员间的通信是平行的。 2、控制分权式(Controlled Decentralized,缩写为CD): 这种软件工程小组有一个固定的负责人,他协调特定任务的完成并指导负责子任务的下级领导人的工作。解决问题仍然是一项群体活动,但是,通过小组负责人在子组之间划分任务来实现解决方案。子组和个人之间的通信是平行的,但是也有沿着控制层的上下级之间的通信。 3、控制集权式(Controlled Centralized,缩写为CC):小组负责人管理顶层问题的解决过程并负责组内协调。负责人和小组成员之间的通信是上下级式的。 选择软件工程小组的结构时,应该考虑下述7个项目因素。 · 待解决的问题的困难程度; · 要开发的程序的规模(用代码行或功能点度量); · 小组成员在一起工作的时间(小组生命期); · 问题能够被模块化的程度; · 对待开发的系统的质量和可靠性的要求; · 交付日期的严格程度; · 项目要求的社交(通信)程度。 表11.1概括了项目特性对项目组组织方式的影响。 *
原创力文档


文档评论(0)