速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

平台级 toB 产品的研发品控管理解析

  • 2020-04-14
  • 本文字数:3257 字

    阅读完需:约 11 分钟

平台级toB产品的研发品控管理解析

前言

产品质量是吸引和积攒用户的重要因素,业内不乏由微小 bug 引起的灾难事故,对用户或公司造成巨大的损失。从业务角度,质量是产品口碑、市场、收益背后的助力;从技术角度,高可用性是衡量系统架构的核心指标之一。对质量的高要求并不区分产品类型,但是从研发团队的角度上,toB 产品的研发团队更加需要强化品控的意识,尤其是平台级 toB 产品。


腾讯云云开发是一个一云多端的应用开发平台,日调用量达 7 亿多次。作为一个平台级 toB 产品,云开发的研发团队又是如何做好研发品控管理,以确保交付的产品高可用呢?本文将从职能分工、研发规范、研发流程三个维度,与大家分享云开发研发团队的品控管理。

平台级 toB 产品的质量危机和信任危机

平台级 toB 产品提供的功能大多是细粒度、可组合的原子能力,B 端开发者通过组合不同的能力完成业务逻辑,属于 C 端应用背后的间接支撑。



toB 平台不直接接触 C 端一线用户,发生问题后需要经过二次传导才会影响 C 端逻辑。这种性质决定了 toB 平台在产生质量问题时与 toC 产品的两个差异点:


  • 影响面大

  • 反馈链长

影响面大

以云开发为例,B 端开发者针对不同的业务模块编写对应的云函数,某些云函数也可能被多个业务模块之间共用。一旦支撑云函数运行的底层系统出现问题,其影响范围可能会覆盖多个函数,进而扩散至业务逻辑层造成无法预估的破坏。

反馈链长

C 端用户在使用应用程序遇到问题时可以通过客服、社区等方式反馈,很多研发团队还会提供直接联系研发人员的渠道,目的是尽快收集问题并且第一时间解决。而使用 toB 平台开发的应用程序如果问题的症结在平台本身,B 端开发者则需要经过一轮排查之后进一步反馈至 toB 平台的研发团队,反馈链远比 toC 产品更长。这从侧面表明 toB 平台品控的敏感和重要程度。


toB 平台的质量危机极易引发信任危机。toB 平台作为生产工具为客户提供价值,一旦出现质量问题,客户对产品信任度将直线下降,产品需要恢复原有的信誉、口碑极其困难。需要时间、数据、市场等组合拳去挽留。事实上有一些 toB 公司就是“千里之堤溃于蚁穴”。


产品质量的把控并不仅仅是技术问题,高可用的系统架构背后同样有流程、分工等人的因素。研发过程严格的品控管理是保证产品质量的必要因素。云开发作为一款平台级 toB 产品,支撑小程序、Web、移动应用等多端平台,下面将简单介绍云开发背后的研发流程管理经验。

腾讯云云开发团队研发流程管理

首先介绍一下云开发研发团队的职能结构,一次完整的迭代流程中存在以下职能:


  • 项目经理 PM:负责发起需求宣讲和评审,把控迭代节奏,保证在预排期时间内顺利完成迭代;

  • 产品 FO(Feature Owner):一次迭代需求很可能涉及多个子需求,每个子需求由指定的产品经理负责,产品 FO 把控主需求。产品 FO 往往由负责某个子需求的产品经理兼顾;

  • 技术 FO:同产品 FO 的角色类似,技术 FO 把控主需求,每个子需求由指定的研发人员负责。技术 FO 也同样由负责某个子需求的研发人员兼顾;

  • 产品经理:负责子需求的产品把控;

  • 研发人员:负责子需求的技术把控 ;

  • 测试人员:负责集成测试、多重回归并且在研发人员配合下完整测试 case 清单的制定和审核;

  • 运维人员:负责与产品和技术人员评估可能存在的风险并提前预案并实施。



金字塔形的职能结构能够覆盖迭代需求中的所有细节,并且由于产品 FO 和技术 FO 的总筹调度,当子需求发生未提前预估到的风险时也能够从全局的角度及时协调各个子需求的优先级和人员分配以保证整体进度的正常推进。

研发规范:坚持“三隔离”法则

通用的研发规范分为技术和流程管理两部分。


技术方面,为保障研发环境的安全性,相关人员需严格遵守“三隔离”法则,即:环境隔离、权限隔离和网络隔离。


环境隔离


完整的迭代周期需要经过研发、联调、测试、发布流程,每个环节都分别对应不同的环境,各个环境之间的数据不能共用和混淆。


  • 开发环境:即研发人员独立的环境空间;

  • 联调环境:前后端联调所用的环境;

  • 测试环境:开发完成后集成测试的环境;

  • 体验环境:测试完成之后供产品经理体验完整流程的环境;

  • 预发环境:灰度发布之前有一个完全仿真现网的预发环境,此环境的数据与现网共用,用来做发布前的最后验证和缓冲;

  • 现网环境:即线上环境,发布现网需渐进灰度。


权限隔离


对于涉及服务变更的需求,研发人员不能直接登录服务所在的服务器进行变更,必须经过跳板机授权。权限的严格隔离是为了维护服务器的稳定性以及权限的集中管理和收归操作。


网络隔离


办公网络、开发网络、公共网络之间的可访问权限分离,这对于 IT 研发来说是普遍的规范。


在流程管理方面实施以下原则:


  • 提前预案:对迭代需求可能存在的风险进行提前预估和预案;

  • 研发测试排期 1:1:一次完整的迭代周期一般是 4 周,研发和测试的排期分别占据 2 周。

研发流程:品控意识贯穿全流程

在整体流程上,云开发与其他大多数研发团队并没有太大区别,一次迭代流程依次经过评审、研发、测试和发布。品控意识体现在细节把控上。


需求宣讲


需求宣讲是发起迭代后的第一个步骤,PM 发起宣讲会议,有需求的产品经理们在会议中描述需求的背景、优先级、重要程度、成本以及预期等细节,所有参会者们共同对所宣讲的需求进行评估,确定是否加入到本次迭代中。最终宣讲结束后确定本次迭代的需求清单,进入技术评审环节。


技术评审


技术评审由项目经理发起,所有职能人员均需到场。产品经理提前建立需求单,在发起评审时进行逐行逐字描述,然后由研发人员和测试人员进行技术可行性评估,对需求描述中不清晰的地方进行讨论和纠正,以及预估可能存在的风险和对应的预案。需求明确后给出研发和测试方案以及各自的排期。研发和测试的排期比例为 1:1。


研发


在进入研发阶段之前,测试人员需要根据本次需求产出测试案例清单,并且由研发人员和产品经理共同审阅、补充和纠正。


前后端研发人员在各自的开发环境中编写代码,如果涉及服务变更则需严格遵守环境隔离规范借助跳板机登录服务器。


测试


在将需求提交测试之前有两项预备工作,缺一不可:


  • 研发人员需要根据测试案例清单产出进行自测并产出自测报告;

  • 产品经理需在联调环境下体验完整的功能和操作流程。


测试人员首先在测试环境下进行功能验证,在此过程中研发人员和产品经理共同协助。测试完成后由研发人员将代码部署至体验环境,然后测试人员进行完整的案例回归,通过后再部署至预发环境,再次完整回归之后才可达到发布标准。也就是说在测试环境需经过一次完整测试和两次回归。


发布


服务发布需严格遵循渐进灰度的策略进行,SDK 的发布需要依次按照“alpha->beta->正式版”的流程推进。除此之外,功能的变更不仅仅是代码本身,不同的产品类型往往还会涉及文档、多渠道等周边工作,比如服务的发布会影响多端 SDK,每个 SDK 的 API 及其对应的文档都需要同步进行更新。所以根据服务模块或 SDK 渠道进行专人专项划分也是很有必要的。保证发布出口的唯一性,并且在发布之前进行严格的涉及工作清单遍历。


回归


灰度发布过程中和全量发布之后,测试人员需要同步跟进对已发布的功能进行回归测试,完全通过后即本次迭代结束。



虽然从整体流程上与绝大多数技术研发团队并无二致,云开发团队对品控的管理意识体现在:借助完善和严格的规范制度将每个环节中可能出错的细节均通过技术和人的双重角度进行覆盖,很大程度上减少了质量问题的产生。

总结

计算机技术经过几十年发展到今天,人的很多工作可以由机器协助完成甚至被完全取代。技术力量的伟大无可置疑,但人的因素同样不可或缺。产品质量的把控容不得一丝大意,不论是技术缺失还是人为失误。云开发作为一款平台级 toB 产品,其高可用性背后是技术与人的双重加持。云开发研发团队在提高技术能力的同时,并未忽略人在其中的伟大性,未来我们也将继续秉承这项原则,将技术和人的双重因素渗透至研发品控管理的每个细节之中。

作者介绍

周俊鹏,腾讯高级前端工程师,就职于腾讯云云开发 CloudBase 团队,负责云开发 Cloudbase 相关技术研发工作。Qcon2017 讲师,GMTC 2018/2019 出品人,主要研究方向是前端图形编程、工程化和 web 应用层架构。著有《前端工程化:体系设计与实践》和《前端技术架构与工程》。


2020-04-14 16:452720

评论 1 条评论

发布
用户头像
SDK的开发,就跟APP迭代一样,把SDK当成产品严格按照流程来开发,一旦SDK出现严重的质量问题,被投诉的压力巨大:
1、需求采集和排期:定期采集开发团队的需求、技术规划的落地以及技术债务的梳理汇总成需求池,然后和各干系团队探讨排定需求优先级,以及整体计划,并将需求作为featurelist上研发流程;
2、方案设计和评审:基于需求特性,设计方案并邀请干系团队一起参与评审,确定方案是否OK,尤其是接口设计;
3、编码:SDK本身的编码要遵守SDK的开发规范(SDK要有版本号、异常情况的错误码等),除了SDK外,还要编写Demo(基于各个接口的调用、各个接口的压力测试等,便于接入SDK的同学使用和SDK开发者自测);
4、提测:将代码和设计文档开放给测试工程师,以便于测试工程师设计更为合理、更能全面验证SDK的方案,SDK测试通过的前提是测试要输出一份专项测试报告,报告内容包含SDK的功能、性能、稳定性等体现SDK质量的指标,专项测试通过后才能进入发布流程;
5、发布:同APP发布流程一样,先灰度再全量,将影响控制在足够小的范围。
展开
2020-04-16 08:17
回复
没有更多了
发现更多内容

移动端动态更新背后的原理及技术原理

没有用户名丶

GaussDB(DWS)集群中寻找节点CPU占用高的语句

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

【3.31-4.7】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动 优质创作周报

pnpm 之降本增效

京东科技开发者

前端 npm 企业号 4 月 PK 榜 node_modules

软件测试丨构建高效的Web自动化测试环境及Web自动化测试实战

测试人

软件测试 自动化测试 测试开发 Web自动化测试

〖产品思维训练白宝书 - 认知篇③〗- 产品思维 VS 技术思维

哈哥撩编程

#产品思维

BSN-DDC基础网络详解(七):BSN-DDC官方合约市场

BSN研习社

CVPR 2023 | 单阶段半监督目标检测SOTA:ARSL

飞桨PaddlePaddle

深度学习 目标检测 百度飞桨

DevEco Device Tool 3.1 Release新版本发布,新增资源管理器、SFTP、HDC

HarmonyOS开发者

HarmonyOS

Laplace分布算子开发经验分享

华为云开发者联盟

开发 华为云 正态分布 华为云开发者联盟 企业号 4 月 PK 榜

共享资源的保护:使用RWMutex的正确姿势

Jack

一个 OpenTiny,Vue2 Vue3 都支持!

Kagol

typescript 开源 前端 Vue3 UI组件库

BSN季度版本2023年3月31日迭代更新

BSN研习社

请您关注我们! 开源免费独立站BeikeShop——新一代跨境电商系统

BeikeShop

开源 跨境电商 电商系统 独立站 自建网站

月光宝盒(vivo流量录制回放平台)正式对外开源

vivo互联网技术

自动化测试 流量回放 流量录制

最佳实践:马来西亚第一大电子钱包通过阿里云EMAS测试提效6倍

云布道师

阿里云

Redis集群介绍及测试思路

京东科技开发者

redis redis集群 主从复制 redis哨兵集群 企业号 4 月 PK 榜

基于FFmpeg和Wasm的Web端视频截帧方案

百度Geek说

ffmpeg webassembly 企业号 4 月 PK 榜 视频截帧

聊聊业务高可用和应用高可用

老张

高可用 高可用架构 稳定性保障

平均互信息与条件熵

timerring

信息论

StampedLock:JDK1.8中新增,比ReadWriteLock还快的锁

华为云开发者联盟

线程 开发 华为云 华为云开发者联盟 企业号 4 月 PK 榜

IO流中「线程」模型总结

Java 架构

京东LBS推荐算法实践

京东科技开发者

算法 推荐算法 企业号 4 月 PK 榜 排序模型 LBS推荐算法

天翼混合云一体机iStack解决方案直播

天翼云开发者社区

真正的AGI,既然是高度仿真人类的,是否可能也要经历过恐惧的体验?

FinClip

基于OCR进行Bert独立语义纠错实践

华为云开发者联盟

人工智能 华为云 OCR 华为云开发者联盟 企业号 4 月 PK 榜

AI日课@20230406:一次毫不费力的ChatGPT内部分享

无人之路

ChatGPT

互联网坊间鄙视链,现在反过来了?

博文视点Broadview

WorkPlus企业IM即时通讯私有化部署,从源头把控安全

WorkPlus

华泰证券与易观千帆达成合作,促进数字用户活力

易观分析

金融 证券

平台级toB产品的研发品控管理解析_大前端_周俊鹏_InfoQ精选文章