团队交付质量如何评估

简介: 团队交付质量如何评估

640.jpg

话题源于一位同事的提问:你认为用什么质量指标可以反映项目交付的一个质量?粗看之下有点蒙,质量指标,什么鬼?再思考一下,哦,原来是说交付质量的事,那不是有很多质量指标么?多数和BUG相关,例如BUG数量、Reopen BUG数、BUG解决时长等等,好像都能体现交付质量啊。仔细想想,草率了,我们衡量交付质量,不能只看这些,质量不应该简简单单地缺陷关联上就可以了。再想想,于是有了本文。


01

研发过程质量



既然不能只看结果,那我们就从源头开始看起吧。首先是需求质量,想要最终的交付质量高,那么源头的需求质量就不能太低,否则后续的研发活动做的再优秀,也不算好,很有可能一开始就跑偏了。我们需要在需求评审的阶段,从用户使用场景的角度出发,通过提问,把需求逐步澄清,并形成验收条件(以实例化的形式记录下来),产、研、测三方共同确认,形成共识,以保证大家对需求的认知不发生偏差,为后续团队正确的做事提供有价值的指导。根据用户故事的基本特性,做到业务可验收、研发可实现、测试可验证、部署可交付。(可参考:从测试看需求

 

再来看看研发过程的质量体现,对于代码质量,开发自有一套玩法,这里不细说。我们主要从更宏观的角度来看,个人认为有两个指标需要关注:构建成功率和缺陷趋势图。


构建成功率能很大程度上反映研发的提交质量,如果经常性地编译失败或者自动化测试不能通过,那么就需要引起重视,尝试去了解原因并找出解决方案,因为构建失败意味着最基本的业务保障都出问题了。


缺陷趋势图可以很好地反映缺陷的整体变化趋势和处理缺陷的时效性问题。如下图,大体上可以看到迭代缺陷的变化过程,缺陷在迭代中期被集中消灭的比较多,没有拖延到迭代后期,有利于测试的回归和其他方式的验证,降低风险。(关于度量的思考,可参考:度量平台落地实践


640.png


再来看看交付给用户的质量评估,这里主要提两个维度:交付时长和缺陷存留。交付时长体现了团队的交付能力,是否可以在用户期望的时间内完成交付,如果时长太长,用户的满意率下滑,你很难说本次交付的质量很高。因为最终评估标准是用户用上了,才能算好。

再来说说缺陷存留。曾经遇到过一个版本,遗留了30多个问题,测试报告也写测试通过,然后发布上线。虽然那些问题都是小问题,但是这么多的遗留问题,如果让用户遇上了,那会产生什么样的糟糕体验?我们可以允许有部分问题延期到下个迭代修复,但总要有个底线吧。


02

用户使用质量


如果仅仅从研发团队的角度来看,上面的那些指标好像也够了。但是,我们常说以终为始,交付增量功能并不是我们的终点,用户的使用才是迭代交付的终点。所以我们在评估团队交付质量的时候,也要把这方面的指标加上。


线上缺陷逃逸率:指的是线上发现的缺陷。不论你的研发过程再优秀,如果线上缺陷被较为轻易的发现,我们也很难说交付质量很好吧。虽然可以找很多的理由,但还是希望能够去避免类似的情况出现。


用户反馈:这里指的是用户的真实反馈,有机会去听听用户的心声。不要总是自我感觉良好。如果用户反馈使用很不方便,或者难以接受,那么我们的交付质量也不可能太好。这点可以和前面提到的需求质量相关联,因为这是需求质量的最直观体现。


数据埋点:如果说用户反馈过于主观,那么必要的数据埋点,有利于我们更加客观的去分析交付质量,比如改版前后比较,新功能的点击率,关键路径转化率,错误率,等等。如果你迭代 的功能没人用,谁比较尴尬呢?要注意的是,埋点数据可能会有延迟,参考这类数据时,可以把时间线放长一些。


03

非业务特性指标


理论上来说,上面那些指标,已经能够比较客观地反馈出迭代的交付质量了。但是在敏捷的场景下,时间短,任务重。有些在瀑布模式下比较注重的东西被忽略了,那就是非产品特性的质量。最典型的,就是可维护性和可扩展性。在瀑布模式下,我们会比较关注这两类的问题,因为交付时间长,如果不注意,后期的运维难度会很大。而在敏捷的环境中,因为交付任务重,加上敏捷提倡重构,所以研发对于代码的维护性和可扩展性并不会考虑太多(都想着会重构,但往往都没有重构的时间),在迭代中也没有预留相应的时间做技术债务的偿还,日积月累,屎山代码就慢慢产生了。


04

小结


640.png


以上,从三个方面讲述了关于团队交付质量的一些个人思考。作为研发侧的人员,我们更多的可能关注的是过程质量,如果你对代码或者研发有些追求的话,还需要关注非业务特性的交付质量。对于结果质量,看团队的追求吧。


本次话题就聊到这里,下次我们聊什么呢,敬请期待。

相关文章
|
7月前
|
敏捷开发 Devops 测试技术
构建软件质量保障体系
构建软件质量保障体系
254 0
|
4月前
|
Web App开发 安全 Java
软件测试中的自动化:提升效率与质量
【8月更文挑战第24天】在软件开发的海洋中,测试是确保航行安全的灯塔。随着技术的发展,自动化测试工具如同现代化的导航系统,为软件的质量保驾护航。本文将带你了解自动化测试的重要性,探索如何利用这些工具提升测试效率和软件质量,并结合实例,展示自动化测试脚本的编写和应用。让我们一起启航,探索自动化测试的世界!
|
4月前
|
敏捷开发 安全 jenkins
自动化测试在敏捷开发中的应用:加速迭代,保障质量
【8月更文挑战第2天】自动化测试在敏捷开发中扮演着至关重要的角色。通过提升测试效率、提高测试覆盖率、及时反馈与修复等优势,自动化测试为敏捷开发团队提供了强大的支持。然而,在实施自动化测试的过程中也面临着一些挑战。通过选择合适的测试框架和工具、制定测试计划和策略、持续优化和维护等策略以及遵循最佳实践并克服挑战,我们可以充分发挥自动化测试在敏捷开发中的潜力,为软件质量的提升和快速迭代保驾护航。
|
5月前
|
测试技术
软件测试自动化策略与实施:提升质量与效率的关键
【7月更文挑战第25天】软件测试自动化是提高软件质量和效率的重要手段。通过明确自动化测试目标、选择合适的测试工具、制定详细的测试计划、建立稳定的测试框架以及持续优化与迭代,企业可以构建高效、可靠的自动化测试体系。在实施过程中,注重与项目团队的沟通与协作,确保自动化测试与项目开发的紧密结合,共同推动产品质量的不断提升。
|
5月前
|
监控 测试技术
软件交付问题之如何进行自我总结以提高软件交付的质量和效率
软件交付问题之如何进行自我总结以提高软件交付的质量和效率
|
6月前
|
监控 jenkins 测试技术
软件测试中的敏捷实践:提升效率与质量
【6月更文挑战第7天】在快速迭代的软件开发领域,敏捷测试方法如同精准的瑞士军刀,为团队提供了灵活而高效的质量保证。本文将探讨敏捷测试的核心原则和实践,如何通过持续集成、自动化测试和紧密的跨功能团队合作,实现对软件质量的持续监控和改进。我们将深入理解敏捷测试的价值,并探索它如何帮助开发团队在变化莫测的市场中保持竞争力。
118 0
|
7月前
|
测试技术
软件测试是质量需求的交付实践
软件测试是质量需求的交付实践
145 0
|
运维 监控 测试技术
软件测试|测试人员如何为项目的质量保障兜底?
软件测试|测试人员如何为项目的质量保障兜底?
|
测试技术
质量与效能的再思考
质量与效能的再思考
194 0
质量与效能的再思考
|
测试技术 API 持续交付
持续测试成熟度模型
持续测试成熟度模型
322 0
持续测试成熟度模型