软件开发要有软件需求与开发计划,大规模软件还要有可行性报告,项目开发计划,需求方面要有软件需求说明和数据要求说明,还要有测试计划。软件开发项目策划包含计划的要素、计划编制过程、以及项目计划内容确定的一般过程。中小规模软件要有项目开发计划,软件需求说明和测试计划,软件开发中要写设计说明,大规模的软件还要包括概要设计说明,详细设计说明和数据库设计说明。
本文从提高我国软件企业项目管理的能力出发,提出软件研发项目的项目策划管理,即:面向利益相关者的项目策划、基于统计数据的项目计划。
一、面向利益相关者的项目策划
软件项目策划的目的主要在于明晰定义项目的价值和项目目标,它是软件项目正式启动的基础是明确项目需求的基础,也是控制项目范围的基础。据统计,超过50%的软件项目都遭受过不充分的需求管理的问题,平均有25%的软件项目需求会发生变化。对有缺陷的需求、设计、代码进行返工的花费占整个项目费用的40%—50%。项目策划的要点包含以下四个方面。
1.识别和定义项目的利益相关者。
现代项目管理的核心理念是项目必须让其利益相关者满意,要理解和定义项目的价值,进而在此基础上定义项目的目标,必须从识别项目的利益相关者入手。然而,实践表明,识别清楚软件项目的利益相关者并不是一件容易的事。有时一个项目进行了很长时间,但项目组未必知道项目的真正客户是谁,常犯的错误是仅将项目成果的使用者作为客户。
例如,电子政务系统的真正用户是该机关的决策层,而不是具体负责这个电子政务项目的某个部门。如果需求仅仅来自负责这个项目的某个部门,那么即使这个系统建好了,也极有可能没有真正达到目的。但是由于各种原因,决策层人员往往没有足够的精力来关心这件事,这时如果项目组不去想方设法解决这个问题的话,那么,这个项目从一开始埋下了“陷入泥潭”的阴影。此外,必须识别出具体的项目发起人并充分发挥其作用。实践过程中易犯的错误是误将一个部门、一个机构作为项目的发起人,这样的结果是决策时有很多人,但真正需要项目发起人提供资源、予以协调时却找不到人。
2.促成利益相关者的参与。
不仅是在策划活动中,在整个软件项目的生命周期内都必须强调项目利益相关者的参与,必须要与利益相关者一起启动项目。由于软件项目的成果将改变人们的生活或工作方式。因此,客户必须在项目策划阶段了解项目成果对其生活或工作方式的影响,他们必须开发相应的政策、流程等以准备接受项目成果。
目前众多的ERP项目之所以失败,重要的一个原因是人们误认为ERP项目仅是一个信息系统项目,该项目带来的仅仅是一个信息产品。其实,ERP项目带来的是一新的运营方式,如果企业在没有做相应调整的情况下强行引入ERP,将会使企业运行的混乱速度加快而不是更好。事实表明,促使软件项目成功的重要的要素莫过于利益相关者的全过程参与。
3.不可忽视项目的验收标准。
对项目目标一致性重视程度不够,是项目启动过程中普遍存在的一个问题。很多项目管理者低估了达成项目目标一致性的难度,在这方面投入的精力不够,往往简单地认为目标已经达成一致。很多项目其实是在目标没有定义清楚的情况下匆忙启动的。因此,软件项目策划的结果必须使利益相关者对项目目标的理解达成一致。要做到这一点,有效的办法是设定项目的验收标准。可以以项目的客户为例说明这一点。
客户的需求包含多个方面,其中既有对项目成果特性的要求,又有客户在感情等方面的需求。简单说来,客户的需求可以分为三类:第一类是“Musts”,即如果缺少了不能实现项目基本目的的成果特性;第二类是“Wants”,即客户希望得到的能够丰富项目成果的东西。第三类是“Nice-to-haves”,即对客户和项目而言多多益善的东西。从对客户的重要性而言,这三类需求是递减的。然而,在项目的运行过程中,客户向项目承担方表达的频率却常常是递增的。这是导致项目管理范围蔓延终失控而使项目失败的重要原因。对于中创软件来说,项目策划是项目管理的重中之重,对于重大项目,公司的高层会亲自挂帅。
4.培育/运用行业专家。
软件项目的价值是为了实现某些商业目的,它们一般是由行业专家而不是由软件开发人员挖掘出来的。许多软件企业被投标价格所困扰,其原因有来自市场竞争方面的,更多的则是软件企业没有能够挖掘项目的价值所致。目前,许多软件企业的弱点在于缺乏行业专家,它们没有意识到行业专家也是专业人员,而只是将软件开发人员作为专业人员对待。
在项目定义活动中,软件开发人员常犯的错误有三点:需求镀金、需求过滤和需求包办。所谓镀金,是指软件开发人员不顾客户的实际需求,片面强调和夸大技术先进性;所谓需求过滤,是指软件开发人员根据自己的技术偏好对客户的需求进行了主观筛选;所谓需求包办,是指客户将需求分析委托给“专业的”软件开发人员,而他们也乐得如此。实践证明,缺乏行业专家的项目策划所产生出来的东西一般是能力过剩的、不适用的,甚至是完全不能用的。如果软件企业没有自己的行业专家,必须善于利用外部的行业专家。
目前,中国的软件市场,特别是软件集成市场,还在很大的“关系市场”的特征,项目在给企业带来利润的同时,也会给企业发展带来极大的风险,可能会影响到企业的正常发展。因此,抓好项目策划极为重要。
二、基于统计数据的项目计划
软件项目计划过程面临的大挑战是计划的准确性差。据统计,在对软件项目进度与成本估算时,开发者的估算比现实要乐观,大约低20%到30%;大多数项目实际完成时间超过估算进度的25%到,少数的进度估算精确度达到了10%,能控制在5%之内的项目十分罕见。要提高软件项目计划的准确性,需要把握以下两点:
1.加强基础数据的统计与分析
软件项目都是具有独特性的,不能照搬其他项目的经验作为制定本项目计划的依据。因此,在企业范围内加强对项目基础数据的统计分析以得出规律是十分必要的。项目管理既是科学又是艺术,由于文化的差异,西方发达强调的是管理中的科学性,而我国的绝大多数企业强调的是管理中的艺术性。由于不重视基础数据的收集和统计,软件项目的计划常常是凭经验或“拍脑袋”而定的,企业并没有足够的统计数据来支持计划的制定。科学管理尽管是在上个世纪初,对制造业和体力工人提出的,但其中提出的“不能度量不能控制”的理念依然值得软件企业在管理项目时采纳。为做到在数据统计的基础上制定项目计划,中创软件每天对每个员工的工作时间进行统计分析。在数据的统计过程中,公司内部十分强调科学方法与工具的使用,通过对多种统计分析方法(如FPA、COCOMO和类比法等)的研究和应用,项目计划的准确性得到很大提高,基本达到了“一次将事情做正确”的目标。
2.以面向学习和改善系统的评价原则促进数据统计
评价方式将决定人们的行为,要想改变人们的习惯,仅靠讲道理是难以见效的, 还必须辅之以相应的评价体系。软件企业在项目管理评价进程的一个误区是将评价的重点放在人的方面,而忽视了很多项目问题在于管理系统本身这个事实。据统计,人员的敬业精神和能力不够只占项目失败原因的10%左右,在大约90%的原因来自于项目管理系统的架构与流程等方面。因此,中创软件将项目绩效评价的重点放在通过学习以改善项目管理系统方面而不是给项目成员下一个终的结论性判定。这种评价的方式是基于统计分析的,它不仅有助于改进企业的项目管理系统,更有助于员工有意识地去收集数据和对数据进行统计分析,以便提高项目计划的准确度。这方面问题的解决,非是一日之功,但如果企业肯花大力气,当数据积累到一定程度时可以发现统计规律,会对计划起到极大的支持作用。
3.谨防里程碑陷阱。
众所周知,里程碑是项目计划与控制中的一个极为重要的概念,也正因为如此,人们也易于过于依赖里程碑,反而使项目计划落空。里程碑陷阱表现在以下几个方面:
首先,里程碑的设置仅仅由项目组根据项目本身的特点而定,忽视了与利益相关者的沟通并得到他们的承诺。然后,对里程碑控制不严。项目活动彼此是有关联的,一个里程碑的延迟会导致连锁反应,甚至可能导致项目工期的失控。因为大部分里程碑毕竟只是一些项目的中间结果,在项目过程中人们易于放松对里程碑变更的控制,易于出现里程碑大多按期完成而项目却难以按期完成的现象。后,大多数软件企业的从业人员属于知识工作者,他们对授权的要求较强烈,这方面的误区更易发生。人们在软件项目的里程碑被设定以后,认为“目标管理是只问结果,不计过程”,从而忽视对过程的监控而导致项目里程碑不能按期达到。