一、什么是软件项目管理
软件项目管理是按需求确定范围、按目标制定项目计划、按计划执行管理的过程。对软件开发各阶段加强项目管理的根本目的在于增强对软件开发的控制能力,提升软件开发的质量。软件项目的建设按软件工程的生命周期法可分为项目立项、启动、需求分析、系统设计、系统开发、系统测试、系统上线、项目验收和上线后评估等9个阶段进行。
加强软件项目管理,就是以软件工程的各个环节为管理主线,将动态项目管理贯穿其中,通过对软件开发的项目范围、项目进度、项目质量、项目沟通、人力资源、项目成本六大核心要素的集成管理,实现软件开发管理效能的最大化,从而大大提高软件开发质量。
二、软件项目进度管理的定义及实施方法
软件项目进度管理是指项目管理者围绕项目要求编制计划,付诸实施且在此过程中经常检查计划的实际执行情况,分析进度偏差原因并在此基础上,不断调整,修改计划直至项目交付使用;通过对进度影响因素实施控制及各种关系协调,综合运用各种可行方法、措施,将项目的计划控制在事先确定的目标范围之内,在兼顾成本,质量控制目标的同时,努力缩短时间。
项目进度管理可以通过以下方式完成:制定项目里程碑管理运行表;定期举行项目状态会议,由软件开发方报告进度和问题,用户方提出意见;比较各项任务的实际开始日期与计划开始日期是否吻合;确定正式的项目里程碑是否在预期完成。
三、如何编制项目进度计划
识别进度计划所有者
识别所有者或负责开发所有或部分项目进度计划的个人,对于确保开发出好的进度计划是必要的。推荐采用WBS(作业分解结构)或者组织的分解结构作为进度开发的基础,因为WBS指定范围,组织分解结构(OBS)指定交付的功能区。
决定任务和里程碑
对于每一个最低级别的WBS元素,识别任务和里程碑对应交付的元素。可交付物通常设置为里程碑,产生可交付物的活动被称为任务。里程碑是一个时间点,被用于管理检查点来测量成果。
排序工作活动
在确定了交付产品的任物和里程碑之后,他们应该被逻辑的排序,来反映将被执行的工作方式。排序建立了任物和里程碑之间的依赖,并被用于计算交付产品的的进度。
任务历时评估
任务的历时评估是项目计划中最具挑战的部分,他也是后续成本估计的关键。这是一个不断细化的过程,贯穿于计划过程,因为它直接受人员安排和成本估算活动影响。
整合任务计划
一旦任务和里程碑被识别,排序,并且有了计划的历时评估,对每一个交付的产品就有了进度计划。没有整合,每一部分的进度是独立的,并且因此不能描述与整个项目相关的时间问题。
审查批准进度计划
一个较大和复杂的进度计划需要从多个人那里获得输入,没有人拥有项目的每一个方面的所有影响进度计划因素的所有的知识,因此团队应该执行进度计划的审查,来发现问题,或完善该进度计划。
四、如何有效的控制软件项目的进度
在当前的软件项目开发的过程中,无论是开发人员还是管理人员都越来越注意到项目进度的重要性。那么如何控制项目进度。
1、项目组长或项目经理,一定对整个项目的开发周期有一个清楚的了解,把任务的划分一定要一天为单位,不要一模块为单位,而每天无论是开发人员还是测试人员,都要对自己的工作有一个大致的估计。即每天下午,有项目组长组织开发人员进行系统的了解,并且作好相应的记录。对已经解决的问题一定要一个详细的记录。而对没有解决的问题一定要重视起来。不要向后退。找到根本的原因所在。
2、沟通和交流,作为项目组长一定要多多与开发人员进行交流,要调动其的积极性,让他们学会问题该如何解决,不要让他等待问题的解决。了解其实际的进展以及对开发工具的熟练程度,这对以后的任务的重新安排有重要的借鉴意义。
3、把一些难点提出,让大家共同克服,或者有一些技术比较精通的人来解决。解决完以后一定,让大家都熟悉其编程思路。而对经常用的知识点,一定有详细的说明。这样实现资源的共享。
4、做好项目的总结,无论是难点还是不难,只要有问题,一定要提出,并且解决完以后一定让大家都熟悉,这样有助于大家的技术水平的提高。
5、做到日清日结,是保证项目进度的关键所在。
五、软件项目进度管理中的软技巧
1、树立综合协调的观念
从本质上讲,项目管理是从全局出发,以项目整体利益最大化为目标,以项目范围、成本、质量等各专项管理的协调、统一为内容,所开展的综合性管理过程。因此,开展项目管理就要有项目各要素及各专项管理,进行综合协调的观念。
首先,IT项目的范围会影响IT项目的进度。一般来讲,项目范围越大,项目所要完成的任务越多,项目耗时越长;反过来,项目范围越少,项目所要完成的任务越少,项目耗时越短。因此,如果项目进度很紧,或者进度拖延非常严重,就可以考虑与客户讨论,是否能够将范围进行收缩。如果客户同意缩小范围,那么进度能得到有效缩短。
同样的,IT项目的成本、质量也会影响进度。一般来讲,追加成本,可以增加更多的资源,比如设备和人力,从而使某些工作能够并行完成或者加班完成。
如果项目不能按进度完成,可以考虑有些原定任务是否可以外包出去,这是项目采购管理与进度管理的协调内容之一。
显然,在缩减进度时,可以考虑上述各专项管理之间的协调,即砍掉部分任务、降低部分任务的质量、分包部分任务、追加部分任务的成本等。
2、掌握正确的需求调研方法
很多项目组一提到需求调研,就马上想到与用户访谈。在项目一开始,就与用户面对面访谈,并不是一种好的需求调研方法。
正确的方法应该首先请用户提供能反映用户业务的相关资料和书籍,开始文献调研。在阅读文献的过程中,就能够搞清楚对方的一些基本业务术语,并且对用户的业务流程有一个初步认识。
其次,如果需要,请用户带领项目组参观用户现场的业务流程,从而对某些字面上不容易理解的术语和业务环节,树立一种感性认识。
第三,在此基础上,根据文献调查和实地考察中发现的问题,有针对性地列出访谈大纲,与用户进行访谈。这时访谈的效率和访谈的质量都会提高,用户也会因为项目组提到的问题很专业、有针对性,从而产生较强的信赖感。
有的项目组在访谈完后,就认为得到了用户的真实、完整的需求,从而开始项目设计。事实上,有些IT项目比较敏感,因为访谈的结果是要记录的,用户为了回避自己的“风险”,会按照“官方”的口径讲话,这样,需求就可能被扭曲。
正确的方法应该是在访谈后,继续进行第四项任务,即发放无记名需求调查表。由于是无记名的,一般都能收集到比较真实的需求信息。
掌握了正确的需求调研方法的项目组,就能很快得到高质量的需求信息,缩短调研时间,使设计和实施的时间比较富裕,从而缩短进度。
3、缩短团队组建与磨合时间
任何一个项目组从接受任务到任务完成、团队解散,一般都会经历五个阶段:组建阶段,磨合阶段,正规阶段,表现阶段,解散阶段。
在五个阶段中,解散阶段由于项目任务已经完成,对于项目的影响不大。对于一个项目经理来讲,一定要清楚,真正工作的阶段是正规和表现阶段。因而,项目经理的重要职责,就是使项目团队的组建和磨合阶段的耗时尽量短,这样,项目团队的正规和表现阶段的历时就会越长,在布置任务和执行任务时,就更加从容。
六、如何避免项目进度失控
1、进度表失控的严重后果
(1)进度失控会扰乱规划进度失控导致的直接后果是不得不推迟系统正常完成时间。这个后果会增加业主的负担,包括时间、人力、物力和财力的继续投入,严重时会造成项目停滞和搁浅。
(2)进度失控与质量失控相互影响一般来讲,质量控制和进度控制是一对孪生兄弟,是相互起连锁反应的,进度失控可能导致质量失控;同样,质量的失控也会导致进度失控。
(3)进度失控会突破项目的计划成本项目执行的进度拖后之后,需要投入更多的资源解决存在的问题,重新制定计划。即使工作量没有增加,时间的增加就是费用的增加,也就是投资的增加。
2、避免进度表滞后的几点措施
(1)锁定需求,避免无休止的变更。
每一个项目都需要在开展之前锁定需求,不这样做必将会导致项目失败。在项目开发的过程中,多多少少都会发生一些范围变更,一定要严格控制这些变更,对这些变更有一个应对方案,把变更范围控制在可控范围内,不然便会出现很多并发症,导致进度表滞后和成本的增加。
(2)重新检查进度表项目进度表的一个很重要的前提是项目估算,项目估算最大的基础是基于经验值,而软件工程的经验值反映的只是业界的常规实践,并不能够反映每一个团队。因此,在项目估算时应该以自己团队历史经验值为基础,让项目团队中的每一个成员参与估算,这样才能够保证项目计划的可行性,从而避免出现系统设计与编码实现都超出进度表的计划估算。
(3)有效的进度表检查工具糟糕的执行会给项目带来在成本和时间两方面上的失败,这会最终导致整个项目的失败。很多失败的项目开发的教训揭示了能够充分地描述项目进度的检查工具简直太重要了。我得到的最宝贵的经验是要抓住项目开发过程中的关键环节,密切注意进展情况,一旦出现问题,应该马上能拿出切实可行的措施。当出现可能严重影响进度表滞后时,就应该根据现阶段状况重新评价需求分析结果、工数估算、设计结果等。切勿匆忙采取头痛医头、脚痛医脚的措施,致使进度表滞后更严重。
(4)在各种项目目标中进行平衡进度控制的目标与成本控制的目标和质量控制的目标是对立统一的关系。项目进度、质量和成本构成一个相互制约的三角关系,需要去平衡。如果经过评估确定项目进度确实已无法控制,就应当下定决心以牺牲软件功能范围、工作成果范围、成本预算、进度计划或软件质量中的某一项目标为代价,来保住项目最重要的目标达成,最终确定一个最合适的解决方案。指望不采取纠正和干预措施,进度失控会自行消失的想法是不现实的。因此,如果这些项目参数超出项目目标的限制范围,就必须马上采取纠正措施;如果发现这些项目参数有超出项目目标的限制范围的趋势,就必须马上采取预防措施。
(5)奖罚制度的制定进度表的执行还必须有相应的控制措施来保证。例如可以制定一些奖惩制度,奖励是主要,惩罚是辅助手段,调动起所有人员的积极性。通过订立相应的评估指标,把项目执行作为项目人员的重要业绩进行考核监督,避免因为少部分人不配合工作导致项目整体延误,从制度上保障任务的顺利完成。