知识卡片

垂直演进原型:增量交付与"发布级质量"要求

普通读书笔记卡

内容

垂直演进原型和迭代式软件开发所暗示的”多次交付、增量交付”思想完全一致,它强调逐步提供用户所要求的功能。这里有一条容易被误解、但书中特别强调的原则:每次提交的功能必须是可用的、并具有或接近产品发布级的产品质量,而不能像有些实践者认为的那样”反正是原型,不用达到发布级质量”——一旦放弃这条要求,垂直演进原型就退化成了普通的功能堆砌,失去了它作为”演进”原型、能被直接沿用为正式产品基础的核心价值。这条原则让人联想到一句比”早发布、常发布”更激进的流行语——”永远只是Beta版”:这里”永远Beta版”更多强调的是整个产品的功能范围并未被最终冻结、还在持续演进,而传统意义上”Beta版”所暗示的”用户级测试、质量还不够稳定”这层含义反而是次要的——换句话说,”Beta”标签描述的是产品功能边界的开放状态,而不是代码质量的宽松标准,即便贴着Beta标签,交付出去的每一部分依然要达到接近发布级的质量。理解这条原则的实用意义在于:如果一个团队打算用”垂直演进原型”这个说法为代码质量不达标找借口,那就是对这个概念的误用——垂直演进原型省下的成本,来自”只做部分功能、逐步扩展范围”,而不是来自”降低已交付功能的质量标准”,这两者是完全不同的两件事。

参考来源

- 位置:《软件架构设计:程序员向架构师转型必备》第11章《架构验证》"11.1.5 垂直演进原型"节(源文件:_epub-src/OEBPS/text00014.html) - 结论依据:原文说明"我们应当注重每个此次将提交的功能必须是可用的并具有或接近产品发布级的产品质量,而不是有些实践者所认为的无需达到发布级质量",并指出"'永远Beta版'更多地强调的是整个产品的功能并未最终冻结,传统意义上的'Beta版'的用户级测试的含义倒是位于其次了",直接支撑本卡片结论。 - 原始内容:在实践中,我们应当注重每个此次将提交的功能必须是可用的并具有或接近产品发布级的产品质量,而不是有些实践者所认为的无需达到发布级质量……永远Beta版更多地强调的是整个产品的功能并未最终冻结。