关于提高无线研发效率的建议

当前情况

  • SDK之殇
    目前ABC客户端有大量的功能是通过接入sdk的方式实现的, 同时可以预见的是, 在未来, 接入sdk的数量还会跟业务一样增长, 会让我们的ABC客户端变得更加臃肿. 这些sdk中, 存在了大量我们客户端不适合也不会用到的功能.
    同时, 这些sdk中, 存在了错综复杂的依赖关系, 这些关系是很强的版本依赖关系. 每次SDK升级, 往往伴随着连带的sdk升级, 接入方每次都需要投入人力成本进行维护, 从而造成了大量的人力浪费.

  • 性能之惑
    ABC客户端无论是CPU/内存/流量使用都是购物类app中最大的. 弱网体验也不好, 甚至不如手淘. 随之而来的就是响应慢, 卡顿, 易崩溃等问题. 我们的安装包也随着不断的接入各种SDK而慢慢变大, 可以跟一款主流游戏一较高下了.

  • 研发之困
    流程冗长. 无论大小, 无论业务是否稳定, 我们都采用了需求-交互-开发-测试-灰度-发布 这统一的流程. 面对多变的产品, 我们灵活度不够, 面对小的需求, 我们的流程又显的过长.

关于SDK

  • SDK中有大量的代码我们不会用.
    SDK是一个很好的提升总体研发效率的手段. 但是滥用SDK, 就会造成目前我们遇到的种种问题. 在我们接入的SDK中, 有很大一部分功能是我们用不到的, 里面有很大一部分的代码是我们的业务不会走到的. 但是这些功能依然占据了我们的安装包, 慢慢的让ABC变得臃肿和缓慢.

  • 让人头痛的依赖关系.
    我们接入的SDK并非独立的存在, 很多时候, SDK之间有着千丝万缕的依赖关系. 比如我们因为某个视频业务需要接入视频模块, 发现其依赖于底层的webview模块, 如果接入了webview模块, 所有依赖于webview的模块都存在回归风险.
    接入了一个sdk就意味着打开了一个潘多拉盒子.

  • 不胜其扰的测试需求.
    场景一:
    "今天我们更新了一个版本, 修正了一个bug, 影响很大. 你们回归一下"
    "重点是什么?"
    "都看一下, 影响很大"
    "上次也是这么说的啊..."
    "你就回归吧, 反正很大..."
    场景二:
    "亲, 在吗? 今天我们发现了一个sdk的bug, 你看看?"
    "你们用的sdk版本是多少?"
    "1.1.0"
    "我们都1.1.2了, 你们先升上去看看吧"
    "亲, 你确定升级就能解决?"
    "恩, 你这个bug我怀疑跟我们之前的那个是同一个问题, 你先升上去看看."

如有雷同, 不胜荣幸

关于性能

从当前收集到的数据来看, ABC在几个购物类应用的横向比较中属于资源使用非常重的.

一个主要的原因是无线方面的性能的关注点不够, 针对业务的解决方案偏中重资源消耗. 比如: 对于外部库的引入不节制, 使用部分, 或小部分功能也引入. 对于图片大小, 清晰度没有实验意识, 为了满足产品希望无条件的使用大图.

现在的App就像是一个房间, 每个人都想把自己的东西装进入, 但是不关心这个房间还能有多少空间.

同时, 翻看我们启动过程, 其中, 特殊的业务逻辑, 配置拉取, 预加载等等. 使得我们的启动愈发缓慢.

执着于加法, 忘记了减法

关于开发流程

每个月的移动端发版都是一个痛苦的过程. 问题的实质就在于反馈过长. 我们绝大多数的业务, 使用了瀑布式的开发模式

需求 -> 交互 -> 开发 -> 测试.

如果每个流程一周, 需要一个月

一个再小的业务需求, 都需要4个以上的人参与, 每一个环节进入到下游都需要巨大的沟通成本

为了应对沟通问题, 我们有我们的项目室. 不过, 仍然有很多人倾向于在自己的工位上免打扰的完成工作.

确保这个流程正常运转的, 是我们的评审制度.

需求(需求评审) -> 交互(交互评审) -> 开发(开发Review) -> 测试(用例评审 + 灰度)

所有这些流程, 大多会在一个月甚至更短的时间完成. 而且还不可避免的涉及到了返工:

  • 如果开发过程中发现交互不完备, 需要改交互
  • 如果开发过程中发现需求有纰漏, 需要改需求
  • 如果需求点无法实现, 需要改开发方案

同时, 当以上情况发生时, 很难保证对应的评审会有效的召开, 为质量埋下了隐患.

几点思考

  • 明确SDK的接入标准, 构建缓冲层.

作为SDK的接入方, 直接介入某一个SDK是非常危险的事情. 评估工作量, 依赖关系, SDK的成熟度, 以及对于应用整体性能影响是必要的第一步. 而且, 在实施接入的过程中, 构建一个wrapper来封装接入的SDK. 使得SDK和接入应用之间有一个"缓冲层", 这样可以有效减少SDK升级, 变动, 功能不完善等造成的影响.

  • SDK的设计尽量单一化, 尽量减少SDK之间的依赖

如果SDK中有针对接入方的逻辑, 那么这部分必然是浪费的. 同是, SDK间依赖关系也为今后的质量买下了隐患. 这就需要在SDK设计上, 做到单一化. 应该 __严格禁止 __业务逻辑和基础功能混合在一起的SDK.

  • SDK的测试全面化

以某一接入方为样本进行测试, 就存在了其他接入方的风险. 而修改内容不是每个接入方都清楚, 这就造成了测试实施中沟通成本大, 无谓测试增多. 理想方式, 是SDK升级的测试, 覆盖所有接入方. 同时, 如果做到了SDK单一化, 那么SDK的测试成本也会大大降低.

  • 定期的性能专项测试

相比很多互联网公司/团队都有无线方面的专项测试团队, 我们在这方面的投入真的不多. 无论是流程还是投入人员都无法保证. 性能体验需要一定的专注和坚持, 在保证人员投入的同时, 更加频繁的定期进行性能专项测试活动尤为必要.

  • 完善现有的评审制度.

需求评审, 交互评审, 开发方案的评审, 测试用力的评审, 都需要有明确的CheckList和准入标准, 能够明确的帮助团队识别出来当前处于哪个阶段. 尽力避免一句话需求, 不完整的交互, 不完善的开发方案, 有疏漏的测试.

  • 发版计划中, 只包含"成熟度高" 的需求.

我们完整的一个流程既然很长, 而且还涉及到了反复的修改. 那么在制定发版计划的时候(也就是PM收集需求的时候), 只采用已经经过交互评审的需求, 这样会大大减少反复修改需求造成的问题.

  • 采取更轻的项目室制度.

在规定时间内, 产品, 交互, 开发, 测试都在一个地方办公. 在项目起初就制度化.

  • 尝试跨职能的小团队

减少沟通成本, 有效的控制产品的开发过程. 职能团队在控制单品的质量方面更加突出, 不过我们目前的团队个人无论经验还是能力, 都属于行业中上, 所以有效的沟通, 培养团队默契对于提升效率更加重要. 同时, 针对新业务, 尚且处于摸索阶段的新功能, 跨职能团队能给出更快的响应速度和更独立的品质控制.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,711评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,079评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,194评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,089评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,197评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,306评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,338评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,119评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,541评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,846评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,014评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,694评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,322评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,026评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,257评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,863评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,895评论 2 351

推荐阅读更多精彩内容