敏捷开发会被误解为是“用质量换效率”,实际是这样吗?
其实这句话正确的表达应该是“向质量要效率”,无论是敏捷还是精益开发都是这样。
我们通常理解的质量是什么?
主观来说,客户感觉功能是否好用;客观一些的话,功能的响应速度是否满足预期;深入一些的说,新需求是否比较容易被满足。
其实这些都只是外部质量,外部质量由内部质量决定,它可以一定层度反映内部质量;内部质量才是关键,它影响和决定了外部质量。
内部质量是什么?
内部质量基本是围绕着代码的观察,包括代码的复杂度、代码的测试覆盖率、代码的耦合性、代码的重复度等等。
想要真正改进质量,要从内部质量入手。
虽然我们有质量团队,可以通过测试来保障质量,但事实上,测试能反映质量情况,并不能改变质量情况,所以要向开发要质量,从内部质量入手。开发提交的代码质量高,内部质量高,外部质量自然就会高。
其次,可以进一步通过控制需求的粒度来改进质量。我们内部自己的实践,2周一个版本的节奏发布,提升的不止产品的内外质量,还有团队的整体幸福感和成就感。
最后,还可以形成质量的正向反馈。对外部质量等多个维度进行分析,将结论及时有效反馈给产研团队,也是一个行之有效的方法。