软件项目管理的解决,涉及到系统工程学、统计学、心理学、社会学、经济学,乃至法律等方面的问题。需要用到多方面的综合知识,特别是要涉及到社会的因素、精神的因素、人的因素,比技术问题复杂得多。仅靠技术、工程或科研项目的效率、质量、成本和进度等问题很难得到较好的解决。必须结合工作条件、人员和社会环境等多种因素。因此,简单地照搬国外的管理技术往往不一定奏效。此外,软件项目管理技术的基础是实践,为取得软件项目管理技术的成果必须反复实践。很显然,管理能够带来效率,能够赢得时间,最终将在技术前进的道路上取得领先地位。在知识爆炸、高技术迅速发展的今天,必须在战略级上对待技术管理问题。
一、软件项目的特点
软件产品与其他任何产业的产品不同,它是无形的,完全没有物理属性。对于这样看不见,摸不着的产品,难以理解,难于架驭。但它确实是把思想、概念、算法、流程、组织、效率、优化等融合在一起了。因此,要开发这样的产品,在许多情况下,用户一开始给不出明确的想法,提不出确切的要求。他说不清究竟他需要的是什么。在开发的过程中,程序与其相关的文档常常需要修改。在修改的过程中又可能产生新的问题,并且这些问题很可能在过了相当长的时间以后才会发现。文档编制的工作量在整个项目研制过程中占有很大的比重。但从实践中看出,人们对它不感兴趣、认为是不得不做的苦差事,不愿认真地去做。因而直接影响了软件的质量。软件开发工作技术性很强,要求参加工作的人员具有一定的技术水平和实际工作的经验。但事实上,人员的流动对工作的影响很大。离去的人员不但带走了重要的信息,还带走了工作经验。
二、软件项目管理的困难
1)智力密集,可见性差:软件工程过程充满了大量高强度的脑力劳动。软件开发的成果是不可见的逻辑实体,软件产品的质量难以用简单的尺度加以度量。对于不深入掌握软件知识或缺乏软件开发实践经验的人员,是不可能领导做好软件项目管理工作的。软件开发任务完成得好也看不见,完成得不好有时也能制造假象,欺骗外行的领导。
2)单件生产:在特定机型上,利用特定硬件配置,由特定的系统软件或支撑软件的支持,形成了特定的开发环境。再加上软件项目特定的目标,采用特定的开发方法、工具和语言,使得软件具有独一无二的特色,几乎找不到与之完全相同的软件产品。这种建立在内容、形式各异的基础上的研制或生产方式,与其他领域中大规模现代化生产有着很大的差别,也自然会给软件项目管理工作造成许多实际困难。
3)劳动密集,自动化程度低:软件项目经历的各个阶段都渗透J,大量的手工劳动,这些劳动十分细致、复杂和容易出错。尽管近年来开展了软件工具和cAsE的研究,但总体来说,仍远未达到自动化的程度。软件产业所处的这一状态,加上软件的复杂性,使得软件的开发和维护难以避免出错,软件的正确性难于保证,软件产品质量的提升自然受到了很大的影响。
4)使用方法繁琐,维护困难:用户使用软件需要掌握计算机的基本知识,或者接受专门的培训,否则面对多种使用手册、说明和繁琐的操作步骤,学会使用要花费很大力气。另一方面,如果遇到软件运行出了问题,且没有配备专职维护人员,又得不到开发部门及时的售后服务,软件的使用者更是徒唤奈何。
5)软件工作渗透了人的因素:为高质量地完成软件项目,充分发掘人员的智力才能和创造精神,不仅要求软件人员具有一定的技术水平和工作经验,而且还要求他们具有良好的心理素质。软件人员的情绪和他们的工作环境,对他们工作有很大的影响。与其他行业相比,它的这一特点十分突出,必须给予足够的重视。
三、造成软件失误的原因
在总结和分析足够数量失误的软件项目之后,看出其原因大多与软件项目管理工作有关。
在软件项目开始执行时,遇到的问题往往是可供利用的资料太少、项目负责人的责任不明确、项目的定义模糊、没有计划或计划过分粗糙、资源要求未按时作出安排而落空、没有明确规定子项目完成的标准、缺乏使用工具的知识、项目已有更动,但预算未随之改变。
在软件项目执行的过程中可能会发生的问题是项目审查只注意琐事而走过场、人员变动造成对工作的干扰、项目进行情况未能定期汇报、对阶段评审和评审中发现的问题如何处置未作出明确规定、资源要求并不像原来预计的那样大、未能做到严格遵循需求说明书、项目管理人员不足。
项目进行到最后阶段可能会发生的问题是未做质量评价、取得的知识和经验很少交流、未对人员工作情况做出评定、未做严格的移交、扩充性建议未写入文档资料。
总之,问题涉及到软件项目研制中的计划制定、进度估计、资源使用、人员配备、组织机构和管理方法等软件项目管理的许多侧面。
与其他重复性运行或操作的工作不同,软件项目管理具有一次性、独特性、目标的确定性、活动的整体性、组织的临时性和开放性、成果的不可挽回性等属性,因此,要确保项目的成功,获得让所有项目相关者满意的效果,项目经理除了需要清晰地把握项目流程外,更要具备优秀的信息管理、沟通管理、冲突管理、风险管理、质量管理和集成管理等能力。
清华大学项目经理培训课程精选战略管理、人力资源管理、财务管理和项目管理实战四个专题的核心课程,辅以模拟实战演练和案例研讨,项目经理不仅能切实提升项目管控的水平,更能站在企业战略的高度,将项目管理与企业发展联系起来,从而推动企业的高效运作。