文章

以项目形式管理SPI

2002-07-16雅行

5004阅

    以项目形式管理软件过程改进,特别有利于提高团队凝聚力、规避风险、明确目标、提高效率,而且由于SPI项目组与其他项目组形成了一种矩阵式组织结构,可以有效促进组间交流。所以对于SPI这样一件比较复杂的工程来说,以项目形式进行管理将是成功的重要保证。
    国外的一项有关SPI(Software Process Improvement软件过程改进)的调查表明,没有很好地对过程改进进行管理造成了至少70%以上的软件企业改进失败或挫折!当我们问自己如下问题的时候,能否迅速给出满意的答案——
    SPI强调管理,自身是如何管理的?
    SPI提供方法论,自己的方法论如何?
    SPI强调做事要有计划性,自身计划性如何?
    SPI倡导风险管理,自身的风险被很好识别了吗?
    本文试图给出一种对SPI自身进行管理的方法——“以项目形式管理SPI”。
以项目形式管理SPI通常分为如下五步骤:体系诊断,方案设计,项目策划,过程管理,项目验收总结。
 
    体系诊断
 
    诊断是一切过程改进和管理咨询的前奏,对于不以取证为目的的软件过程改进来说,这一步尤其重要。
    “过程诊断”和“过程审计”有着某种程度的相似性,通常的方式为面谈、文档查阅、检查表填写等形式。
    典型的基于CMM的检查表(软件项目跟踪和监督)举例如下:

    典型的SPI诊断花费大约为2~3人/日,这和组织的成熟度、组织的历史长短、管理和业务的复杂度都有关系。
    对诊断过程的漠视是自上向下改进策略的最大弊端。
 
    方案设计

    在了解了组织、项目的实际状态以后,就可以有针对性地提出解决方案了,这一步骤称为方案设计。

    在上图方案中,我们可以看到主要的元素来自于CMM、SEBOK(软件工程)、Good Practice (最佳实践)。这种结果是与该企业的如下现状相适应的: 
分页
    首先,该企业没有形成基本的软件工程流程。
    其次,项目没有生命周期的概念,无明确启动和验收点,正如其项目经理所言,“我们的项目结束点要等到下一个项目已经开始,本期项目不得不结束时才会出现”。
    再次,该企业整体管理基础薄弱,资源提供不充分,这种情况下,在大企业顺理成章的事情可能在这里都是问题,所以需要大量的变通和折衷策略,这些都被归纳在Good Practice中。
    诸如此类的方案设计,存在两个裁减特征: 一是横向裁减,可以在打破现有知识体系的基础上,创造性的构建新体系;其二是纵向裁减,比如对于CMM具体KPA,也可以分两步或更多步来达到要求。所有这些裁减都会带来更多的灵活性。
    SPI方案的编制需要涵盖如下内容:本组织软件过程改进的历史,过程诊断(包括诊断方法、诊断结果和差距分析),改进方案(包括总体目标、总体工程化管理系统设计和详细改进措施),资源需求预测,计划进度概要(包括前提和承诺、资源需求预测),风险,里程碑。

    项目策划

    方案得到认可后,可启动项目策划。SPI的项目策划要求与其他项目策划的要求并无多少差异,主要是编制一份项目计划,有如下内容:项目目标(包括整体目标和本阶段目标),假定和约束,项目组织(包括组织结构、接口关系、报告关系和责任矩阵),项目进度跟踪方式,项目里程碑,交付物(包括文档编制和人员培训),风险管理,项目激励,项目验收。
值得一提的是SPI风险管理,其说明如下表。

    过程管理
 
    计划制定好以后,还要对 SPI的实施过程进行定期和不定期的过程跟踪,一般可通过“周”和“里程碑”两种周期进行跟踪。周跟踪的内容为进度、完成量、问题和风险,通过周报和周会的形式进行;里程碑跟踪的内容为进度、工作量、人力开销、风险等,还要对项目管理的经验和教训进行总结,里程碑也是识别典型案例和收集最佳实践的良好时机。里程碑跟踪活动通常包括“里程碑总结报告编制”和“里程碑总结会”两种形式。
 
    项目验收总结

    对于自底向上的软件过程改进,并没有标准的验收准则可利用,这要求组织根据自身裁减的体系编制自己的验收准则。验收准则有定性和定量两种形式,定量适合于有一定管理基础的组织,需要有足够的、可信的、可比的历史数据。但多数中小软件企业可能在起步阶段只能选择定性验收的方式,这种定性验收方式常常是“先僵化、再固化、后优化”理念的一种体现。
    项目验收后,组织需要进行SPI项目的最后一项活动——项目总结,需要提交书面报告并召开总结会,项目总结中要统计汇总SPI本身数据、进度、开销、偏差及分析,还要识别和共享经验教训。这一阶段的工作将为今后的SPI持续改进打下良好的基础。SPI将进入下一个改进循环。
    北京SPIN:获得美国软件工程协会SEI的批准,成为全球数十个SPIN联盟成员之一,从而获得举办全球SEPG大会的资格。
    SPIN是软件过程改进网络(Software Process Improvement Network)的英文缩写。它是软件行业的一种民间、非赢利性、实践交流组织。

责任编辑:木军
读者评论 (0)
请您登录/注册后再评论