![](/images/titleicon.gif)
软件开发项目的开发实践表明,软件开发各个阶段所需要的技术人员类型、层次和数量是不同的。软件开发项目的计划与分析阶段只需要少数人,主要是系统分析员、从事软件系统论证和概要设计的软件高级工程师和项目高级管理人员。概要设计时要增加一部分高级普通软件开发人员,详细设计时,要增加软件开发工程师和普通软件开发人员,在编码和测试阶段还要增加普通软件开发人员、软件测试员。在此过程中软件开发管理人员和各类专门人员逐渐增加,到测试阶段结束时,软件开发项目开发人员的数量达到顶峰。软件运行初期,参加软件维护的人员比较多,过早解散软件开发人员会给软件维护带来意想不到的困难。软件运行一段时间以后,由于软件开发人员参与纠错性维护,软件出错率会很快衰竭,这时软件开发人员也就可以逐步撤出。如果系统不做适应性或完善性维护,需要留守的维护人员就不多了。上述人力资源安排类似下所示Rayleigh-Norden曲线。根据Putnam得出的软件开发项目开发工作量与开发时间的四次方成反比的结论,得出软件开发的人员-时间折衷定律:在时间允许的情况下,适当减少人员会提高工作效率,降低软件开发成本。F.Brooks从大量的软件开发实践中发现:“向一个已经延期的软件开发项目追加开发人员,可能使项目完成的更晚。”这从另一个角度说明软件开发宁可时间长一点,人员少一点。这样可以大大减少人员之间的通信开销,工作效率会更高些。
软件开发项目或软件开以小组可以配置若干个秘书、软件工具员、测试员、编辑和律师等到。秘书负责维护和软件配置中的文档、源代码、数据及所依附的各种磁介质;规范并收集软件开发过程中的数据;规范并收集可重用软件,对它们分类并提供检索机制;协助软件开发小组准备文档,对项目中的各种参数,如代码行、成本、工作进度等,进行估算;参与小组的管理、协调和软件配置的评估。大型软件开发项目需专门配置一个或几个配置管理人员,专门负责软件开发项目的程序、文档和数据的各种版本控制,保证软件系统的一致性与完整性。软件开发小组内部和小组之间经常交流情况和信息,以便减少误解,删除软件中的个人特征,提高软件的质量.
大型软件开发项目需要很多人的能力合作,花费一年或数年的时间才能完成。为了提高工作效率,保证工作质量,软件开发人员的组织、分工与管理是一项十分重要和复杂的工作,它直接影响到软件开发项目的成功与失败。首先,由于软件开以人员的个人素质与差异很大,因此对软件开发人员的选择、分工十分关键。1970年,Sackman对12名普通软件开发人员用两个不同的程序进行试验,结论是:程序排错、调试时间差别为18:1;程序编制时间差别为15:1;程序长度庆功别为6:1;程序运行时间差别为13:1。近年来,随着软件开发方法的提高、工具的改善,上述差异可能会减小,但软件人员的合理选择及分工,充分发挥每个人的特长和经验显然是十分重要的。其次,因为软件产品不易理解、不易维护,因此软件人员的组织方式十分关键。一个重要的原则是,软件开发人员的组织结构与软件开发项目开发模式和软件产品的结构相对应,这样可以达到软件开发的方法、工具、与人的统一,从而降低管理系统的复杂性,有利于软件开发过程的管理与质量控制。按树形结构组织软件开发人员是一个比较成功的经验。树的根是软件开发项目经理和项目总的技术负责人。理想的情况是项目经理和技术负责人由一个人或一个小组担任。树的结点是普通软件开发人员小组,为了减少系统的复杂性、便于项目管理,树的结点每层不要超过7个,在此基础上尽量降低树的层数。普通软件开发人员小组的人数应视任务的大小和完成任务的时间机时定,一般是2~5人。为降低系统开发过程的复杂性,普通软件开发人员小组之间,小组内普通软件开发人员之间的任务界面必须清楚并尽量简化。
由此可见,在软件开发过程中,人员的选择、分配和组织是涉及软件开发效率、软件开发进度、软件开发过程管理和软件产品质量的重大问题,必须引起项目负责人的高度重视。
【全文完】版权声明:
1、陕西弈聪网站内容中凡注明“来源:XXX(非陕西弈聪网站)”的作品,转载自其它媒体,转载目的在于传递更多信息,其中涉及的网站建设,网站优化,百度关键词优化,西安软件开发等技术细节并不代表本站赞同支持其观点,并不对其真实性负责。对于署名“陕西弈聪”的作品系本站版权所有,任何人转载请署名来源,否则陕西弈聪将追究其相关法律责任。
2、本站内容中未声明为“原创”的内容可能源自其它网站,但并不代表本站支持其观点,对此带来的法律纠纷及其它责任与我方无关。如果此内容侵犯了您的权益,请联系我方进行删除。
![](/images/titleicon.gif)