内容提要
这篇文章介绍了一个简单而有效的实践方法,帮助敏捷团队达到软件质量目标。方法包括关注特定指标、激励团队成员、定期关注软件质量等方面。通过创建“质量报告”的轻量级实践,团队在多年来实现并保持了高质量的软件,并应对了短期成就的压力。实践的核心是质量冠军角色,类似于Scrum产品负责人,主要用于激励人们不断投资于长期软件质量。该实践包括角色、仪式和文档。通过这个实践,团队成功解决了软件质量目标的困难,并分享了他们的经验。
延伸解读
质量报告实践的核心要素
质量报告实践由角色、仪式和工件三部分组成。角色包括质量冠军和每个应用指定的首席开发者;仪式是每周一由质量冠军主持的在线会议,分为准备、报告和讨论三个阶段;工件是自动生成的Confluence维基页面,汇总各项指标。质量冠军负责挑战解释、推动改进,并撰写管理摘要,产品负责人需签署报告以确认质量的重要性。
指标与阈值设置
团队为每个应用定义了一套具体指标,包括静态代码分析、自动化测试、代码重复、日志、缺陷和拉取请求。静态代码分析要求零问题;自动化测试要求100%覆盖率且无忽略测试;日志中任何错误或警告都需立即处理;缺陷需及时修复或关闭;拉取请求需快速合并。阈值可配置,状态用颜色标记以引起注意。
实施中的关键学习
经过四年实践,团队规模和应用数量翻了三倍,代码库显著扩大。开发者认为质量报告是有价值的维护和运营质量工具。关键学习包括:质量冠军需挑战技术解释,防止草率结论;立即处理问题可产生紧迫感,避免小问题堆积;准备阶段的协作和“出声思考”分析有积极效果;非开发者角色参与效果不佳,因为需要了解应用内部运作和指标含义。
如何开始质量报告实践
团队必须相信高质量标准能使软件开发更快、更便宜、更有趣。需要定义反映软件开发过程和软件本身质量的指标,指标可由团队自行决定。要解决激励、定期关注、破窗效应和高 effort 四个难点。建议从小处着手,不要先关注工具,而是迭代地检查和调整实践。同时,团队需深入理解技术和软件实践,并拥有软件开发过程的所有权。
Q&A
质量冠军在软件开发中扮演什么角色?
质量冠军的角色类似于Scrum产品负责人,主要用于激励团队持续投资于长期软件质量。
如何通过质量报告实践提高软件质量?
通过关注特定指标、激励团队成员和定期检查软件质量,质量报告实践帮助团队实现并保持高质量的软件。
瑞士邮政的团队在软件开发中遇到了哪些质量目标的挑战?
主要挑战包括缺乏激励、缺乏定期关注和破窗效应,这些因素导致软件质量逐渐下降。
团队如何解决开发过程中高工作量的问题?
团队创建了维基页面模板,集中收集所有指标,减少开发人员检查指标的工作量。
质量报告的主要组成部分是什么?
质量报告包括角色、仪式和文档,确保团队成员对软件质量的关注和责任。
实施质量报告后,团队取得了哪些成就?
团队在使用质量报告四年后,实现了100%的代码覆盖率和无已知生产错误,软件质量显著提高。