质量管理,软件项目生命周期中的专属医生(上)----《定义和控制》

“鹅厂网事”由深圳市腾讯计算机系统有限公司技术工程事业群网络平台部运营,我们希望与业界各位志同道合的伙伴交流切磋最新的网络、服务器行业动态信息,同时分享腾讯在网络与服务器领域,规划、运营、研发、服务等层面的实战干货,期待与您的共同成长。

网络平台部以构建敏捷、弹性、低成本的业界领先海量互联网云计算服务平台,为支撑腾讯公司业务持续发展,为业务建立竞争优势、构建行业健康生态而持续贡献价值!

作者简介:lindaxu(徐玲),高级工程师,网络平台部,服务器平台中心,研发管理组组长。

【写在前面】

QA是干什么的 “质量管理是做什么的?” “是做产品质检吗?” “质量管理的核心工作做数据度量,出报表吧?”

经常会在外部或内部的会议上,被不同公司、不同背景、不同岗位的人问起这样的问题。质量管理(QA)不象开发工程师,被大多数人家喻户晓,开发就是码农,典范自画像是:体型瘦弱,体恤牛仔裤,带着厚厚的眼镜,坐在屏幕前敲代码。而质量管理,大多数圈外人下意识浮出的画像:就是生产流水线上,拿着放大镜检查产品瑕疵的人。

VS

其实不然,质量管理即不是产品质检,也不是软件测试。质量管理是指确定质量方针、目标和职责,并通过质量体系中的质量策划、质量控制、质量保证、质量改进来使其实现的所有管理职能的全部活动。

如果把产品看成孩子,团队成员就是一个家庭,PM相当于爸爸或妈妈,质量管理工程师(下文统称为QA)就是这个家庭的专属医生,医生要结合家庭病史编制常见病治疗和预防方案,定期对孩子进行体检,分析检查结果,并治疗孩子疾病。同时将常见病的治疗、预防方案教给家长,让家长能独立带领孩子健康成长。所以对应的QA的工作可提炼成4方面的活动: • 负责软件研发质量体系和运营质量体系的定义、标准规范和模型建设—写医书; • 负责在流程体系框架指导下,实施第三方的检查和审计 –定期体检; • 负责度量建模并制定质量指标,实施质量评测,发现问题和短板—诊断疾病; • 负责聚焦核心矛盾和短板,实施改进和提升—治疗。 通过这四个阶段的质量闭环化管理,帮助项目不断提升效能,最终达成项目目标。

由于我鹅厂的业务领域广,产品形态各异,质量管理4阶段活动的侧重点也各不相同,所以从笔者最熟悉的网络平台部质量工作为基础进行讲解,如果有任何异议和见解,欢迎随时拍砖或跟贴讨论。

【定义】 资深的医师都会将自己行医过程中的各种疑难杂症表现、诊断、治疗和预防方案记录下来,编制成册,以便日后随时备查和使用,遇到同样的病症可以按经验流程操作,这个过程就是定义。

同样的,开展质量管理活动前,先要确定质量目标,要遵循的必要过程和相关资源。遵循的这个过程就是抽象出来的流程框架。

网络平台部经过5年的持续建设、优化和流程完善,基本搭建了一套成熟的软件流程管理框架,涵盖软件项目的全生命周期的流程步骤、规范标准和关键输出,实现从研发到运营过程的闭环化管理。

• 2009年完成部门研发流程框架,实现流程从无到有的突破; • 2010年推广敏捷思想和方法体系,并配套轻量化项目管理工具,实现流程一刀切,过程过重的问题; • 2011年推行差异化流程管理和敏捷工程实践,这一年code review,持续集成等实践在部门项目中落地,并得到快速发展; • 2012~2013年将过程管理拓展到软件运营阶段,建成运营管理流程和规范,实现产品质量的闭环化管理; • 2014年建设建设《网平软件系统能力成熟度模型》,区分不同项目类型,从8个维度定义软件架构能力和运营能力的成熟度标准。 网平软件流程整体框架

当然,流程体系框架的建设不是一蹴而就的,他是循序淅进的,由当时实施过程中的核心矛盾趋动不断完善的。

 举个例子:2012年的时候,网平的各大平台型项目蜂拥上线, 向业务部门推广运营,结果上线后各种问题频发,由于长期关注产品研发质量,忽略产品运营过程和质量,导致产品上线后出现各种操作和规范性问题,引发业务部门用户的抱怨,这种矛盾趋动下加速了IT运营管理过程的建设和落地,从而实现了整个软件生命周期研发到运营的闭环化管理。 有了体系化的流程架构指导,接下来就是在各项目中的差异化落地和执行了。

【控制】 作为家庭的专属医生,是家庭以外的独立第三方,他参与到家庭里对成员安排定期体检,提前发现并预防可能会发生的疾病、隐患。

QA在现有流程体系框架指导下,对项目执行过程中的关键点和薄弱环节进行审核和检查,提前发现不合规问题和操作风险,这个检查根据项目成熟度情况设定,对于不同成熟度的项目团队,QA参与的力度和检查点都不一样。

案例一: 2009-2010年网平研发过程体系初建阶段,一切从无到有,新的研发团队、新的工作模式,项目成员对过程和规范的理解参差不齐。

团队要渡过艰难的磨合期,快速滚动起来,这个阶段不仅仅是按照研发流程去执行那么简单,还要让流程化、规范化操作快速落地,QA就必须参与到项目里和团队一起去执行: • 规划阶段跟PM一起制定时间窗,帮助团队找到适合自己的迭代节奏和输出; • 在需求管理阶段协助项目一起梳理需求,识别实现优先级,并指导需求的细化,拆分和评审; • 需求实现阶段协助开发一起拆分任务,评估工作量等。 … …

当按照既定的过程运作几个迭代后,团队有了默契,形成一定的规范意识和操作习惯后QA就可以跳出来,进行过程关键节点跟进和交付件的检查,去挖掘和发现其他过程的问题并不断优化。

案例二: 网平研发过程体系持续优落地和滚动推进,到2012年中时,各研发团队已基本形成规范化的操作习惯。这时新的矛盾出现了,软件上线后运营规范和运营质量突出。仅5月-7月期间,就发生7起运营故障,其中发布变更操作不规范导致的故障就有5起。显示出我们在运营管理规范上的缺失,以及运营过程审计方面的不足。

于是部门调整建设方向和跟进策略,由原有只聚焦研发过程管理,拓展至软件运营过程管理,QA梳理运营管理流程,并与团队一起落地执行,持续优化调整,帮助团队规范运营操作,提升系统运营质量。而对于研发过程的审查,进行关键节点审计,比如:需求评审,方案评审,测试报告以及发布准入等合规性,完备性检查。

2013年网络平台部实现了软件研发到运营过程的闭环化管理, QA对项目实行差异化审查,根据项目类型(平台项目、应用项目、单机项目)的不同,审查和控制的关键节点不同。下图为平台类项目的流程执行审计表节选。

这里还要罗嗦一句,关键节点的检查和审计只适用于成熟度比较高的团队,对于还在摸索磨合以及新组建的项目来说,这种审计会给项目组带来压力和负担,增加额外沟通和输出,让质量管理变成团队的对立面,执行起来很容易流于形式。这时最好的办法就是参与进去, QA和项目团队一起制定并细化遵循的流程和规范,参与到项目里跟团队一起执行和操作,发现一个问题就解决一个问题,当团队逐步良性自运转后,再实施关键节点审计。

再说控制手段,当跟进的项目多时,这种检查和审计需要投入的工作量是巨大的,而且人工跟进的效率低下,这时自动化系统的支撑就非常必要了。

网平的自动平台建设,旨在通过平台整合,功能定制,信息的聚合和展示,实现流程执行工具化,规范项目组过程操作并释放QA的投入人力。经过一年半的建设和优化,打通SVN、TAPD、研发质量管理系统电子流和管理平台,实现从软件研发到运营的线上流程管理。2014年中完成监控平台建设,将审计重点由事后解决补缺转移到事前发现和规避。下图是网平2014年的质量管理框架示意图,研发管理平台和研发质量管理系统的整合打通,支撑了整个研发流程管理和度量评估体系。

在过程跟进和审计阶段,QA除了指导和检查过程执行规范情况外,还需要推动团队结合自身需要尝试开展一些实践工程和活动,比如:自动化测试、Codereview、CI等,来不断提升项目的质量和效率。

【结束语】 软件过程执行的是否规范,需要有一套审计的框架和标准;规范操作和流程化是否能带来质量和效能上的提升?研发和运营结果是否达成项目目标和要求?如何衡量这些效果,有什么机制去保证衡量的完备性和有效性,这些内容将在下季《度量和改进》为大家揭晓。

原文发布于微信公众号 - 鹅厂网事(tencent_network)

原文发表时间:2014-12-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏developerHaoz 的安卓之旅

Android 关于移动互联网寒冬和个人核心竞争力的看法

关于 Android 市场需求,其实从前年开始 Android 就处于寒冬的境地,最直观的标志就是,工作不那么好找了。因为前几年移动互联网开始流行,很多创业公司...

1152
来自专栏闰土大叔

你想知道的一线互联网大厂前端招聘趋势和行情

前言 2017年年底到明年年初,前端行情是否会迎来一个新的拐点?我们不得而知。但是面试官想看到怎样的面试者,这里有你想要的答案,让我们一起来听听网易前端波神是如...

28510
来自专栏程序员的知识天地

程序员被聘用的13个开发技能

这些日子,开发人员掌握JavaScript总不会错。JavaScript能力是目前为止被高层执行人员和招聘人员誉为最频繁的追捧技能。JavaScript已被证明...

781
来自专栏云计算D1net

关于混合云,很多人都会有这些误解

云计算的兴起和任何趋势化的领域一样,都会不可避免地出现相当多的炒作以及混淆视听的噪声。 混合云自然也不例外,这导致人们对云的混合方法也产生了各种各样的误解。为了...

3346
来自专栏云计算D1net

边缘计算和物联网的发展将会齐头并进

如今,新兴技术的发展齐头并进这并不常见,但人们偶尔会发现一些相互依赖的技术共同发展。例如操作系统和CPU之间的关系是完全相互依赖的,因为它们都需要对方的支持。另...

3415
来自专栏撸码那些事

透过用户思维谈程序员的进阶之路

最近读了一本关于产品的好书《用户思维+ 好产品让用户为自己尖叫》,虽然是一本产品相关的书,但是全书都在围绕如何让你的用户变得更优秀展开讨论。作者的观点很明确也很...

1463
来自专栏智能算法

技术人,为什么需要构建知识图谱?

作者简介:安晓辉,10多年开发经验,曾任软件开发工程师、项目经理、研发经理、技术总监等岗位,著有《Qt Quick核心编程》、《Qt on Android核心编...

54414
来自专栏ThoughtWorks

开发团队面临的三大安全挑战|洞见

应用安全不能只依靠防火墙,必须要在应用开发阶段采取适当的安全控制措施,使得应用在发布上线前就具备较好的安全性,避免人为失误造成安全隐患。 ? 不少企业早就意识到...

3477
来自专栏华章科技

大数据分析然并卵?那是因为你没做到这些

看到这篇文章,感觉对数据分析一些点总结蛮好的,分享给大家。数据分析要产生真正的价值,或者说要让业务方,管理层感觉到真正的价值,其实需要非常多的东西:

451
来自专栏刘望舒

Android 关于移动互联网寒冬和个人核心竞争力的看法

移动互联网寒冬 关于 Android 市场需求,其实从前年开始 Android 就处于寒冬的境地,最直观的标志就是,工作不那么好找了。因为前几年移动互联网开始流...

4288

扫码关注云+社区

领取腾讯云代金券