如果你从事软件开发相关行业,你在过去一定曾经思考过”完成”是怎么定义的。当你问这个问题时,你的身份和你在公司或组织中的职级是很重要的。因为在不同的团队中,如交付团队、项目团队和投资组合团队,对“完成”的定义各不相同。但我们可以确定的一点是,在组织的每一个层级,都需要一个明确的对“完成”的定义。
完成的定义
“完成的定义”或称为“DoD”(Definition of Done),指的是当一个软件产品达到了所有必需的条件或满足了所有的接受标准,并且它已经做好准备被用户、客户、团队或其他系统所接受。为了确保产品的质量,我们必须满足这个“完成”的定义。这个定义的存在可以减少重复的工作量,并防止那些没有达到这个定义的用户故事被移至更高的环境或阶段。同时,它也可以防止那些不满足这个定义的功能被交付给用户。
用户故事
DoD最常见的用途是在交付团队层面。在这个团队层级,一个用户故事被视为“完成”的,是指那个故事已经被产品负责人审核过并且接受了。当一个用户故事被接受为“完成”,它将对团队的工作速度产生积极影响。但是,要让一个用户故事被认为是“完成”的,它必须满足所有已定义的标准。
下面是用户故事“完成的定义”的一些示例:
- 通过单元测试
- 代码已被审查
- 符合验收标准
- 功能测试通过
- 满足非功能性的要求
- 产品负责人已经接受了这个用户故事
功能
在某个特定的层级,当说到“完成”时,可能指的是这个功能已经达到了被加入到正式发布版本的标准或资格。并不意味着每一个用户故事都必须被完成。相反,它可能意味着某个功能已经足够完善,可以满足特定的需求。当一个功能被接受并标记为“完成”,这将有助于提高产品或版本的发布速度。但是,要想一个功能被认为是“完成”,它必须满足所有预先定义的标准。
以下是关于功能“完成的定义”(DoD)的一些示例:
- 符合验收标准
- 成功集成到一个无错误的软件构建中
- 被升级或移至更高级的运行环境
- 成功通过自动化回归测试
- 通过针对该功能的功能测试
- 满足非功能性的要求或标准
- 符合了相关的法规或合规要求
- 在必要的用户手册或文档中对其功能性进行了描述和记录
史诗
在这个层级上的“完成”可能是指组织内部视为重要的战略任务、投资组合中的计划项目,或者是满足特定市场需求的一系列功能或特性的集合。并不意味着所有的用户故事或功能特性都必须完成。相反的,一个“史诗”本身,即使不完全,可能也已经足够满足某些特定的需求。当一个“史诗”被认为是“完成”并被接受后,这将有助于进行吞吐量的估算或计算,这样可以帮助判断资源供应是否与需求保持平衡。
以下是关于“史诗”完成的定义(DoD)的一些示例:
- 满足非功能性要求
- 端到端集成完成
- 回归测试通过
- 提升到生产环境
- 符合既定的市场预期
总结
就像“准备的定义”是至关重要的一样,“完成的定义”也是同样的重要。在大家对于某个定义达成共同的认知之前,不应该开始相关的工作。在这个过程中,大家的看法和理解应该是一致的、清晰的,并且要确保每个人都对此有共同的理解。