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