iOS DeveloperAndroid知识

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

2016-03-16  本文已影响92人  每天多一点

当前情况

关于SDK

如有雷同, 不胜荣幸

关于性能

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

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

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

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

执着于加法, 忘记了减法

关于开发流程

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

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

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

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

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

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

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

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

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

几点思考

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

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

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

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

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

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

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

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

上一篇 下一篇

猜你喜欢

热点阅读