您的浏览器禁用了脚本运行,请打开脚本在尝试!
27.小米基于大数据的新型互联网软件开发模式和质量管控实践
0
大小:2MB
小米移动软件有限公司实施基于大数据的新型互联网 开发模式和质量管控实践 摘要 小米公司成立八年以来一直秉承信念就是和用户交朋友,重视用户体验、 用户反馈和产品质量。所以小米经过积极的探索和实践,逐渐形成一套“基于 大数据的新型互联网软件开发模式和质量管控实践”,实现了质量管理流程信 息化,软件质量数据可视化,反馈过程透明化,测试工作自动化等多项技术应 用。这一开发模式的理念是:让用户深度参与开发改进过程,尽快满足用户需 求。同时又把质量控制始终贯穿在整个开发过程中。小米公司在应用实践过程 中通过自主研发的工具和展示平台不断提升软件质量控制能力,主要成果有静 态代码扫描检查方法、锁库机制、自研的自动化测试工具、MQS 系统质量平台 以及新型互联网开发模式下的发布流程和 NPS 调研。 该管理方法和技术在小米移动软件有限公司 MIUI 部门实践之后,迅速被推 广至公司国际部、手机部、云平台、小米电视等多个内部研发部门,同时小米 公司也和其他国内手机厂商针对质量控制进行了广泛交流,该方案获得一致好 评,部分厂商也借鉴我们的案例进行质量控制。不仅如此,小米为了拓展全球 市场,在全球专利方面的布局力度很大,截至 2018 年第一季度,其在国内已经 获得专利达到了 3600 多项,并且还有 10900 项专利正在受理中。海外已经获得 专利 3500 项,并且有 5800 项专利处于受理中。 小米通过用户参与改进,数据建模分析,量化软件关键指标,敏捷开发, 高效测试、快速迭代发布并及时响应用户反馈的一系列环节,推动了小米手机 的软件系统质量提升,进而推动整个手机行业质量提升,产生了非常显着的社 会效益跟影响力。 一、 企业概况 小米公司是一家专注于软件、智能硬件以及电子产品研发的移动互联网公 司,利用“硬件 新零售 互联网”铁人三项的创新优势,迅速崛起成为我国 “互联网 ”创新型企业代表,总部位于北京,员工人数近 1.5 万,2018 年 7 月,小米集团在香港证券交易所正式挂牌上市。 图 1 小米公司 “为发烧而生”是小米的产品理念,首创了用互联网模式开发手机操作系 统、发烧友参与开发改进的模式。小米还是继苹果、三星、华为之后第四家拥 有手机芯片自研能力的科技公司。 “让每个人都能享受科技的乐趣”是小米公司的愿景。小米公司应用了互 联网开发模式产品的模式,用极客精神做产品,用互联网模式干掉中间环节, 致力让全球每个人,都能享受来自中国的优质科技产品。 其中 MIUI 是小米公司基于 Android 系统深度优化、定制、开发的第三方手 机操作系统,2010 年 8 月 16 日 MIUI 正式发布。首发至今,MIUI 已经拥有全球 2.07 亿活跃用户,语言覆盖 75 种,支持 220 个国家和地区。2018 年 5 月 31 日 小米公司发布最新的 MIUI10。 二、 实施背景 近年来,全球智能手机市场发展迅速,国内外手机厂商百花齐放。作为中 国手机行业的领跑者,小米从战略高度重视质量提升,秉承“质量第一”的宗 旨,打造以“创新、质量和交付”为核心竞争力,具有社会责任感,值得用户 信赖的互联网手机企业。小米致力于产品质量的提升和管理,技术水平的创新 和提高,培养全员参与质量改进意识,坚持以用户为中心,持续改进质量,用 品质的铁拳赢得市场! 随着手机行业快速发展,手机软件质量问题愈发凸显,因传统的手机软件 研发存在技术门槛高、过程复杂、节奏慢、迭代周期长、无法适应快节奏的用 户需求变化以及质量问题修复无法及时同步给用户等缺点,如何在系统更新频 繁的情况下保证系统的质量,成为一个具有挑战性的难题。小米以“低成本反 馈,高效率处理”为指导思想,结合质量管理实际,借助海量用户反馈力量, 采用以大数据分析为决策基础,构建强大的质量管控平台,对软件研发、测 试、过程及用户需求进行调整,不断改进产品质量。 三、 发明创新 1. 大数据支持产品质量改进 小米自成立以来,用户数量逐年增长,2012 年用户就突破 1000 万,2015 年 更是突破 1 亿大关, 目前累计用户已超过 2 亿, 庞大的用户群也是公司无形的财 富,是公司产品质量改进的资源。借助上亿用户的使用体验,掌握产品质量,准 确识别产品缺陷和用户需求,是公司产品质量持续提升的动力。 以用户群为基础,大数据的来源主要有主动采集的打点数据、用户日志、用 户反馈、NPS 调研、用户座谈会等。其中 MQS 累计处理打点数据和用户日志数据 总量约 925T,每日处理量高达 256 亿条;用户反馈平台累计处理量约 1810 万, 平均每天处理量高达 2 万条。 同时,为了保证用户的产品在使用过程中的流畅平滑,从用户角度出发的产 品质量改善就需要密切关注用户的反馈和需求, 因此需要在这些数据发挥价值前, 进行结构化和标签化: 结构化, 指将大数据的展现形式从非结构数据转化为结构化数据, 进行分类和统 计; 标签化,指根据业务场景将大数据打上业务标签,围绕产品并与业务场景深 度结合进行质量改善。 通常分为 3 个数据维度:时间、频次、结果。结合引入的计算公式(举例) : 计算公式 = 发版周期内,机型版本维度下的异常发生次数总和 发版周期内,机型版本维度下的报活人数总和 图 2 MQS 大数据指标 通过制定多种质量指标,可实现对产品整体的质量表现监控,实现产品自身 纵向对比及竞品的横向对比,为质量改进提供有效的跟踪记录。 2. 首创“互联网开发模式” 小米一直都相信用户就是驱动力,第一个 MIUI 版本于 2010 年 8 月 16 日发 布,最初的 100 名用户参与到 MIUI 产品的整个研发过程,成为 MIUI 的宝贵财 富。正是这百名用户的积极参与以及与产品的互动,形成了小米特有的文化。 围绕口碑和质量的核心理念,MIUI 的互联网开发模式核心是“MIUI 团队和 用户互动,系统每周更新” 。开发每周五集成开发版发包,用户当天就可升级体 验,每周六到周一的三天时间升级体验,并在周二生成“四格体验报告” ,这是 用户对产品最直接的评价。 图 3 互联网开发模式 这种新模式,打破了传统互联网模式单纯的封闭开发和导流,像微软在做每 个版本的系统是都有五六千的顶尖开发工程师,分成一个个小组,每组配 5 个 人,包括产品经理、研发和测试,但是用户的声音基本为零。在 PC 时代微软获 得巨大成功, 但在互联网时代却遇到不少挫折, 这就引发了对互联网开发模式的 思考。 小米在用户参与的过程中,形成了自己独特的“橙色星期五”互联网开发模 式,需求来自用户,产品口碑来自用户,产品质量的提升自然也同样来自用户, 构建了 MIUI 线上庞大的的互联网开发团队模型。每次升级都是用户可感知的, 用户同样是产品的主人。 截止目前, MIUI 产品完成了近 400 周的快速迭代开发, 成就了 MIUI 目前 2 亿多用户的奇迹。 四、 实施与运行 1. 总体思路 大数据时代的来临,意味着企业不仅要掌握自身产品使用状态,还要有能 力将其加以利用分析,推动大数据在日常工作和产品质量提升方面的运用。 面对市场环境、用户体验、质量口碑等多方面压力,依据公司战略发展及 产品发展需要,小米率先提出了“新型互联网开发模式”,创造了用互联网模 式开发手机操作系统,用户参与开发改进的模式。该模式的特点在于“灵活、 高效、精准”,核心是 MIUI 研发团队与用户深入交流沟通,节约开发测试时间 和资源,及时有效的了解用户对产品的真实需求和反馈。小米根据需求及活跃 度将用户进行分级处理,分别是“体验版用户、开发版用户、稳定版用户”, 通过不同层级用户的反馈,借助海量用户反馈力量,我们可以更快速准确的发 现产品改善方向,推动产品质量提升。 在新的研发模式下,以“低成本反馈,高效率处理,多用户参与”为指导 思想,采用“大数据 平台开发”整合资源,联合推动产品持续发展,形成从产 品发布-数据采集-数据分析-监控预警-版本迭代-效果验证-质量改进的闭环质 量改善模式。 图 4 质量改善体系 因此我们选择用一套质量检查和控制体系来解决问题,把一些环节开放给 用户,让用户深度参与到开发和改善过程中来。软件开发的过程分为八个阶 段:研发阶段,自测阶段,代码合入,集成阶段,构建阶段,测试阶段,发布 阶段,监控阶段。这八个阶段,形成一个质量控制闭环,每个阶段都是前一个 阶段的前提,监控阶段的结果最后又回来指导研发阶段。针对这八个阶段,我 们的系统总体分为八个模块,静态代码检查,自助编译系统,准入机制,build break 检查,二进制级别测试,测试平台,发布流程,系统质量平台。最终, 所有的数据都会汇总到质量数据中心。 图 5 质量控制闭环 2. 组织管理优化 质量是企业长青的基石,也是小米三大核心业务“创新、质量和交付”之 一。秉承着质量第一、货真价实的质量方针,在提升产品和服务品质上,组建 了一直夸团队协作的组织,命名为质量委员会,质量委员会成员由各业务团队 负责人组成,每周定期召开质量会议。同时这里质量办公室进行质量督办,并 在每一个部门配有质量小组。 图 6 质量组织管理 3. 质量管控 3.1. 代码质量管控 在本地开发阶段,由于工程师的水平可能不同,一部分水平比较高的工程 师生产出来的代码质量比较高,而一部分刚刚入职的新人,生产出来的代码质 量不高。对于开发工程师每次提交的代码,都会触发一次自动的代码静态检 查。所谓静态检查,即为在开发出来的代码还没有开始运行的时候,就从代码 本身的层面进行语法和意义的分析,从中找到一些可能的问题和隐患,例如: 大量重复代码,代码风格不统一导致的维护难度增大,潜在的安全风险等。 静态代码检查系统可以在开发的最初期拦截一部分问题,提高整体代码质 量,降低修复问题带来的成本。小米还搭建了一套完整的代码分析系统,除了 每次提交代码的时候做的增量检查以外,还会定期对代码做全量的扫描。对于 各个模块的代码进行打分,如果质量低,会强制不允许提交新功能,必须先修 复问题。除了集中式的代码分析,我们给开发工程师配备了本地代码静态检查 工具和插件,只要工程师愿意,本地改动的每一行代码都可以先检查,再提 测。 图 7 代码质量检查流程 这部分除了内部做了很多集成,分析,展示,监控工作以外,我们更和其 他安全厂商合作,一起设计一些规则用于静态代码分析。这些规则就好像是优 秀的工程师的经验的总结,用来扫描普通工程师的代码,如果发现了有问题的 地方,就会自动按照规则匹配和检查。这样,每行代码好像都被小米无数优秀 的工程师审阅一遍一样。自实施至今,我们三年内在发布前已检查出约 11609 个缺陷,提前拦截了大量的问题,节约了 10 个人在这三年内的工作量,为小米 提升质量品质提供了强大的支撑。 小米拥有数量众多的在研机型, 开发工程师难以模拟每个手机的情况, 更难 在本地做到编译多个版本进行研发,我们为解决这个问题,自主研发了“自动编 译系统” 。自动编译系统采用几百台服务器在后台搭建了一个编译集群,保证多 机型同时编译。 编译系统每十五分钟会自动触发一次系统编译,如果编译失败了,会以邮 件等形式通知相关的工程师,这样对应的工程师就可以根据情况及时处理可能 出现的问题并开始进行下一步的测试和验收工作。目前小米在研的几十款机型 已经全部覆盖了这套系统,每天可以提前拦截很多质量问题。该技术已经申请 专利公开。 图 8 支持多机型同时编译 MIUI 早期多是从版本、机型来监控质量,容易导致各模块负责人以及项目 经理对 MIUI 系统质量评估并不全面。当某个模块遗留缺陷较多时,再继续往代 码库中提交新功能代码很可能会引起缺陷数量上涨,从而导致版本质量更不稳 定,因此引入 MIUI 锁库机制来实现对模块精细化管理以及制定新功能代码合入 标准势在必行。 图 9 支持多机型同时编译
网友评论

您目前是匿名发表 登录 | 注册