中通科技 IT 中心拥有千人级研发团队、上百自研产品、年度发布版本 5000+,面对如此多快速迭代项目,以下几点是急需思考的:
1、如何客观、量化、公正的反馈不同项目的质量情况,使得管理层对各软件质量可见可控?
2、如何判断项目组是否按已定义流程执行,以保障软件内部质量?
3、如何尽早发现问题,推动分析,不再重复踩坑?
于是,为保障研发过程执行有效性和评价客观性的中通科技 SQA 团队应运而生。
SQA(Software Quality Assurance)--顾名思义,承担着软件质量保证、为质量改善提供过程依据、引导组织能力提升的职责。
结合中通科技项目情况,运用数据驱动改善与精益思想结合,通过以下 4 个方面进行中通科技的内部质量保证工作。
软件度量是软件质量保证的基础,若无法对现状进行度量,那么就谈不上改善,同样,若无法对改善前后进行比较,那么也无法评价改善的效果,为此我们首先需要建立符合中通科技特色的度量体系。
中通科技度量体系遵循 “可用为本” 的理念,以量化的数据关注用户体验,聚焦产品稳定,将评价指标分为 “中心级” “产品级” 2 个层级持续优化及反馈。
【中心层级】即中心维度指标,以反馈所有系统对外提供的服务能力的可持续性为主,用中心产品可用性指标体现。
【产品层级】分为线上指标及过程指标 2 个维度。
线上维度即质量维度指标,主要以反馈研发产品在生产环境的稳定性为主,例如:线上故障、线上安全漏洞、线上改善;
过程维度即度量维度指标,主要以管控计划和过程执行为主,从不同阶段(需求阶段->研发阶段->测试阶段->发布阶段)监控软件全生命周期的执行情况,以体现团队的整体过程质量。例如:需求问题数、提测成功率、缺陷按期修复率、人均缺陷数、交付成功率、过程符合率等。
同时,根据指标优先级,明确了各维度的北极星指标,使项目组更聚焦于关键节点。但这并不代表其他指标不重要,而是引导项目组达成质效平衡。
中心级度量体系模型 V3.1(⭐为北极星指标)
稳健的度量体系要灵活适度、保持不同特性的产品在合理空间自我调整。例如,项目数据繁多,看似每个都很有用,但每个项目组的关注点各不相同。此时,不可盲目追求指标多样化而忽略了贴合实际的反馈与引导。一成不变的度量指标,易造成数据与实际偏离,甚至决策失误。为此,中通科技 SQA 团队在指标度量中也秉承着适用、直观、透明的原则,随着项目的成熟度不断提升而持续优化。
在最初运行度量体系时,中通科技与大部分企业一样,选择用业界标准,以各类加权均值来追求公平公正,但项目组面对这些糅合到一起的数据,根本无法直观的识别出异常点。同时,面对项目组短、频、快的迭代模式,预测类模型显然并不适用。于是,我们化繁为简,对于高复杂度且体量保持在合理范围内的指标进行精简及转化处理,使关键因素一目了然。例如,线上故障率的优化(线上故障密度,即项目组每人天产生的生产问题占比率),并最终形成现行 V3.1 度量体系模型。
说明:前期 S4 定义为 “问题”,不属于 “故障” 范畴
对数据的合理应用,应是在数据获取后对数据进行转化分析、识别数据背后的异常改善来进行的,若项目组过度的将目光停留在数据表象将造成项目组间的不平衡竞争。
为避免此类情况,我们加强了 “项目评价”、弱化了 “部门评价”、将产研流程中各角色相融合,以 “产品线” 作为质量反馈主体,统一目标,引导团队更聚焦于 “中心评价”,共同为中心质量结果负责,并最终形成多维度统计分析模式:横向产品对比、纵向趋势分析、产品线实际反馈,以推进各项目组间良好的可持续发展,共同提升。
与传统项目按规模来进行类型划分不同,中通科技产品多、方向广、关联性大,单纯的项目规模区分无法满足现状。于是我们采取了与产品属性联动的动态调整方式,赋予产品不同的 “基线值”、“质量反馈标签” 和 “特殊审批流程”。
1)自动调整:质量反馈标签自动调整共分为 3 类:“完整版”、“北极星”、“不反馈”,根据 “产品生命周期 “与 “产品重要性” 自动匹配实施。所有反馈标签在项目层级正常计算,作为项目组自我调整的参考依据、但不全关联上层分析。
2)人工调整:在上述三种类型以外,对于其他特殊条件,由项目组申请,经 SQA 人工审批后,可在系统人工调整为” 不纳入计算 “。特殊条件一般包含,满足申请周期内日活用户量≤某特定值、产品集价值≤某特定值、产品组织架构异动于 IT 中心外等情况。
为高效准确的达成质量目标,中通科技保障部团队自研了符合中通特色的质量控制系统,实现数据管理(获取、存储、计算)、数据报表及可视化(场景、质量、数量)、分析及转化(行为、转化率)的灵活自动化统计,及时透明的将数据和趋势展示或推送至项目组,让复杂繁琐的数据一目了然,赋能改善,提升效能。
差异化联动完成了产品属性及对应流程的精准匹配,但面对复杂多样的动态流程,较难清晰地判断出项目组实际执行情况。而质量流程的合规度及质量数据的准确度是质量保证的基础,只有及时发现过程中与标准存在的不符合,尽快纠正及预防才能达成质效平衡。这就需要过程审计的介入。
软件质量分为外部质量及内部质量,外部质量就是我们常见的功能是否完整、性能是否满足等,一般以 BUG 体现;软件内部质量主要指代码质量,例如代码的可读性、复杂度、可修改性等软性质量。由于内部质量无法直接展现,需通过过程执行及工具来保证,例如单元测试、静态测试、代码走查等,而过程审计就是通过这些持续并不断强化的研发过程活动与产品检查,发现活动过程中的问题与产品缺陷,识别隐藏风险,并跟踪问题的处理情况,以提升过程与产品质量。
常规过程审计主要关注过程有没有做、角色/节点是否满足、输出是否规范进行,而中通科技 SQA 团队,在此基础上,也会同时关注输出质量(小范围试行),例如变更的合理性、PRD/测试用例编写质量等。
我们结合软件阶段、产品版本、测试策略等几个维度,重点关注 “标准化产品” 及 “北极星指标” 的基础上实行事前控制 -- 系统节点控制、事中监控 -- 度量/告警、事后复盘 -- 分析改善,完成过程系统及人工审计全覆盖。
但现阶段中通科技 SQA 团队主要以组织级度量为主,在深入项目组实际执行过程中识别隐藏风险方面尚需提升,这导致异常分析、纠正及改善有所滞后。且全覆盖的审计模式投入工作量较大。随着公司一体化效能平台的研发,我们也将打通各审计关键节点,扩大自动化审计范围。目前,我们已通过质量预警模型,将项目级复盘改善前移,在过程中分析改进;将组织级复盘纳入精益组织,协同横向改善。只有及早介入,持续改善,才能真正降低修复成本。
对于项目内部异常,中通科技 SQA 团队利用度量、审计、告警等工具驱动项目组内部自驱动改善达成。而企业的效能提升不仅仅局限于生产领域,横向跨部门、体系流程、长久痛点问题等的改善,则需借助管理层的影响力及专家的专业度共同推进。
于是中通科技 SQA 团队利用精益思想,遵循 PDCA 的管理理念,组建了虚拟组织 --【精益改进委员会】,以 “改进组织建设”“改进行动落实”“告警改进共性”“改进文化打造” 为目标,通过【精益专项 (主题入&专家)】输入、【故障转精益任务】输入、【质量预警模型】输入、【问题库】输入、【其他 (自主输入/问卷/访谈)】等形式收集输入并输出技术、规范、工具、文化等改善,最终达成提升组织作战力,目前精益组织共有来自部门三四级部门长及核心成员 50+ 人。
对于虚拟组织的运营,我们运用精益传承、开放日、内部激励等活动增加活跃度,并设有精益名嘴、写手、特质奖进行标杆打造,在内部范围先行深耕精益文化并逐步向外推广,引导项目组日常对数据的关注转移至对改善的关注,形成真正的数据驱动改善模式发展。现经过 2 年的运营,平均年度改善专项 120+。后续我们计划进一步打造精益部落,扩大影响力,以小团队形式主导具体方案落实,使输入更聚焦,输出更细致,改善更长久。
适用的度量指标 + 质量分析 + 过程监控 + 精益改善形成了中通科技一套完整的质量管理体系,经过稳定运行,年度故障数↓75%,故障平均修复时效↓24%,中心稳定性提升显著。但如何在资源有限的情况下深入项目挖掘根因,如何将单质量环节与效率等其他指标结合,如何将最佳实践长远落实依旧是我们前进的方向。
后续我们将持续质量体系优化,完成可用性至易用性、连续性的演进提升;进一步完善改进闭环建设,打造主动式、触发式、下沉式的多维度输入;同时,我们将协助 IT 中心完成工具升级,从全局化出发,共同进行一体化建设。
质量保证属于前置性的隐性工作,以预防为主,改善周期较长,很难在价值上有非常显著的体现,可一旦出现问题,修复成本较高,影响较大。只有我们每一个质量人都有积极正面的质量意识及责任感,保持稳定和持续的度量、分析、监控 (审计) 及改善,才能使得我们的产品走的更远。