最小化、完整性和可扩展
OpenUP是一个最小化、完整和可扩展的软件开发流程。为小型团队提供了一套最小化的流程,可以直接使用,也可以执行自定义和扩展以符合团队的需要。
简介
我们可以通过以下方式理解OpenUP:它所服务的团队包含以下目标:
- 应用最低限度的,只包含必需元素的流程来提升整体价值
- 避免不能提升生产力的形式主义的工作产品导致额外工作量
- 采用可以在软件开发生命周期内可能需要进行扩展的流程
为了能够把流程应用到尽可能多的项目中,OpenUP拥有以下的几个特性:
- 最小化—— 仅仅包含了基本的内容
- 完整性——呈现了构建一个系统的完整流程
- 可扩展性——提供基础流程内容,这些流程可以根据需要新增或者裁剪
最小化
OpenUP是一个敏捷、轻量型的流程,为软件开发提供了一系列的最佳实践
- 迭代开发
- 团队协作
- 持续集成和测试
- 持续交付可工作的软件
- 拥抱变化等等
在确定流程的规模大小时,同时还需要考虑其他的因素,例如方法元素(methode elements)角色、任务交付件和操作指导书等。
OpenUP提供了组成团队的基本角色责任、技巧和能力的描述。参照角色列表查看更多的信息。
OpenUP提供了基本的交付件用于捕获和沟通决议。我们最终的目的并非通过创建交付件来操作流程。例如,思考设计比起编写设计文档更为重要;评估迭代和对迭代进行计划是为了提升团队的协作,而不是为了死板地创建计划。
OpenUP建议使用非正式的表述方式(informal representations)或者为团队提供简单易用的非正式模板,团队不需要重新创建这些模板。当然,团队也可以决定采用哪种最合适的记录形式。你可以通过 工作产品(work product) 查看详细信息,这些工作产品通过 领域(domain) 进行组织。
OpenUP中的任务(Task)的描述清晰明了,并且重点关注于任务的结果。任务的文字描述一般简洁而且目标明确,描述了团队成员如何协作来达成目标。描述的步骤都比较简单并且链接到了外部的操作指导,通过这种方式指导如何完成任务步骤。详细可查阅科目(discipline)中的任务(task)列表。
OpenUP推荐团队使用最小化的流程指导,以确保项目获得成功。各个团队对于角色的名称定义或者职责定义可能不同,执行任务输出的交付件表现形式也许也不同,不过,他们仍然应该遵从OpenUP的原则和实践,从而增加项目成功的机会。
完整性
OpenUP是一个完整的流程,它通过指导团队执行以下高层级活动,内容覆盖了整个软件开发生命周期中的基本原则。
- 通过用户的持续参与,引导和捕获客户的需求。
- 健壮的系统架构需要不断演进,通过演进处理技术风险和提升团队技能。
- 对于每一个需求,设计一个技术解决方案,实现并且测试,这个过程遵从架构决议。
- 通过测试评估系统并且验证是否符合客户需求。
- 在开发过程中反馈缺陷和增强功能
- 工作需要设定优先级,每个迭代应该有计划并且评估迭代的合理性,团队对所承担需要完成的任务负责。
不过,OpenUP假设项目团队不负责下列的活动和决议,这些活动和决议应该分配给团队的其他领域完成。
- 业务用例的创建,管理层应该决定是否值得投资,以及投资的回报是什么,等等。
- 环境的建立 —— 一些组织层面的问题可能不是团队的职责范围。例如:安装、开发工具的配置和许可证,以及配置管理工具;开发流程的定制和发布等。
- 部署和操作——在组织层面上进行处理,而不是在团队层面。
OpenUP同样没有描述其他领域关注的一些内容,因为小型团队不需要处理这些正式的和日常操作的领域,他们包括(不仅仅包括这些内容):
- 高级配置管理
- 高级需求管理
- 程序和文件的管理
可扩展性
OpenUP具有开箱即用的特性,项目中可以直接使用,因为整个流程是最小化并且具备完整性的。
不过,不同的项目有不同的需求。组织可能喜欢自定义OpenUP某方面的流程,使之更适合他们的团队。以下是一些可能进行自定义的例子:
- 新增角色或者角色重命名。
- 新增步骤到已存在的任务中。
- 对特定技术新增操作指南。
- 移除特定的内容领域。
- 修改已有的模板或者为交付件新增模板
- 修改或者新增一个新的生命周期
- 新增或者移除流程内容
- 对完成某系项任务新增操作指导书
- 对正在使用的技术新增操作指导规格说明书
- 基于新的内容替换或者新增内容(例如修改或者新增说明材料用来说明如何执行管理)
- 其他
你可以使用EPF Composer工具对OpenUP进行编写、配置和方法的发布,从而达到自定义和扩展的目的。通过EPF Composer,可以根据团队的需要新增、删除或者修改流程元素,然后把内容发布为操作指导书供团队使用。