为此,早在1968年秋季,NATO(北约)的科技委员会召集了近50名一流的编程人员、计算机科学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。在那次会议上第一次提出了软件工程(software engineering)这个概念。
软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开发和维护的学科。
软件开发技术包括软件开发方法学、软件工具和软件工程环境。
软件项目管理包括软件度量、项目估算、进度控制、人员组织、配置管理、项目计划等。
统计数据表明,大多数软件开发项目的失败,并不是由于软件开发技术方面的原因。它们的失败是由于不适当的管理造成的。
随着人们对软件项目管理重要性的认识有所提高,在软件项目管理方面总结出很多经验和行之有效的方法。
人们发现,软件项目管理的本质就是对时间、质量和成本的管理。通过项目管理,我们可在同样的时间内,花更少的钱,开发出更优秀的软件产品。这不是特例,越来越多成功的公司和越来越多成功的产品一次又一次证明了实施软件项目管理的有效性。
按PMI的定义:“Project management is the applications of knowledge, skills,tools,techniques to project activities in order to meet or exceed stakeholderneeds and expectations from the project. ”。项目管理就是“在项目活动中运用一系列的知识、技能、工具和技术,以满足或超过相关利益者对项目的要求”。
对于以项目为基本运作单位的IT服务公司来说,主要目标是让每个项目都能使客户满意和公司获利,成熟有效的项目管理无疑将起着重要的作用。因此,项目管理的水平已经是公认的IT服务公司核心竞争力之一。
为了有效提高项目管理的水平,要涉及到相当多的领域,在这里,只着重分析时间管理、质量管理和成本管理。
时间(Time)。项目时间相关的因素用进度计划描述,进度计划不仅说明了完成项目工作范围内所有工作需要的时间,也规定了每个活动的具体开始和完成日期。项目中的活动根据工作范围确定,在确定活动的开始和结束时间时还要考虑它们之间的依赖关系。
质量(Quality)。是指项目满足明确或隐含需求的程度。一般通过定义工作范围中的交付物标准来明确定义,这些标准包括各种特性及这些特性需要满足的要求,因此交付物在项目管理中有重要的地位。另外,有时还可能对项目的过程有明确要求,比如规定过程应该遵循的规范和标准,并要求提供这些过程得以有效执行的证据。
成本(Cost)。指完成项目需要的所有款项,包括人力成本、原材料、设备租金、分包费用和咨询费用等。项目的总成本以预算为基础,项目结束时的最终成本应控制在预算内。特别值得注意的是,在IT项目中人力成本比例很大,而工作量又难以估计,因而制定预算难度很大。
时间、质量、成本这三个要素简称TQC。在实际工作中,时间由进度计划规定,成本通过预算规定,而如何确保质量在质量保证计划中规定。这几份文件是一个项目立项的基本条件。TQC确定了,项目的顺利完成就有保障了。如果项目在TQC的约束内顺利结束,就可以说项目成功了。
说起来容易,做起来难,表面上看这三要素是相辅相成、互相配合的,但大多数情况下,三要素是鱼与熊掌不可兼得的,特别是有重大的变更发生时,你要么是保证质量、延长工期、增加成本,要么是保证工期和成本而在质量上作出让步。
但有一点是肯定的,随着项目管理的水平不断提高,项目的进度会越来越精确,项目的质量会越来越有保障,而项目的成本更会呈不断下降的趋势。
首先为了保证按期完成,我们要制定项目的计划,它应该来自启动项目的基本文件。
项目章程经常提到计划的项目开始与结束日期,它们是更详细的进度计划的起点。项目经理将从项目章程开始,制定详细的范围说明书和WBS。项目章程也应该包括一些关于多少资金将被分配到项目上的估计。
有了这项信息,项目经理及其团队就可以使用范围说明书、WBS和预算信息、开始制定更加详细的项目进度计划并估计完成日期。如果估计的完成日期与高层管理者或客户的原始计划差别很大,项目经理为了达到预期的进度计划,必须就范围或成本方面的变更进行谈判。
如果我们能对所做过项目的相关数据有很好的保留,并有专项的统计和分析,那么我们在做类似的项目时,我们将能更快更精确地制定出项目的进度计划,而且如果这个过程能够持续下去,我们将能够得到不断的修正和自我完善。
正常情况下,我们在制定计划时就已经考虑到了成本的问题,如果我们能顺利完成计划,项目的成本将不会超出预算。
下一个重要的问题就是我们如何保证项目的质量。
我们知道,软件产品的质量取决于它开发过程的质量。只要我们将开发中的各个过程的质量加以控制,我们就可以保证软件产品的质量。关于过程的持续改进,无论CMM还是ISO都有详细的定义和很好的解决办法。
关于项目管理的领域涉及很多,以上只就时间、质量和成本(TQC)进行了简要地阐述,主要因为这三个因素无论是客户还是开发商都很关心,而且相对来说管理这三个因素的成功案例和有效方法较多,见效也比较明显,本着循序渐进,持续改进的原则,我们可以不断在项目的开发过程中逐步实践、完善和扩展。