在小米工作时花费大概一年多的时候,主导开发小米IOT产品的静默升级(自动升级)功能,该项目是IOT部门的重点项目,需要向总经理汇报;
项目背景:小米IOT产品客户的主动升级意愿不强,可能会有体验或者安全上的隐患,需要一种自动升级的机制提升升级率;紧急情况下,小米可以直接通过这套机制主动给客户的产品升级;
项目需求:a、保证升级体验,升级时不能对用户造成打扰(小米的很多产品升级时会有灯光闪烁,或者滴滴声等),静默升级时这些都不能出现;
b、保证升级安全;(小米的IOT产品上亿台,每次发布版本需要升级的产品可能有数千万台,升级出现问题,尤其是变砖问题,造成的影响非常大);
项目方案简述(可能涉及到隐私,所以简单描述一下如何实现的):
针对升级体验:为了让不同品类的产品静默升级时不影响用户,前期针对各生态链公司的产品进行了大量的调研(大概调分品类一共调研了400款),统计不同品类的产品升级体验,再设计产品的升级方案,保证静默升级时不能影响用户,并作为标准发布到各生态链公司严格执行,并同步小米验收部门严格按照标准验收。
针对升级功能:静默升级涉及到近10个部门的协作:APP开发(安卓组和IOS组)部门,需要在APP中增加静默升级的开关(还有其它一些辅助功能),并在手机中引导用户打开此功能;前端:控制各种版本的发布灰度机制(不能 一下子对所有用户放开升级,采用分批自动扩大升级范围的机制); 云端:负责从前端拿到版本发布范围,再和IOT设备协商合适的升级时机;大数据:负责实时采集设备升级过程和结果数据,对升级过程进行控制,一旦发现升级异常,自动关停整个流程,并把数据提供给信息部门制作各种统计图表;嵌入式:负责和云端协商升级时间,静默下载升级数据并安装,另外实现设备变砖回滚机制; 信息部门:实现升级数据的各种统计报表,方便查看结果;另外各个不同的部门,研发和测试属于不同的组,所以还涉及到四五个不同的测试部门。
以上是整个项目的大体过程。项目按季度设计OKR目标并通过总经理评审,按季度向总经理汇报。总体OKR制定之后,会分拆给各个部门,然后制定项目进度表,每周开会同步进度。