HI,movno1
分类:
2008-09-19 09:14:21
按“主程序员”组织软件开发小组是一条比较成功的经验。“主程序员”应该是“超级程序员”。其他成员,包括程序员、后备工程师等,是主程序员的助手。主程序员负责规划、协调和审查小组的全部技术活动。程序员负责软件的分析和开发。后备工程师是主程序员的助手,必要时能代替主程序员领导小组的工作并保持工作的连续性。软件开发小组还可以根据任务需要配备有关专业人员,如数据库设计人员、远程通信和协调,提高了工作效率。这种形式的成败主要取决于程序员的技术和管理水平。除了按主程序员负责的程序员小组组织开发人员外,还可以按“无我程序设计”建立软件民主开发小组。这各组织形式强调组内成员人人平等,组内问题均由集体讨论决定。这种组织形式有利于集思广益、互相取长补短,但工作效率比较低。
软件项目或软件开以小组可以配置若干个秘书、软件工具员、测试员、编辑和律师等。秘书负责维护和软件配置中的文档、源代码、数据及所依附的各种磁介质;规范并收集软件开发过程中的数据;规范并收集可重用软件,对它们分类并提供检索机制;协助软件开发小组准备文档,对项目中的各种参数,如代码行、成本、工作进度等,进行估算;参与小组的管理、协调和软件配置的评估。大型软件项目需专门配置一个或几个配置管理人员,专门负责软件项目的程序、文档和数据的各种版本控制,保证软件系统的一致性与完整性。软件开发小组内部和小组之间经常交流情况和信息,以便减少误解,删除软件中的个人特征,提高软件的质量.
软件项目的开发实践表明,软件开发各个阶段所需要的技术人员类型、层次和数量是不同的。软件项目的计划与分析阶段只需要少数人,主要是系统分析员、从事软件系统论证和概要设计的软件高级工程师和项目高级管理人员。概要设计时要增加一部分高级程序员,详细设计时,要增加软件工程师和程序员,在编码和测试阶段还要增加程序员、软件测试员。在此过程中软件开发管理人员和各类专门人员逐渐增加,到测试阶段结束时,软件项目开发人员的数量达到顶峰。软件运行初期,参加软件维护的人员比较多,过早解散软件开发人员会给软件维护带来意想不到的困难。软件运行一段时间以后,由于软件开发人员参与纠错性维护,软件出错率会很快衰竭,这时软件开发人员也就可以逐步撤出。如果系统不做适应性或完善性维护,需要留守的维护人员就不多了。上述人力资源安排类似下所示Rayleigh-Norden曲线。根据Putnam得出的软件项目开发工作量与开发时间的四次方成反比的结论,得出软件开发的人员-时间折衷定律:在时间允许的情况下,适当减少人员会提高工作效率,降低软件开发成本。F.Brooks从大量的软件开发实践中发现:“向一个已经延期的软件项目追加开发人员,可能使项目完成的更晚。”这从另一个角度说明软件开发宁可时间长一点,人员少一点。这样可以大大减少人员之间的通信开销,工作效率会更高些。
由此可见,在软件开发过程中,人员的选择、分配和组织是涉及软件开发效率、软件开发进度、软件开发过程管理和软件产品质量的重大问题,必须引起项目负责人的高度重视。