软件项目管理的九大误区

随着软件开发的迭代速度加快,我们经常会遇到需求时时变动的情况。要么产品说服研发,要么研发拍死产品,那怎样才能适应这种灵活性,下面小编与你一起探讨在软件项目管理中的九大误区……

×误区1:软件项目的需求可以持续不断的改变,而且这些改变可很容易地被实现

√随着开发进度的推进,实现软件需求更改所需要的代价呈指数形式增长。

由下图可见,在项目开展过程中,软件需求的改变应当尽量早地提出。这样才可能花费少,容易被实现。

在需求分析阶段实现需求更改需要花费1倍的代价;

在系统设计和编码阶段,需要花费1.5-6倍的代价;

在系统测试阶段需要花费10-20倍的代价;

在软件版本发布以后,甚至可能要花费60-100倍的代价

×误区2:既然在项目人员配置中设置了专门的测试人员,那么软件所有的内部测试工作全部应该由测试人员完成

软件质量的保证需要各个环节来完成,共同才能把软件质量搞好

在进行测试时,测试人员需要多方面的能力,进行各种测试:功能测试,回归测试,压力测试,兼容性测试等,但是这些测试只能在软件开发完成之后,发现问题进行修改导致工作量和成本巨大。如果各个环节加入测试意识以及测试环节便能在早期提升软件质量,产品和交互可以加入用户测试,易理解性测试,易用性测试,吸引性测试等,开发人员可以加入白盒测试、单元测试等,各环节积极参与才能保证产品质量,软件所有的内部测试不仅仅应该由测试人员完成。

×误区3:软件项目管理只是相关技术部门的事情,与公司其他部门无关。

√要想提高公司的软件项目管理水平,这就需要提高公司的整体参与意识,需要公司各个部门协同作战。

例如需要会计部门协助进行项目预算,财务管理和费用控制;需要研究部门(技术委员会)指派专家 协助进行各种风险评估,提供技术指导;需要后勤部门提供各种保障。

×误区4:在开发进度滞后的情况下,可以聘请更多的程序员加入到开发团队中,通过增加人力资源来赶上进度。

√可能需要花费开发团队许多时间和精力,很有可能使项目进度更慢。

在注重团队开发的时代,开发方应该根据目前的软件项目管理水平慎重考虑这个做法。如果新加入的程序员对目前软件项目的应用行业 有一定了解,并且可以很快适应了开发方的项目管理方式、软件开发风格、团队协作氛围;那么”新人”的加入是有益的。否则,可能会”好心好意做坏事”。因为尽管其个人能力很高,但是为了使其与大家一起协同工作,开发团队不得不分出人手对其进行与项目有关的技术/业务培训,更重要的(也是难度最大的)是还要引导其融入团队。

×误区5: 只有项目经理以及部门主管才会关心项目整体进度,程序员只关心自己的开发进度。

√实际上程序员作为团队中的一员,他不仅仅是在打一份工,更重要的是在参与一件“作品”的创作。

在体味工作的辛苦的同时,程序员更重要的是要享受创作的快感。项目经理不应该漠视程序员对”成就感”的追求,应该向每一个人详细描述最终“作品”将会如何美妙和令人兴奋,并且在到达最终目标的路上设立一系列的里程碑。每当项目整体推进到一个里程碑的时候,项目经理应该把这个消息告诉每一位项目成员,这不仅仅可以让所有的项目成员享受到阶段胜利的喜悦,还可以激发大家更大的工作热情,提高工作效率。

×误区6:更大的压力可以带来工作效率的提高。

√中等压力或许可以将生产力提高25%,甚至使总的交付时间缩短25%。但是只有在压力处在适当的范围时,情况才是这样。

软件公司的员工加班情况是时常发生的,对员工增加工作压力、要求加班赶进度,这种方式在初期可以略微提高生产力,因为员工喜欢压力,并且集中精力于项目任务,全力投入。压力再大点,增加的压力将不会产生作用,毕竟人的能力是有限的,当员工面对巨大的压力而习以为常时,会将普通的工作量占满整个工作时间,导致实际的生产力下降。如果压力再大一些,员工开始疲惫,直到筋疲力尽,甚至灰心丧气,他们对项目不抱有什么积极的态度,此时的项目结局可想而知。

×误区7:使用高级语言可以大大提高项目进度,缩短交付期。

√研发活动仅占项目总时间的20%左右,所以无法从很大程度上影响项目进度。

高级语言相对于他们的前辈确实效率大大提高,程序员使用之可以提升编码速度,从而使整个项目的开发周期缩短;但是在完整的软件生命周期中,编码活动一般仅占总时间的20%左右,而需求搜集和分析、高层设计、测试等活动却无法从高级语言的使用中获益,所以不要认为运用了高级语言就可以制定一个“激进而且安全”的项目进度计划。

×误区8:小型项目不需要严格的流程控制。

√事实是如果项目中不做流程控制,就得花更久时间才完成得了。

小型项目由于涉及的人员较少,便很草率地制定一个开发日程表,没有认真地估计项目难度,结果实际完成时间与估计完成时间往往有较大差别;开发人员少,意味着不同人员的程序之间交互、接口相对少一些。开发周期短意味着往往是同样的几个人从头到尾负责一个项目。这两者都让人容易犯些错误。往往是几个人碰一下头,讨论一下最基本的数据结构、函数接口便分头去做自己的工作了,没有一份较正式的文档。往往觉得“把这些事情(流程管理、项目文档)都做完的话,项目就永远做不完了!”

×误区9:软件产品的质量完全取决于过程。

√事实上产品的质量受到人员、技术和过程三个要素制约,片面强调过程决定质量就好像认为只有明星程序员才能开发出合格的软件一样片面。

低劣设计和良好设计之间的区别可能在于设计方法中的完善性,而良好设计和卓越设计之间的区别肯定不是如此。卓越设计来自卓越的设计人员。软件开发是一个创造性的过程。完备的方法学可以培养和释放创造性的思维,但它无法孕育或激发创造性的过程。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年8月10日
下一篇 2016年8月10日

相关推荐