|
温故而知新:软件开发项目管理梳理四大变量:范围·质量·成本·交期 软件开发项目是软件企业战略事业单位(SBU:strategical business unit)中纵向功能性组织和横向技术支持组织的联结点。而对项目而言,急需的不是设计方法,也非分析方法,当然也不是开发方法,而是管理,是为避免混乱为达成顾客需求而倾力而为的管理。根据PMI的定义,项目管理就是“为了满足甚至超越项目利益相关各方对项目的需求和期望而将知识、技能、工具和技巧应用到项目的活动中去”。项目管理需要在相互间具有冲突的要求中寻求平衡:(1)范围、成本、质量和交期;(2)具有不同需求和期望的项目相关人员;(3)明确表示出来的要求(需求)和未明确表达的要求(期望)。软件开发项目管理是为了能够按照预定的范围、成本、质量和交期顺利完成软件开发而对范围、成本、人员、进度、质量、风险等进行分析和管理的活动。项目是企业的最小赢利单位,项目管理自然成为构筑企业利润的基石。从这种意义上说,项目管理是企业的核心竞争力所在。软件开发项目管理的四大变量如下: 范围 项目管理的第一法则就是“做正确的事”(Do right things),其次才是“正确地做事”(Do things right)。项目开发范围出错,就是走向失败的第一步。摆脱开发作业的“无底洞”必须明确的项目范围,表现在顾客的可靠需求式样、交付成果物及项目结束条件。没有工作范围的定义,项目就可能成为无底洞。可靠的需求式样是指经各方一致同意的、清楚的、完整的、详细的、整体的、可实现的、可测试的需求。交付成果物是项目的最终输出,是项目投入各种资源的依据。项目结束条件是软件开发商和顾客之间所订立的项目最终验收条件,是是否完成合同要求的判断标准。软件开发项目必须识别项目的驱动、约束条件和自由程度。每个项目都需要平衡它的功能、人员、预算、进度和质量目标。以上5个项目中的每一个方面可以定义成一个约束,必须在这个约束中进行操作;或者定义成与项目成功对应的驱动,或者定义成通向成功的自由程度,可以在一个规定的范围内调整。项目范围管理的作用就是保证项目计划包括且仅包括为成功地完成项目所需要进行的所有工作。项目组需按照专业原则控制自由裁量余地,明确顾客的需求边界和自身的自由裁量范围,避免自由裁量的边界溢出,同时避免与顾客的过于细微烦琐的无休止报告和确认过程。须知:基于书面而非口头,基于明确而非模糊的范围将从根本上提升软件开发的质量和效率。 质量 任何软件开发项目中,质量不仅仅拥有发言权,而且对项目的成败拥有表决权甚至最终的否决权。质量不仅仅会对软件开发项目本身的成败产生影响,而且会对软件企业的形象、商誉、品牌的褒贬带来冲击和震荡。质量是指项目满足明确或隐含需求的程度。一般通过定义作业范围的交付物标准来明确定义作业成果物的质量,包括质量的各种特性及这些特性需要满足的要求;还可能对项目的过程质量做出明确规定,包括软件开发所规定的流程、规范和标准,以及有效执行这些过程的证据;还可能对项目的顾客应对质量作出规定,包括应对顾客的态度、速度以及方法。高质量来自满足顾客需求的质量计划、质量保证、质量控制和质量改善活动,来自保证质量、捍卫质量和创造质量的卓越理念、规则、机制和方法。 成本 企业经营的最直接目标就是利润,而成本与利润的关系最为密切。软件开发项目中的成本指完成项目需要的所有费用,包括人力成本、材料成本、设备租金、咨询费用、日常费用等。项目的总成本以预算为基础,项目结束时的最终成本应控制在预算内。成本体现在预算中以及实际使用经费中。软件企业的经济性基础就是利润,而利润的最直接决定因素就是成本。项目作为软件企业的最基本利润单位,其成本就成为软件企业成本的最基本构成单位。成本管理就是确保项目在预算范围之内的管理过程,包括资源规划、成本估算、成本预算、成本控制4部分。 交期 软件开发过程中,分分秒秒皆财富。交期作为软件开发合同或者软件开发项目中的时间要素,是软件开发能否获得成功的重要判断标准之一。不管是软件开发的QCD(quality cost delivery)要素,还是项目管理的CFB(cheaper faster better)目标,都无一例外地将交期纳入最核心的关注范围之中。软件开发项目管理的主要目标就是提升质量、降低成本、捍卫交期,以及追求顾客满意。交期意味着软件开发在时间上的限制,意味着软件开发的最终速度,也意味着满足交期带来的预期收益和捍卫交期需要付出的代价。交期体现在进度计划中,而进度计划记录了软件开发的计划和实际的动态性日期,包括最早日期、最迟日期、基线日期、计划日期和实际日期。三程思维:流程·进程·工程 流程:先后序列—— 工序与秩序 软件开发流程(procedure)是将用户需求转化为软件需求、将软件需求转化为软件设计、将软件设计转化为代码、再对代码进行测试并签署确认投入运行的动态性过程。流程体现了软件开发作业的先后序列,包含着工序和秩序的涵义。流程意味着规范化、流水线化、工业化的软件开发步骤,意味着约束软件开发人员“脱轨”行为的制度性安排,意味着软件开发建立在良好、规范、标准的管理之上,意味着软件开发中可以预期的作业效果。从这种意义上来说,良好的流程可以避免蹩脚的人员开发出来的产品不至于太差,但不能确保产品必然是精品。由优秀的人员按照卓越的流程进行软件开发,才能最大限度地保证项目的成功。 进程:进展推移—— 计划与实绩 软件开发进程(progress),也叫作软件开发进度或者软件开发日程,是软件开发过程的时间递推性表达,也是软件项目管理动态跟踪的依托。合理的、基于现实的进程表是软件开发项目成功的必要条件之一。软件开发进程表必须为计划、设计、测试、除错、再测试、变更、以及编制文档留出合理的时间,避免通过突击的办法来完成项目。关注进程,关注项目动态进展,项目管理者才能根据项目的实际情况采取控制措施。当软件开发实况滞后于软件开发计划时,就意味着进程出现问题,意味着作为项目结束日期的“交期”出现危机,必须采取补救措施或者调整计划。 工程:系统规范—— 系统与方法 软件工程(engineering)这一概念因“软件危机”而诞生,意指软件的开发、运用、维护、修复等系统性理论、方法、工具、实践技术,研究如何用系统化、规范化、数量化等工程原则和方法进行软件的开发和维护,采用系统工程的思想来制定软件工程规范、研究软件工程技术和建立软件工程标准,实现低成本、高质量和按时交付。工程意味着概念的完整性、理论的系统性和方法的规范性,意味着来源于实践又高于实践的理论抽象,意味着依赖于理论而又不拘泥于理论的实践导向。软件工程主要包含理论、方法、工具等要素,涉及软件工程目标、软件工程原则和软件工程活动。 责编: 微信扫一扫实时了解行业动态 微信扫一扫分享本文给好友 著作权声明:畅享网文章著作权分属畅享网、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。 |
|
|