首页»版块 兴趣街区 爱数码 【迈向新赛道 第6集】一闪一闪亮晶晶

【迈向新赛道 第6集】一闪一闪亮晶晶

[复制帖子标题和链接]

7446

西江青石 荣耀工程师  发表于 2020-10-1 16:09:56 属地未知 来自:浏览器
本帖最后由 西江青石 于 2020-10-1 16:22 编辑

                                                                              作者:聂星星



  “年轻人,要去奋斗、去闯。”临近毕业时,研究生导师和我说。2014年2月17日,我把这句话写在了日记本中。那一天,我走出校门,来到了华为北京研究所终端软件开发部报道,开启了我闪亮的成长之旅。

小麻雀飞起来
  刚来华为,我就加入了有“麻雀”团队之称的日志系统开发小组。团队规模虽小,但承接着整个终端手机和平板产品的日志收集能力。日志系统是手机异常信息的“收集器”,对于手机诊断、提供最佳用户体验等非常重要。
  我刚进入团队时,日志系统5.0项目亟待启动,有很多问题及需求要解决和开发。作为一只新来的小麻雀,我跃跃欲试,想要大干一番。   
  但我在学校时对手机侧软件开发接触甚少,上班头几天,面对一堆看不懂的文档,根本无从下手,只能看着别的同事忙碌,心里不由得着急起来。我暗下决心:“决不能输在起跑线上!”
  从Android基本知识到各类文档和代码,再到具体的业务框架,我用一周的时间自学补上了产品累积三年的业务知识。
  第二周一早,我兴冲冲地走到师父工位说:“师父,我已经准备好了。有没有什么需求可以给我做的?” 师父看了看我说:“你先来做日志容量提醒需求吧。”
  这个功能是为了及时告知用户手机收集日志大小,保障充足的存储空间。我一看,工作量好像不大,于是刚拿到需求就急匆匆地直接开始了编码,仅用了一天,就写完了全部代码,心里还有点小小的得意。
  临下班时,我拿着demo给师父检验,本以为会被大大地表扬,谁知师父随便测试了几下,系统就提示:出现异常。
  我愣在那里,自信心大受打击,脸上一阵火辣,不敢抬眼去看师父。到底问题出在哪里?原来,我在编码过程中,没有针对消费者需求场景提前进行详细的分析设计,没有考虑到手机存储被占满或日志超大等特殊场景,也忽略了自验证环节。
  师父耐心地跟我说:“研发始于设计终于验证。做一名好的开发人员,需要从设计、编码以及自测试三个维度进行打磨。不能急于编码,而无设计和自测。我们所做的每一步,都要为下一个环节负责,为消费者负责。”
  这是我来华为后学到的重要一课,想要起飞,就必须先脚踏实地。在后面的工作中,我沉下心来,从方案设计出发,不仅做了需求分析,更考虑到了消费者使用过程中的各种异常场景,一周之内完成了方案设计、代码编写以及自测试,共交付了400行左右代码,转测试时做到了一次通过。
  第一个需求的完成让我重拾信心,接下来,手自一体抓取协议日志需求、日志管理需求、日志工具开发、架构重构优化……每一个需求我都出色地完成了任务。
  在日志系统5.1项目中,我还作为“推广大使”,一个月内,走访了多个研究所,推动了业务雷达在10个核心业务上进行落地,监控了100多处业务异常点,这为业务快速定位提供了有效保障,也在产品流入消费者手上之前,帮助研发提前识别了许多问题。
       通过这些业务,我收获了很多,一步步的助跑,终于让我这只小麻雀,慢慢飞了起来。

                                                 【迈向新赛道 第6集】一闪一闪亮晶晶

消费者要的是整个星空
  经历了几个项目后,我在技术上有了一定的积累。2016年3月,主管告诉我:“部门将承接一个全新的技术项目——智能全局搜索,你带领一个5人小组把它拿下。”
  第一次独立带队做一个全新项目,我既兴奋,又有些担心:刚刚入职两年就去带队,我能行吗?但华为是一个愿意给年轻人机会的公司,领导的鼓励和前期预研的深度参与给了我很大的信心,我当下便接受了这个挑战。
  传统的安卓搜索模式,仅能基于字符串匹配,提供联系人、信息、邮件等极少的5种信息。而智能全局搜索是为了给消费者提供更加智能、人性化的一键式搜索体验:不用打开APP,下拉桌面输入关键字即可匹配应用、联系人、信息、新闻、生活推荐等结果,并一键直达用户所要。在此之前,所有的安卓手机厂商都没有开发出这个功能。
  开始做这个项目之前,我们几个人对桌面搜索的功能了解都不多。为了让团队快速熟悉项目,我拉上大家亲自体验了一番不同的搜索功能。业界在这一块比较先进的是iPhone基于IOS系统做的Spotlight搜索,而我们即将在安卓系统上开发的智能全局搜索,正是要对标苹果、甚至赶超苹果。
  但苹果的IOS是一个闭源的系统,没人清楚它里面到底做了些什么,所以苹果的搜索框架我们是无从借鉴的,我们只能从零开始去搭建。
  在会议室整整一下午,我们边摸索边记录,时不时发起一阵讨论,通过对比,我们发现了不少当前搜索系统的问题。比如传统搜索范围窄、结果少,且平均在1s左右才能返回查询结果,用户有卡顿感知;我们只支持全匹配,却不能对长语句进行分析,基于关键词搜索匹配。通过这些差距点,我们达成了“更快、更多、更好”的搜索体验目标。
  在过去,我们只能在茫茫搜索结果中为消费者抓住几颗星辰,而现在,我们需要给消费者整个星空。
  我基于5个人不同的特点和工作经验及背景,为每个人安排了不同的研究目标,我也深入其中,进行搜索数据搜索一致性获取等最基础部分的研究。一场艰难的“摘星”之旅,开始了。
   
只为极致搜索体验
  经过讨论,我们决定参考PC上的基本搜索工具,用这个思路拓展出后面的选型。但PC侧的东西并不是拿来就能用的,而是需要我们进行反复的验证修改,以保证能在安卓系统上顺畅地运行。
  而为了让我们的搜索结果比苹果“更多”,我们也很是费了一番心思。首先,在线搜索方面,我们利用了华为自己的产品优势,在搜索来源上引入了华为云,使搜索结果更丰富。其次,在本地的文件搜索上,苹果只支持Pages格式文档的搜索,而我们则通过利用开源库TIKA、POI把用户经常用到的Word、Excel、PPT这种格式加进来了,更方便消费者的搜索。
  而针对长语句搜索的问题,我们则引进了分词解析工具,经过裁剪和改造,用于安卓系统。
  相关的技术难点还有很多,我们花了将近一个月时间,上网搜索资料,研究市面上搜索算法,结合Android自身数据特点,确定了新的搜索框架,并完成了基本原型开发及MVP验证。一个月的封闭式开发后,在5月中旬,我们成功地搭建了智能全局搜索框架。
  然而,在即将交付智能全局搜索一期需求时,测试却突然爆出无法搜索到某封邮件内容的严重问题,两天压力复现无果。
  交付的工期容不得半点拖延,为了节省时间,我用一天时间,走读了Email模块数据库操作将近两万行的所有代码逻辑,到了最后,整个眼睛都是模糊的。
  最终我们发现,Email模块在特定场景下会绕过正常的数据库insert操作导致全局搜索监测不到到接收到了邮件。为了解决这个问题,我对邮件模块解析功能做了进一步优化,加入了事务处理操作流程,完美地解决了这个问题。
  智能全局搜索一期需求顺利在7月初落地EMUI5.0,为内部beta提供了基础体验。但随着大量内部beta使用,beta用户开始报出一些问题,比如 “搜索慢”、“搜索排序效果不好”等,同时,系统也监控到全局搜索应用内存占用高,对整机性能影响大,可能会给用户带来手机卡顿或应用响应慢的感觉。
  其他问题都较快地一一解决了,但面对性能内存占用高的问题,我们讨论了四五版方案,替换优化了分词器,延迟索引创建等,反复修改了几次,却都无法达到性能指标。我召集小组成员开会,我们一致认为,“这是最终要拿到消费者手上的东西,马虎不得,哪怕是要大刀阔斧地修改原来的架构方案,要多做许多工作,我们也要改。”
  最终,我们对架构方案进行了调整,把原来一个应用一分为二,监控服务和引擎服务分开。监控服务为轻量级服务,为常驻应用,内存占比小,用来监控数据源变更,保障数据索引一致性;引擎服务则提供信息加工处理及检索能力,即用即起,用完就退出,不会长期霸占内存。
  这就像是两个人一个常驻,一个出差,紧密配合,比原来两个人同时常驻节省了很多资源,从而解决了这个问题。
  经过不断的努力,智能全局搜索成功应用在了华为旗舰手机Mate9身上,使大数据量搜索性能提升10倍,在线和本地搜索内容超越IOS,并落实分词优化,使Mate9变得更加聪明。2016年11月14日,当CBG总裁余承东在上海华为Mate 9发布会上介绍智能全局搜索时,我感动地哭了。
  还记得,为了提升几十毫秒的搜索速度,为了降低几兆的内存占用,为了提供更好的搜索结果呈现,我们无数次地讨论、选型、算法代码优化,闯过一道道难关,最终才能给用户带来极致的搜索体验。这一切,值了。

一个年轻PL的诞生
  2016年11月份,主管找到我,希望我能担任整个联系人团队的PL一职。我之前虽有一些项目管理经验,但联系人团队是一个大团队,不乏级别比我高的前辈,拨号和存储联系人功能对质量要求也是最严格的,我能挑起这个担子么?
  面对巨大的压力,我一时间有些犹豫。但那句 “要去奋斗、去闯”仿佛又在我耳边响起。是啊,不闯一闯,怎么知道行不行呢?
  2016年12月份,我正式成为了联系人组的PL。当时正处于EMUI8.0立项阶段,联系人模块属于基础业务,在过往的EMUI项目总结中,联系人模块总是问题最多,NPS(净推荐值)差评率最高的模块。问题单多意味着需要投入大量人力在维护上不断修复补丁;NPS差评率高则反映出用户对于联系人现有功能的不满,以及对于看到新功能的渴望。
  团队通过分析,提出了通过架构重构的方法来改变当前现状。但第一次需求价值排序,联系人重构需求被认为投入产出比低,排为低优先级,这意味着重构需求很可能会被砍掉,如此一来,不仅研发又将陷于不断打补丁的开发模式,消费者也会有不好的体验。所以,我们不能让步。
  我们分析,以往对于重构价值的判断,都是比较模糊的,要说服大家,必须要用事实说话。于是,我跟SE、MDE一起量化了重构目标,并进一步细化了重构计划,梳理清了重构需求价值及投入产出比。通过与主管对齐目标价值,也得到了主管的大力支持。在第二轮需求价值排序中,顺利地保留了该需求。
  通过重构需求,我们解决了大量历史遗留及架构问题,实现了问题单同期对比,从1207个下降到307个,维护成本大大降低,节省了更多人力。我们还开发了新的卖点,为用户带来耳目一新的体验。EMUI8.0项目,是联系人团队的破茧成蝶过程,也是我的PL转身过程。产品的成功和团队的胜利,是我作为PL的责任和价值所在。
  三年多的工作,让我认识到,技术会不断创新变化,但我们对消费者需求的关注和探索一直未变。打造用户极致体验的征程上,我只是一颗不起眼的小星星,哪怕光芒微弱,也要努力闪烁,“蓬生麻中,不扶自直”,千千万万颗年轻的小星星,照亮的,则将是一片夜空。


部分网友回复——
  z00344947:
  星星同学非常棒,技术扎实,上进心强,有想法,而且非常努力。曾经是学校里面的学霸,现在又是工作中的佼佼者;年龄比较小,但是能量满满的;工作有激情,这种对工作的热情,很能感染身边的人.
  
  跟头:
  全局搜索功能原来是你们开发的,做得确实不错,赞一个。
  
  xiarixue:
  每次在电话中听到声音,给人的感觉很踏实。技术扎实,正能量满满,小星星,照亮周围人。
  
  大眼睛的女孩:
  身边人的身边事,从她的新入职到现在都非常出色,也非常努力。点赞!





本文为《华为人》版权所有,未经允许不得转载。正式出版版本请见书籍《迈向新赛道》
评论6
西江青石 荣耀工程师  发表于 2020-10-1 16:20 属地未知 来自:浏览器
聂星星同学是华为最年轻的PL,也是美女程序员哦。
荣耀粉丝157031656  LV1  发表于 2020-10-1 16:31 属地未知 来自:荣耀Note10
膜拜大佬
西江青石 荣耀工程师  发表于 2020-10-14 21:11 属地未知 来自:TAS-AN00
荣耀粉丝120955468  LV4  发表于 2020-11-11 17:04 属地未知 来自:荣耀V20
荣耀粉丝185802156  LV4  发表于 2020-11-15 12:47 属地未知 来自:荣耀V30 Pro
牛蛙
您需要登录后才可以评论 登录 | 立即注册
简体中文 - China
快速回复 返回顶部 返回列表