我负责公司近期一个项目开发,领导给我分派完任务后说了一句话:做好这个项目的开发管理不难,只需要做好一件事情就行了,就是确保项目按进度表规划一样把事情做好。领导的这句话听起来不太难吧?事实上,现在的软件开发项目进度失控的例子屡见不鲜。service.mypm.net
一.进度表失控的严重后果?pmp.mypm.net
进度表是项目完成所需工作的一个基本的、动态的计划表。进度表为具体工作提供计划和执行步骤,并在进行过程中设定里程碑,使我们可以将自己的进度和预先设定的完成时间相比较。因此,进度表的执行情况决定着项目的成败。blog.mypm.net
进度是项目开发的龙头,是一切工作的出发点。事实上,技术发展到今天,进度的重要性已经超过了技术本身。阿波罗登月成功首先是计划表的成功,其次才是技术。软件工程也是这样,系统开发技术的问题其实已经不再成为主要问题,问题在于我们能否将所有的问题或隐患考虑在内,并且一个一个地加以处理和解决。talent.mypm.net
(1)进度失控会扰乱规划项目管理者联盟文章
进度失控导致的直接后果是不得不推迟系统正常完成时间。这个后果会增加业主的负担,包括时间、人力、物力和财力的继续投入,严重时会造成项目停滞和搁浅。bbs.mypm.net
(2)进度失控与质量失控相互影响service.mypm.net
一般来讲,质量控制和进度控制是一对孪生兄弟,是相互起连锁反应的,进度失控可能导致质量失控;同样,质量的失控也会导致进度失控。项目管理者联盟
(3)进度失控会突破项目的计划成本转自项目管理者联盟
项目执行的进度拖后之后,需要投入更多的资源解决存在的问题,重新制定计划。即使工作量没有增加,时间的增加就是费用的增加,也就是投资的增加。转自项目管理者联盟
二.项目进度失控原因分析项目管理者联盟
为了确保项目顺利完成,进度表需要精打细算,避免项目每个任务滞后执行。然而,在项目执行时总会出现一些让人意想不到的事情,这些事情对项目的影响力是非常之大的。现在一一分析:项目管理者联盟
(1)任务本身估算出现偏差转自项目管理者联盟
进度出现偏差首先要考虑的工作量的估算是否合理,是否考虑了工作中存在的技术难点,是否考虑了项目成员自身的技能,是否考虑了其它应该考虑的风险。如果项目任务中存在着技术攻关或技术难点需要解决,对于这种任务往往是很难估计工作量的,而且一旦在技术问题上被卡住往往对项目进度产生致命的影响。具体表现在低估技术难度、低估协调复杂度、低估环境因素这样几个方面。项目管理者联盟
80-20原则在软件开发项目进度控制方面体现在:80%的项目工作可以在20%的时间内完成,而剩余的20%的项目工作需要80%的时间,但是剩余的20%左右的项目工作大部分是在后期。所以软件开发在进入编码阶段后会给人一种"进展快速"的感觉,使得产生了过于乐观的估计。当看到软件已经进行了80%,就象一块石头落地,心里想着"总算交差了",同时又可能撤出一些被认为不必要的人力资源,这样的结果更是拖延了后期的工作。项目管理者联盟
(2)项目需求偏移项目管理培训
随着项目的深入,需求变更也越来越多。造成的后果是无论是删减、增加或者改变项目需求,都致使进度表发生相应的调整或滞后。例如,在需求分析前期,一方面是对于部分关键需求没有给予足够的关注,造成后期需要不断修正。另一个方面,在开发过程中总是眼光朝上,总是喜欢添加一些原先进度表规划所没有的东西,导致存在大量功能冗余,也导致进度表的失控。普遍存在的是有些项目组成员觉得反正我们都要花时间,就再增加几样东西吧,这会让我们的项目锦上添花。这样就积少成多,集腋成裘。不仅消耗了时间,而且也模糊了最初的项目需求。更严重的是,需求范围已经扩展到项目真正需要的范围之外。项目管理者联盟
(3)进度控制松紧不一致项目管理培训
在项目进行到一半时常常才发现时间不够用,进度表经过调整后,谁知道没过多久进度表滞后又来了。原因在于项目开始时前期太过拖沓,导致进度远远落后于进度表。项目管理者联盟
(4)进度落后时的"赶工"措施使进度更恶化项目管理者联盟
进度落后的情况下,有几种措施来弥补,如加人、加班、加激励等等,这些都是增加资源而又未必会见效的方法。这些后来参加者因为对项目不够熟悉,存在软件界一直说的"人月神话"的弊端,反而让滞后的进度表更滞后。因为对于新加入的员工来说,对项目相关背景、需求、设计的培训,对项目环境的熟悉和项目团队成员之间的沟通路径的增加,都可能会使工作效率急剧下跌。而加班造成的疲劳也会再次使工作效率降低,增加激励则会造成工作成本不断的向上攀升。这些措施并不是完全不可取,而是要考虑适度原则。项目管理者联盟
(5)程序员的心态因素对进度的影响转自项目管理者联盟
有两种常见的心态会对进度造成影响:一是技术完美主义、二是自尊心。技术完美主义是有些程序员做到一定程度后想到一些更好的构思,或者看到一些更好的技术介绍,或者是觉得可以更加优化,这样他们会私下或公开对软件进行调整,去尝试一下新的技术。而是否使用这些新的技术对完成项目本身的任务并没有影响,相反可能带来不确定的隐患。这种做法不是以需求为出发点,可能对软件开发进度造成较大的影响。training.mypm.net
另一方面,自尊心是有些程序员在遇到一些自己无法解决的问题时,倾向于靠自己摸索,而不愿去问周围那些经验更为丰富的人。有些人也许会通过聊天室或论坛等方式匿名地向别人求教,运气好会很快地解决,否则要花很多时间去实践摸索。而向周围的人求教,可能摸索几天的问题别人早就曾经解决过。blog.mypm.net
三.避免进度表滞后的几点措施项目管理者联盟
|