软件开发是一项复杂的系统工程,涉及到各方面的因素,其管理技巧对项目成功地实施所起的作用已为越来越多的人所承认,逐渐成为人们的共识。在过去的几十年里,项目管理被认为是管理一项新的、复杂活动的有效工具。随着时间推移许多事实表明,好的项目管理和项目的成果有必然的联系。实际项目管理工作中,我们经常会出现各种各样的问题,通过对失败原因的分析和总结,得出有益的教训,对我们来说,是在今后的项目中取得成果的关键。
影响IT项目管理是否成功的关键因素主要包括三个方面:明确的项目目标和范围,可控的项目开发进度,有效的风险管理。
在软件项目开发过程中最为重要的一个因素是对项目目标和范围的管理,对项目内容不明确,对需求内容把握不充分是大多数软件项目管理人员在项目开发过程中遇到的问题。
问题产生的主要原因有两方面:一方面,由于业务部门用户缺乏IT知识,无法从软件开发者交付清晰描述待开发的业务系统的具体功能,或者未系统地将业务功能需求一一整理出来,导致在项目的实施过程中对功能需求频繁更改,使得开发进度被严重拖缓。另一方面,企业中的IT部门对业务流程不是很了解,以及设计人员设计能力和水平又不是很高,不能完全理解客户的需求说明,而又没有加以严格的确认。
解决措施:(1)用户调研。用户调研的人员应当集中、固定,具有多方面的经验。(2)合适的需求分析方法。可以采用多样的需求分析方法和技术,但是根本上必须描述清楚用户的业务工作、软件需求。(3)系统原型设计。建立系统原型是完成需求分析的补充阶段,目的是明确用户需求,引导用户提出更具体的内容。(4)设计系统实施方案。总体实施方案应说明:任务量、计划进度、资金、实施阶段、各阶段结束的标志和开始的条件、完成的结果。
在软件项目开发过程中另一个重要的因素是可控的项目开发进度。软件开发的进度估算是一项很重要的工作,必须综合开发的阶段、人员生产率、工作的复杂程度等因素,将这些定性的内容定量化。为了保证在项目管理过程中有一个可控的项目开发进度,我们可以通过以下几点加以控制。
首先,我们要保证合适的工作分派给合适的开发人员。管理者在项目进度估算时需要考虑到项目对项目开发人员技术水平的要,而不是理想化的寄希望于项目开发过程中。开发人员通过自学的方式来提高技术能力。
其次,随着资源外包项目的日益普遍,一些项目经常因工期紧张而匆忙将中标的项目部分外包给其他协作公司。管理者需要随时收集有关项目外包进度数据,建立客观真实的反馈体系。
最后,由于没有进行定期的项目评审报告会,表面上进展顺利而实际上隐藏着危机。管理者不能轻信报告,需要进行相应的核实。
在项目管理中,风险的定义是“能够影响项目一个或多个目标的不确定性”。需要强调风险相关性,把不相关的不确定性因素排除在风险管理过程之外。对于风险识别以后,我们应当考虑到这些不确定性回导致的后果。对后果进行相应的分析,根据项目风险特性、项目组织抗风险能力、可供选择的风险应对措施和办法、机遇和威胁等因素。风险的控制和管理对于,及早识别项目的风险,努力避免风险事件的发生,积极消除风险事件的后果,充分吸取项目风险管理中的经验与教训来说,十分重要。
在一套好的项目管理体系里,对各个关键因素的管理都是相辅相成的。我们对项目进行的管理不是对单一要素或某几个要素的管理,而应该是全方位的,理论化和系统化的。
作者:赛迪监理 陈鑫