软件项目延期应该是比较常见的事,本人有幸曾参与过一个比较大的信息系统建设项目-某市的劳动保障应用系统建设项目。该项目包括了社会保险、劳动就业、机关综合管理等劳动保障业务的应用软件开发;信息网络系统建设及硬件平台搭建;机房场地建设;社会保障卡的制作、管理和使用;横向与其他政府部门、纵向与省、部级的数据交换平台开发;呼叫中心建设;办公自动化系统等分项工程,是一个一体化的庞大的综合性的系统集成项目。
该项目有其自身的特点:
(1)统一规划、分布实施的建设策略;
(2)系统的业务范围比较广,包括社会保险(养老、医疗、失业、工伤、生育)的登记、基金征缴、待遇核算、劳动力资源管理、劳动合同管理、就失业管理、人事代理、职业培训、劳动信访、劳动争议仲裁等众多业务,完全覆盖了劳动保障所有的业务。
(3)项目的干系人比较多,包括了劳动保障局的所有部门和下属机构。涉及到的承建单位和设备供货商就多达二十几家。
(4)该系统的起点高、管理思路超前,系统设计的目标比较高,没有任何的成功经验可以借鉴,更有许多问题需要在项目建设的过程中进行分析和研究,系统建设的难度比较大。这些特点决定了项目建设的难度大,这个建设的难度大,更多的体现在项目的管理上。我跟踪了整个项目的全过程,亲身经历了项目建设过程的曲折,体会了其中的艰难与心酸,更见证了项目的一再的延期,现在再回头去看这个问题,除了一些客观原因之外,还是有很多值得总结的地方。本人认为在整个项目建设过程中,有如下几个方面做的不够好,直接影响了项目的进度:
一、项目的范围界定不清
在项目启动阶段,对项目的范围界定不清,双方在范围定义的理解上存在偏差,含糊的需求和频繁的变更,使项目各方都吃尽苦头,项目的工作量一再增加,迫使项目一再延期。
二、项目的整体管理不到位
整个工程涉及的承建单位和供货商较多,各个分项工程又互相联系、互相制约,出现问题就容易互相推诿,沟通协调的难度也非常大。另外一个方面,多个分项工程,涉及多个知识领域,没有人能够总揽全局,各承建单位为了自身的利益,又往往不能很好的沟通协作。导致整个工程有脱钩现象,严重影响了项目计划的执行。
三、计划的制定不合理、缺乏可行性
在计划制定方面存在不合理现象,主要有如下原因:项目主要负责人员缺乏和上层领导的沟通,用户方领导对承建单位信心不足,所以,不经过估算提出不切实际的总体时间要求;承建单位在制定具体实施计划时,对项目的工作量的估算和技术难度估计不足;各分项工程只从自身的角度考虑了项目的计划安排,对各分项工程之间的衔接考虑不够。
四、对项目计划的执行力不够
承建单位往往因为资源不足,导致项目不能按期进行;承建单位采取离岸式的异地开发,双方的交流沟通不畅,导致承建单位提交的阶段成果与用户的实际需求偏差较大,势必要进行大的修改,这样,无形之中增加了很多工作量;另外,项目遇到问题、需要决策或需要确认时,由于沟通渠道不畅,导致问题迟迟悬而不绝或得不到确认,从而影响后续工作的进行。
针对以上的问题,可以从以下几个方面着手,促进项目的进展,保证项目按计划实施。
五、做好全面的范围管理
项目范围管理是项目管理的基础,也是项目管理工作的重点和难点。要作好软件项目的范围管理,必须要有一套有效的项目范围管理的机制。在项目启动阶段,首先要明确项目的大致范围和实施策略。其次,业务需求调研是明确项目范围的基础,技术人员要对用户的业务需求进行认真细致的调研,引导用户充分挖掘需求,从而明确定义系统范围,并编制范围说明书,在说明书中明确定义项目范围以及各阶段的交付物,并进行详细描述,避免双方理解上的差异,并一定要求客户方签字确认。这样可以控制项目内容,避免项目越做越多,老是做不完。第三,项目实施过程中,严格按照项目范围说明书进行相关的程序和签字手续。第四,变更是项目范围管理的重要组成之一,项目的范围计划不出现任何改变几乎是不可能的。变更的原因是多方面的,因此,项目管理中必须要有一套严格、实用、高效的变更程序,并严格执行。对于变更申请的响应,视不同情况做出相应的处理,并根据变更的大小和风险考虑是否满足用户的要求。
六、合理估算工作量,制定切实可行的合理的工作计划
整个项目实施必须要有如下的项目计划:项目总体计划、各分项工程工作计划、阶段工作计划。并将工作细化到周,每周召开工程例会,检查项目的进展情况,协调解决遇到的问题。
综合性的系统工程涉及到多个知识领域,没有人能总揽全局,所以制定总体项目计划时,工程建设各方的关键人员都要到场,共同讨论协商项目的总体工作计划。要充分考虑各个系统之间的衔接和相互制约关系,确保工作任务顺序的正确,明确界定各个分项工程之间的边界,预防项目实施过程中出现扯皮现象。
制定详细的软件开发计划时,面向对象系统的分析和设计,可逐个估算各功能点的工作量,将功能点进行逐步分解,直至基本模块。这样可以比较准确地进行工作量的估算,还可以参考一些成功案例的经验值,从而将整个工作进行合理的量化。根据以上量化情况制定详细的计划表,并定义相应的里程碑。同时要考虑系统实现的技术复杂度,双方之间的交流和沟通时间,阶段性产品的确认时间,计划制定时,时间上要留有一定的余量。并配备好充足的资源,以保证项目的实施。
软件计划表制定之后,要识别项目的关键任务,并作为项目进度控制的关键点加以重点控制。
七、做好项目的过程管理和控制,跟踪项目的进展
制定详细的阶段工作计划,并按周检查项目进展情况。每周召开项目例会,由承建单位汇报本周工作完成情况和下周的工作计划安排,并协调解决项目中遇到的问题。承建单位项目组汇报工作完成情况时,不能使用基本完成、大概、差不多等模糊的字眼,一定要用已全部完成、再过两天全部完成等字眼。而且,汇报人必须对做出的这样的结论负责。这样可以更好地掌握项目的进展情况,为调整项目计划提供最客观的基础。
在项目过程中,甲乙双方要加强交互和沟通,避免最终交互的产品大幅度偏离用户的需求,对项目的各个阶段,一定要按范围计划的定义,提交各阶段的可交付的产品,并进行签字确认。
建立畅通高效的沟通机制,以加强各方,各个层面人员的沟通,使整个项目的过程透明化,以增加项目相关干系人的信心。在劳动就业软件开发的过程中,用户方局领导对整个项目的建设情况不够关心和重视,各业务部门也不够重视。项目组工作人员心有余而力不足,整个项目的推进一度陷入尴尬的境地。而局领导突然提出要将一部分的业务系统先上线试运行。而这样以来,现在做的一些接口都要重新进行设计和开发,这样一来不仅增加了工作量,同时也带来了很大的风险,这对整个项目的推进和按期完成非常的不利。为此,大家想尽一切办法,找问题的症结,以扭转局面,为此,我们请出了承建单位的上层领导到现场与用户方的局领导进行私下交流和沟通,了解了局领导的真实想法:他觉得项目的开发是在乙方公司进行,对项目的进展看不着摸不到,对项目的按期进行抱很不乐观的态度,所以想要先上一部分业务,一方面向承建单位施加压力,另一方面也好向市领导交代。这使我们了解到并不是局领导不关心、不重视项目,而是缺乏信心,为此我们向其介绍了项目情况,并向局领导分析了提前上线厉害关系。最终局领导同意不提前上线,并觉得每周六参与项目周例会,并要求各业务部门的行政领导参与,共同推进项目的进展。这样局领导了解整个项目的情况,也增加了对项目的信心。最后项目还是延期了一个月才上线,但是,局领导并没有抱怨,因为整个项目的进展他都了如指掌,也了解了项目建设的困难和难度,最后对项目的延期也表示理解和认可。
项目的管理方式不是一成不变的,应该灵活地根据不同的项目、不同的人员情况做相应的调整。适合本项目的模式才是最好的模式,再好的管理方式针对不同的项目也会是不同的效果,所以,关键还是要在项目的过程中多沟通、多分析、多实践、多总结。