敏捷开发并不只是一个“速度游戏”,而是一个强调敏捷的“质量游戏”。在敏捷开发过程中,如果只满足了进度而忽视了质量,最终会影响项目的成功。越来越多的企业希望采用敏捷开发模式,但却困于没有把握,缺乏相应的质量管理方法。如何在敏捷开发模式下进行质量管理,达到质量与效率的双赢呢,不妨试试下文的方法。
张小龙曾在微信事业群中谈到敏捷开发:
我们今天可以想一些与众不同的点子,然后我们可以很快就看到效果,因为我们可以很快把它上线了,然后可以去验证,如果不对就下线,如果还有改进余地,下个星期再去改它。这是一个能够持续实现你的想法的过程。
传统的开发流程采用瀑布式开发,从设计到编码,从测试到交付,每个阶段都必须全部完成,才能进入下一阶段。而在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。
“敏捷开发”是互联网产品开发的典型方法论,是一种以人为核心、迭代、循序渐进的开发方法,允许有所不足,不断试错,在持续迭代中完善产品。
敏捷开发有两个点,一个“微”,一个“快”。
“微”是指从小处着眼,微创新。可能你觉得是一个不起眼的点,但是用户可能觉得很重要”。从细微的用户需求入手,贴近用户心理,在用户参与和反馈中逐步改进。
“快”是指快速迭代。“天下武功,唯快不破”。只有快速地对消费者需求做出反应,产品才更容易贴近消费者。
近年来,越来越多团队开始探讨如何进行敏捷规模化,提出了很多有效的框架,都是基于精益和敏捷的理念,在这个过程中通过系统思考产品开发流,让它形成一套完整有效的方法,进行整体的优化。公司有广泛而深入的精益和敏捷的理念来支撑,才能从局部优化上升到整体优化,才能走的更加长远健康。
敏捷模式下的质量管理更具有挑战性。
在推动敏捷开发的同时,如何降低项目管理成本,提高研发人员工作效率,保证项目交付质量,变得日益重要。在敏捷开发中,衡量过程质量一直以来没有一个广泛的方法,在推广敏捷开发的过程中,总结归纳了项目过程中的常见问题,汇总了一套敏捷开发过程质量判断方案。这种方法用明确的数据从各个维度来说明一个迭代的质量问题,长期还可以看出一个项目多个迭代之间的质量变化趋势,如果多个项目同时进行,也可以轻松对比出各个项目的迭代质量优劣和质量发展趋势。
以一个迭代为统计单元,每个迭代中的story完成情况和bug解决情况从以下6个角度,综合考虑了时效性和完成质量。
评价功能开发是否按时并达到质量基础要求完成,使用“story延期率”和“story打回率”两个指标,评价在功能开发过程中的时效和质量。
① Story 延期率:统计功能是否按时提测,以实际提测时间(story到“开发完成”状态)与story的“计划提测日期”字段中的时间对比,若晚于计划时间,那么story即标记为延期提测;
② Story 打回率:统计story开发完成提测后能否满足提测标准,以冒烟测试用例的满足情况为准,如果测试验证未满足则会将story打回开发状态,同一个story如果被多次打回,打回次数按照实际记录,也就是说打回率会急剧增加;
评价在测试过程中所发现的问题是否按时解决并达到质量要求,使用“Bug打回率”、“Bug不收敛率”、“Bug引发率”和“Bug 重启率”四个维度,分别介绍如下。
③ Bug 打回率:是指开发人员解决了bug并提测到“开发完成”状态,但经测试人员验证发现并没有解决,被打回到“开发中”的状态;
④ Bug 不收敛率:测试提出的bug未按照解决时效要求修复的,例如,解决时效要求:P0:2小时内未修复视为不收敛;P1:半天未修复视为不收敛;P2:一个工作日内未修复视为不收敛;P3,P4(必修):2个工作日内不修复视为不收敛;
⑤ Bug 引发率:是指开发人员在解决一个bug时,引起了其他的bug;
⑥ Bug 重启率:已经关闭的bug在开发人员解决问题的过程中或者代码部署的误操作等导致不过重新出现。
在考虑各个指标分值占比时,从各个指标的意义、影响等方面综合考虑,6个维度指标优先级从高至低排列为:story延期率,story打回率,bug打回率,bug引发率,bug不收敛率,bug重启率。story延期率分值占比最高,因为story如果延期提测,那么后面的工作将整体受影响,并且可能会导致测试人员的工作安排冲突。
以100分为总分,各个指标划分一定的分值,输入sprint结束后6个维度的质量统计数据,按照下面的积分模型,计算出这个sprint的过程质量总分。
敏捷开发的核心就是小版本迭代,快速出产品,所以项目一般会延续多个版本。所以项目过程质量可以在每个sprint结束后均有对应的质量数据输出,经过一系列迭代后,可以看出这个项目的质量趋势。如果同期有多个项目在进行,那么也可以通过质量数据的对比,对比出各个项目的质量优劣,同时辅以图表来直观分析对比。
例如,同一阶段有3个项目在进行,同一个时间这3个项目的迭代质量和质量波动幅度数据如下,那么按照质量均分和波动幅度使用柱状图进行排序,各个项目的对比情况立刻见分晓。
对于多个项目的质量对比,采取项目质量平均分的方式,以及项目质量多个迭代版本的质量波动数据来表示。
质量平均分采取项目从第一个迭代至当前迭代的质量分数的平均值,代表项目截止当前的质量平均水平;
质量波动数据采取基于截止当前的迭代质量分数计算方差,数据越小,说明质量波动越小。
多个项目并行时,从质量均分和质量波动数据两个维度分别对比,同一时间将每个项目标记在一个二维象限(象限的质量均分和质量波动数据两个维度的分割值可以视具体的项目情况而定,例如采用多个项目这两个维度的平均值)中,项目质量以及波动情况即显而易见,在“质量好,波动小”到“质量差,波动大”之间一目了然。
以上介绍的质量判断方案需要有一定的工具支撑,我们使用了JIRA进行项目管理,管理需求和开发过程以及bug,story的计划提测时间和打回次数可以进行记录,在迭代结束后只要花很少的时间就可以进行快速得统计,迭代质量数据也可以呈现出来。项目经理在很短时间内就可以统计出项目的质量分数并进行后续分析。
好的研发工具可以简化质量统计,质量统计方案在实施过程中,往往需要配合组织架构、流程、文化建设等多方面,才能达到有效推动改进迭代质量。
长按左侧二维码关注
关于“零道书院”
我们是来自于中国平安集团旗下前海征信的fintech先锋团队。定期分享互联网金融的前沿技术,探讨热点专题。有料!有态度!欢迎关注。
(部分图片来源于网络)
信用·让你我更好互联
看你靠不靠谱,点击阅读原文测分