浅析软件开发项目的成败关键 - -行业子站

来源:百度文库 编辑:神马文学网 时间:2024/04/30 00:30:42
本文关键字   摘 要:每个软件开发项目都要经过漫长的生命周期,有很多因素可以影响其成功与否。本文从四个方面阐述了软件开发项目的成败关键,并给出了一些案例。

  关键词:软件开发;软件项目;项目管理

  引言

  软件项目的开发过程经过了数十载的磨合与改进,迄今为止,软件开发已经进入到了一个前所未有的时期,然而,软件项目的质量并没有得到提高,相反却有所下降。任何一个软件开发项目都必须经过问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试、软件维护等8个阶段,开发软件项目过程中所涉及的内容都是无形的东西,其最终产品是软件的程序代码及一些文档。开发软件项目是一个庞大的系统工程,需要将开发人员的主观设计思想和工程化的开发结合起来,利用软件工程方法管理、规范整个开发过程。

  尽管编程语言和测试工具在逐年改进、完善,但是软件开发项目仍然仍然很难满足客户的实际需求。据Standish Group咨询公司发布的数据可看出,软件开发项目的成功率仍然很低。一个软件开发项目从其成立开始,项目各方人员都期望项目能够根据既定的计划一步步顺利地走向成功,然而影响项目的成败因素是多方面的。

  1 项目范围管理

  项目范围的管理就是对项目应该包括什么和不应该包括什么进行相应的定义和控制。它包括用以保证项目能按要求的范围完成所涉及的所有过程,包括:确定项目的需求、定义规划项目的范围、范围管理的实施、范围的变更控制管理以及范围核实等。

  在软件开发项目中其范围、时间和成本是互相影响的,其中项目范围的管理尤为重要。项目的范围越大,其耗费的时间和成本就会越多,反之亦然。因此,必须在项目开发之初明确项目的范围,从而保证项目成本和时间的可控制性。

  失败案例:某企业需要开发一生产管理软件,因为项目管理范围界定不清,随着用户反复更新需求,使得该项目的投资成本比预期高出了几倍,最后在项目启动一年后,只能半途而废。

  成功案例:所有成功的软件开发案例一样,在项目启动之前就会明确用户的需求,而且将这些需求量化,项目组所在的公司也制定了一套完善的变更控制管理流程,在项目进行中,所有内容都按找原计划规范进行。一般项目完成时间和成本与预先估算的相差无几。


  
  2 开发队伍

  在开发软件项目的过程中制约项目成败的最关键的因素是“人”,因此,开发队伍的建设至关重要。

  2.1 确立软件项目经理权威、主导地位

  软件项目经理是整个软件开发团队的带领者,必须有能力领导项目团队准时、优质地完成全部工作,确保项目目标的实现。软件开发的项目经理,既要是一个软件开发技术上的专家,能够设计易懂好用的软件,还要是一个管理专家,能够得心应手的计划和管理一个开发项目,协调团队中间的合作,推动项目进程的管理专家。这就要求软件项目经理必须熟悉整个项目开发的全过程,同时具有统领全局的眼光,在关键时刻要能做出准确的决策。只有具有良好沟通能力和勇于承担责任的项目经历才能在软件开发团队中树立自己的权威。

  2.2 充分发挥软件开发人员的个性

  每个软件开发人员都有不同的个性,在软件开发过程中,项目经理应该根据各个开发人员的个性分配不同的开发任务。这样既可以充分调动开发人员的积极性和工作热情,又可以提高项目开发的效率,同时又有利于整个团队的和谐。当然,这一切必须基于软件开发的规范和企业的管理制度。

  2.3 培养团队的集体荣誉感

  软件开发项目的执行过程是一个由很多团队共同出力、同步进行的过程,需要整个开发部门的各个团队良好的配合和协作来帮助最后达到项目的整体目标,制造出优秀的软件。在软件开发项目的执行过程中,团队的配合十分重要。一个好的团队才有可能开发出一个优秀的产品,一个软件开发项目的成功实际上是整个项目开发团队的努力的结果。因此,必须强调协作配合的精神,增强团队的凝聚力。

  2.4 形成沟通、互助、互信的工作氛围

  任何项目的实施都不可能一帆风顺,遇到问题应及时沟通处理。通过沟通消除彼此误解,快速找到解决问题的办法。不仅需要项目经理充分扮演好“润滑油”的角色,还需要所有人员充分投入。只有彼此信任互相帮助,整个团队才有可能协调统一,才会默契十足。在沟通、互助、互信的工作氛围内,实现工作的效率的最大化。

  3 设计能力

  项目组设计人员能力的不足是项目失败的原因之一。在开发软件项目过程中,由于设计人员的能力不够而导致设计结果无法实现的时有发生。一些中小型团队,为降低成本,只重视代码、实现任务,不重视需求分析、架构设计等,对软件开发过程管理非常不规范,增加了软件开发项目的风险。开发技术人员的流动性也影响着开发团队的稳定,另一方面在一些中小城市,缺乏优秀软件开发人员。如何吸引高素质开发人才,培养稳定优秀的开发团队,是目前软件开发企业需要解决的问题。


  
  失败案例:

  由于开发人员本身的技术问题而造成的项目失败的案例非常多。很多刚起步的小型软件公司,急功近利,只想把项目拿到手,不管自己团队的能力如何。我的一个朋友就是如此,拿到了一个ERP的项目,就想自己开公司,拉了一批好朋友单干,结果因为能力不足,不仅项目泡汤了,刚开的公司也宣告结束了。

  4 软件开发文档的完善与规范

  虽然在真正的软件开发中,文档、测试等工作对软件产品的质量起着重要的作用,但是开发人员对编码往往比对文档重视,这样造成的后果是对软件的后期维护带来了很大的困难,从而使得最终的软件产品不合格,导致软件开发项目的失败。

  很多软件公司不重视甚至是根本不做文档的编写工作,认为项目能够按期完成就是最重要的。而在软件开发流程中的最后阶段,软件测试和维护的时间实际要占整个软件生命周期的一半甚至还要多,在软件维护的过程中,如果没有完整的软件文档,软件维护工作是相当困难的。在一些中小型软件公司人才流动性大,一旦原来开发的团队解散了,再想在软件维护的时候将他们重新组织起来讨论,基本上不可能。

  失败案例:

  早期很多软件项目因为缺乏完整的或者有参考价值的文档,造成后期软件维护异常艰难,软件架构很难一下子摸得清楚,原班人马又组织不起来,因此公司不得不放弃原来的软件而重新组织人马重新开发,造成大量的人力物力的浪费。

  5 结论

  软件项目成败是由许多因素决定的,也许其中某一个环节某一个不经意的错误就会导致整个项目的失败。开发团队中的每一个人都必须规范整个软件项目开发的详细过程,才能将开发风险降到最低,从而保证软件开发项目的成功完成。