质量与效能的再思考

简介: 质量与效能的再思考

640.jpg上周又和朋友聊起了质量内建与效能提升相关的话题,仔细想想,好像很少把这两个话题放在一起思考,其实,质量和效能是“既要、也要”的关系,效能的提升能够将软件研发中的风险更快、更及时地暴露出来,同时减轻团队负担,反过来又能提升质量本身。所以实际上可以放在一起来看。


01

敏捷中的快速验证



在《从一个小角度观察敏捷实践》一文中,我曾经提到过,可以通过缺陷的发现时间节点来判断团队是否是在做敏捷迭代,还是小规模的瀑布。核心思想来自于自己的思考:研发发布了一段代码后,需要多久才能知道自己的代码质量如何,是否会影响到其他的业务功能?在传统的研发模式下,研发的代码合并主干后,要很久才能得到反馈,因为依赖测试人员的验证。而在敏捷的模式下,我们希望这段代码能够快速地被验证,获得质量反馈。这不也正是研发效能中所提倡的么,不管是本地验证、集成CICD还是各类专项测试,都是为了尽快得到这个反馈。


02

为何要做效能提升


640.png



如上图,我们把重要性和紧迫性关联想来,画出如上的象限图。在理想的情况下,我们希望把更多的时间放到“未雨绸缪象限”A当中,去思考团队未来的发展,去思考如何通过更好的方法论或者技能去提升效率或者构建质量。但现实的情况是,多数情况下,我们会把更多的精力放到“救火象限”B象限中,感觉每天都在忙着很紧急的事,陷入无尽的“很忙”旋涡中。如果你的团队一直处于B象限中,其实很难去保证质量,越急越错是很常见的事件。所以需要团队中有人去思考如何改进,如何提升效能,让团队从B象限中释放出来,做更多有意义的改进,来反哺产品质量。


03

一些其它的分享



“信息熵衰减对研发效能的影响是巨大的,要想方设法将信息传递的效率提升上去”


在以前,我们是通过文档来沟通和沉淀信息的,需要写很细致的需求文档、概要设计、测试用例等等。因为我们认为文字是很有力量的,能够准确的传达编写者的意图。但实际上大家对于文字的理解又有自己的想法,随着传递人员的增加,信息熵衰减会越来越严重。导致信息不对称,带来研发上的修改甚至返工。

现在我们提倡的测试左移、看板方法等形式,都是希望能够尽快对齐信息,并把信息透明化,让团队可以随时看到自己想要的信息。减少信息熵的衰减。

 

“自解释的代码不是无注释和无文档的代码,而是伴随着高信息熵的代码体系。内容简洁合理的注释与文档,同样也是优秀代码的一部分,能够给效能的提升带来帮助”


代码注释其实非常重要,现在大家更多的提倡的是编写自解释的代码,更规范命名,而忽略了注释的编写。没有注释的代码,会给后期的代码维护和修改带来不便,进而影响整体的研发效能。


04

个人和团队的不同要求



不论是敏捷实践,还是研发效能的提升,对于团队的意义都相当的清晰。这里不再赘述。对于个人而言,敏捷实践和研发效能的提升,是解放了个人,还是毁灭了自己?团队如何去向成员传递这个价值,是我一直在思考的问题,也问过很多人,现在基本上是想明白了。


对于团队来说,我们不单单需要去宣导理论层面的东西,还要有更为具体的落地规则,让成员先动起来,让成员养成习惯,形成团队惯性。个人能理解最好,如果不能理解,那就被动接受。不要期望每个人都有学习的动力和意愿,改变他人其实是很难的,也是不受控的。团队需要把更多的精力放在那些可控的事情上面,比如制定规则,比如提供工具或者方案。


对于个人而言,如果你有主动改变的意识,那就去学习相关的知识和技能,尝试做出改变,因为能力的提升是自己的。不论的是质量观的改变,还是具体研发效能的提升,都会给你后续的职业生涯带来帮助,现在团队有这样的要求和氛围,远比你单纯的自己去学,要高效得多。个人从团队中的收获不应仅仅是薪酬,还需要从团队中获取到更多有利于提升自己的东西。


PS:部分观点来自于《软件研发效能提升之美》一书,推荐大家看看。


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


相关文章
|
3月前
|
Web App开发 安全 Java
软件测试中的自动化:提升效率与质量
【8月更文挑战第24天】在软件开发的海洋中,测试是确保航行安全的灯塔。随着技术的发展,自动化测试工具如同现代化的导航系统,为软件的质量保驾护航。本文将带你了解自动化测试的重要性,探索如何利用这些工具提升测试效率和软件质量,并结合实例,展示自动化测试脚本的编写和应用。让我们一起启航,探索自动化测试的世界!
|
3月前
|
敏捷开发 安全 jenkins
自动化测试在敏捷开发中的应用:加速迭代,保障质量
【8月更文挑战第2天】自动化测试在敏捷开发中扮演着至关重要的角色。通过提升测试效率、提高测试覆盖率、及时反馈与修复等优势,自动化测试为敏捷开发团队提供了强大的支持。然而,在实施自动化测试的过程中也面临着一些挑战。通过选择合适的测试框架和工具、制定测试计划和策略、持续优化和维护等策略以及遵循最佳实践并克服挑战,我们可以充分发挥自动化测试在敏捷开发中的潜力,为软件质量的提升和快速迭代保驾护航。
|
3月前
|
测试技术
软件交付质量问题之对于处理质量与成本的平衡该如何实现
软件交付质量问题之对于处理质量与成本的平衡该如何实现
|
6月前
|
Java jenkins 测试技术
持续集成:效率与质量之道
持续集成:效率与质量之道
|
5月前
|
监控 jenkins 测试技术
软件测试中的敏捷实践:提升效率与质量
【6月更文挑战第7天】在快速迭代的软件开发领域,敏捷测试方法如同精准的瑞士军刀,为团队提供了灵活而高效的质量保证。本文将探讨敏捷测试的核心原则和实践,如何通过持续集成、自动化测试和紧密的跨功能团队合作,实现对软件质量的持续监控和改进。我们将深入理解敏捷测试的价值,并探索它如何帮助开发团队在变化莫测的市场中保持竞争力。
112 0
|
6月前
|
测试技术 持续交付 Python
集成测试:协同质量保障
集成测试:协同质量保障
|
6月前
|
测试技术
软件测试是质量需求的交付实践
软件测试是质量需求的交付实践
142 0
|
存储
质量的度量与运营思考
管理学大师德鲁克曾说过“如果你无法衡量它,就无法管理它(If you can’t measure it, you can’t manage it)”。可见,要想有效管理某事务,就需要将它全面且有效地度量起来,而要想针对某个方面进行改进,就需要有针对性地运营。 质量度量体系 大家都知道作为测试的主要任务是质量保障,保障线上环境没有故障和缺陷,最终交付给真实用户的质量,即交付质量。那么,质量度量是不是只关注交付质量指标就足够了呢?答案显然是否定的。因为如果只关注交付质量,往往达不到提升交付质量的目的。比如,你每天关注线上交付质量,忙着一个又一个的项目,一段时间过
218 0
|
运维 测试技术
团队交付质量如何评估
团队交付质量如何评估
359 0
团队交付质量如何评估
|
数据采集 运维 安全
全方位的测试质量守护体系,保障交付质量|学习笔记
快速学习全方位的测试质量守护体系,保障交付质量
364 0
全方位的测试质量守护体系,保障交付质量|学习笔记