3.8 开放统一过程
开放统一过程(Open United Process,OpenUP)是一种基于Eclipse过程框架(Eclipse Process Framework,EPF)的开源方法。如图3.5所示,OpenUP基于统一过程的四阶段的方法采用了迭代和增量(演进型)的生命周期,包含一套核心的敏捷实践。为了避免使用过多的流程,OpenUP遵循精益原则,只涉及最小集合的敏捷实践,更适合于小型敏捷项目。而根据具体情况,必要的时候,我们还可以在此基础上增量地添加一些有关企业、治理或技术相关的指南。OpenUP的重点在于,通过增量的方式一点点地扩充过程,以求找到团队或项目所需的最精简过程,而不是首先试图理解复杂臃肿的过程,然后在此基础上做适当的裁剪。后者难度较大,且效率不高,这点也已经过实践证明。
个人对于OpenUP项目的贡献以微增量形式组织。微增量代表短期的工作单元,它可以产生出项目进展过程中稳定、可测量的步调(典型的是以小时数或者天数作为度量单位)。该过程采用加强型的协作,因为产品系统需要以增量的方式由做过承诺的自组织团队开发。这些微增量提供极短的反馈循环回路,使得团队在每一个迭代过程中都能做出恰当灵活的决定。
OpenUP将项目划分为若干个迭代周期:有规划的、有时限的时间段,通常以周为度量单位。迭代使团队注重以一种可预见的方式向利益相关者交付增长式的价值。迭代计划定义在迭代期间应当完成哪些工作,其结果是一个可以演示或可以发布的构建。OpenUP团队将通过自组织来实现迭代目标和交付所承诺的成果。团队定义并“提取”出工作条目列表中的任务。OpenUP采用迭代生命周期(组织微增量如何应用)以得到一个稳定的、复合系统需要的构造,从而逐步地向迭代的目标前进。
OpenUP将项目生命周期分为四个阶段:先启阶段、精化阶段、构造阶段和移交阶段。项目生命周期为利益相关者和团队成员提供可见度和决策点。这将促进更有效的管理,并且允许在适当的时间做出项目是否继续的决定。项目计划定义生命周期,我们得到的最终结果是可发布的应用程序。
OpenUP的生命周期类似于DAD的。两者都有先启阶段,并且都通过首先在早期的迭代周期内构建“棘手的”部分,来尽可能早地降低风险。与其他基于同一过程框架的方法一样,OpenUP也专门有精化阶段:基准化体系结构,并尽可能多地降低风险。DAD也有类似的关注点(见第13章关于风险—价值生命周期实践的描述),但是没有为此专门分出单独的精化阶段。
什么是RUP
OpenUP是IBM精简的、开源版本的Rational统一过程(RUP)。遗憾的是,许多组织实施RUP的方式并不如本应的那样敏捷。RUP当然可以作为敏捷过程来使用,而且事实上很多组织也已经这么做了。