移动App双周版本迭代实战--转载备用
对于移动互联网产品来说,迭代的速度就是生命。我创业时做移动App时是一周一版,而现在是2周1版。相比起小公司,大公司迭代时间虽长,却更为不易,因为大公司流程更多,参与人数更多,需求更多,实现这样的快速迭代存在许多挑战,也有一定风险,管理者控制起来更困难。
那我们应该如何来实现2周1版的快速迭代呢?
这是最开始我构思的版本迭代流程图:

后来修改成这样:

我们来梳理一下,在2周1个版本的迭代开发中,有哪些最佳实践呢?
关于项目管理
2周的迭代时间是非常赶的,基本只能cover开发加测试的时间,所以需要尽量把版本的准备工作提前,以保证开发的时间。其中包括MRD、UE和后台接口,后台可定义假接口便于前台提前开发,最后再进行联调。
在整个流程中,项目第一个版本最开始的Kickoff会议很重要,这能帮助我们更好的了解团队里的人员和职责,提高后继沟通效率。后面就可以走标准的MRD Review、制定版本计划、开发、定期Review和例行通报的流程。
UE和开发时间可部分并行,只需先定义好交互,RD就可以进行开发工作。
关于需求
需求优先级必须排序,哪些是一定保证完成的,哪些是最好能有的,哪些是能有最好。来不及完成的需求再汇总到下一个版本的需求中。
关于需求变更。时间和需求变更有时候是不可调和的矛盾。提测后我们“尽量”不提交新的需求或者更改需求,新需求在下个版本添加。因为迭代速度较快,新需求最晚都会在2周后的新版本中得到实现,所以这个问题能较好控制。
关于开发
基于主干开发,提前划分好功能模块。否则代码合并是要命的事情。
划分好代码的架构和模块,每个功能模块拆分的粒度足够细。这可以解决几个问题:
1) 投入更多人力时可以提高开发效率。
2) 减少模块之间的耦合度,防止并行开发时出现的相互代码干扰。
经常遇到功能较大,开发完成时间可能需要超过1周,这个时候应该如何处理?
1) 设计产品时尽量拆分功能为更细的粒度。
2) 不能拆分的,如果功能入口能简单屏蔽,开发不影响其他代码结构的,可以多个版本开发完成,在中间的版本通过屏蔽入口或者代码解决。
3) 基于底层或者大量功能的改动影响范围太大,需要大量开发和测试时间,应当适当调整版本计划或延期。
需要频繁更新的内容用WebView方式展现。
关于沟通
整个流程中,信息的透明和通畅非常重要,需要有一个统一的需求和进度管理工具。
明确的项目进度表很重要,这可以让项目团队成员信息透明,减少沟通死角。无论是通过立会+Web展示,还是用实体的白板,都是可以采用的方式。

明确的项目进度表
在项目后期,每日项目组所有成员立会是必须的,这样做有很多优点,例如解决沟通问题,同步进度,统一最后的目标。
关于测试和质量控制
要考虑到Android、iOS两个版本同时提测对测试工程师人手的压力,测试人手足够时可并行开发,这样便于两个平台的研发相互之间对产品需求、技术实现方式等进行讨论和交流。
我们采用多级测试和发布流程来减小质量风险。测试可分为自测、QA测试、内部测试、用户测试等级别,配合较专业的错误收集工具,能解决绝大部分缺陷。再加上灰度发布策略,质量能够得到最大的保障。
发布一定要有Check List,保证每一个步骤和流程都要校验和到位,例如SVN Tag、版本号、数据统计、线上接口地址等等。
还有…
在人力足够的时候,可以考虑两条产品功能线,两条线做一些相互耦合性不高的功能(例如一条线做常规功能,一条线做创新功能),这样能把时间利用到极致,迭代速度提升到最快。
版权声明:本文为博主原创文章,未经博主允许不得转载。
移动App双周版本迭代实战--转载备用的更多相关文章
- 移动App双周版本迭代策略
对于移动互联网产品来说,迭代的速度就是生命.我创业时做移动App时是一周一版,而现在是2周1版.相比起小公司,大公司迭代时间虽长,却更为不易,因为大公司流程更多,参与人数更多,需求更多,实现这样的快速 ...
- 小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载五(使用PhoneGap获取设备信息)
除了能够将HTML页面打包成可以直接安装运行的APP外,PhoneGap的一个最大优势在于可以通过JavaScript调用设备来访问设备上的硬件信息,从而实现一些原本只有依靠原生SDK才能够达到的目的 ...
- 小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载一(PhoneGap中的API)
之前本博连载过<构建跨平台APP:jQuery Mobile移动应用实战>一书.深受移动开发入门人员的喜爱. 从如今開始,连载它的孪生姐妹书phoneGap移动应用实战一书,希望以前是小白 ...
- Android各版本迭代改动与适配集合
前言 今天分享的面试题是: Android在版本迭代中,总会进行很多改动,那么你熟知各版本都改动了什么内容?又要怎么适配呢? Android4.4 发布ART虚拟机,提供选项可以开启. HttpURL ...
- 编译包含Google Play服务App的SDK版本问题
编译包含Google Play服务App的SDK版本问题 错误信息:No Resouce identifier found for attribute 'touchscreen BlocksFoc ...
- 小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载四(使用程序载入事件)
在了解了PhoneGap中都有哪些事件之后,本节将開始对这些事件的使用方法进行具体地介绍.本节要介绍的是程序载入事件,也就是deviceready.pause和resume这3个事件. [范例4-2 ...
- 打造属于自己的支持版本迭代的Asp.Net Web Api Route
在目前的主流架构中,我们越来越多的看到web Api的存在,小巧,灵活,基于Http协议,使它在越来越多的微服务项目或者移动项目充当很好的service endpoint. 问题 以Asp.Net W ...
- React 项目生产版本迭代页面不刷新问题
React 页面缓存 react 打包项目进行服务端部署后,会发现index.html被浏览器缓存,访问项目url指向的还是上个版本的内容.原理是index.html被缓存后,路由指向和跳转都是旧版的 ...
- 小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载三(通过实例来体验生命周期)
4.1.2 通过实例来亲身体验Activity的生命周期 上一小节介绍了Activity生命周期中的各个过程,本小节将以一个简单的实例来使读者亲身体验到Activity生命周期中的各个事件. 在Ec ...
随机推荐
- 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据
瀑布流加载显示数据,在当下已经用的很普遍,尤其是我们在做网上商城时,在产品列表页面已经被普遍使用. 对于实现瀑布流布局的解决方案主要有以下两种方式: 1.对每一条显示数据使用绝对定位+浮动的方式,这样 ...
- NIO学习:异步IO实例
工作模式: 客户端代码: package demos.nio.socketChannel; import java.io.ByteArrayOutputStream; import java.io.I ...
- C# 解决DrawImage绘制图片拉伸产生渐变
ImageAttributes ImgAtt = new ImageAttributes(); ; ImgAtt.SetWrapMode(System.Drawing. ...
- 查看kindle paperwhite2上卡索引书籍的方法
昨天kindle耗电量突然加快,经过检查和网络搜索得知是卡索引导致的耗电量增大.我自己通过关闭索引的方式解决了这个问题. 在这个过程中发现了一个可以直接找到所有卡索引书籍的方法,在此分享一下. 首先打 ...
- Linux grep用法整理
grep -i 忽略大小写 grep --color grep -v 反向查找 grep -o 只显示被模式匹配到的字符串
- String类概述
(1)多个字符组成的一串数据. 其实它可以和字符数组进行相互转换. (2)构造方法: A:public String() B:public String ...
- U3D 2D游戏之黑暗纪元 2D游戏基础入门开发全(1)
第一个U3D 2D游戏的例子,全部自己编写,算是入门用,这里记录一下. 1.首先游戏把层次布置好,这里分为 背景层,游戏层,UI层 背景层 (Background-1):就是单纯的背景显示作用. 游戏 ...
- Java编程风格与命名规范整理
基本命名规范 包命名 包名按照域名的范围从大到小逐步列出,恰好和Internet上的域名命名规则相反. 由一组以“.”连接的标识符构成,通常第一个标识符为符合网络域名的两个或者三个英文小写字母. Pe ...
- Ext.Net学习笔记02:Ext.Net用法概览
这两天越来越觉得Ext.Net很强大,如果运用熟练可以极大的提高编程效率.如果你也要学习Ext.Net,推荐你看一下<Ext.Net Web 应用程序开发教程>. Ext.Net与ExtJ ...
- angularjs ios title不能修改的bug的解决方法
在app.js加入下面这句代码 就可以解决. function ($rootScope, $state, $stateParams, $log, httpService, apiUrl, cookie ...