主题:开发一个新产品,需要经历什么
主讲人:赵英如(网易移动端ios高级开发工程师)
时间:2019年6月20日
产品孵化的四个阶段:1.启动 2.计划 3.执行 4.收尾
1.启动阶段
确定工作内容内容:1.项目描述 2.项目需求 3.指派负责人 4.里程碑式进度表 5.组建团队
确定组建团队的模式:1.部门协作 2.独立项目组
确定工作方式:1.集中办公 2.分开办公
确定团队职能:1.产品经理 2.交互设计师 3.视觉设计师 4.项目管理 5.前端工程师 6.移动端工程师 7.后端工程师 8.测试工程师
前端工程师主要负责外部页H5的开发工作,技术语言:html,CSS和JaveScript;
移动端工程师主要负责移动端手机端的开发工作,技术语言:Objective-C和Swift(Ios),Android和Java(安卓);
后端工程师主要负责为H5和移动端去提供数据服务,也就是提供接口服务,技术语言:Java和PHP;
测试工程师主要负责测试整个产品的功能和产品的完整性,这是在我们开发完成以后测试工程师的主要责任;
2.计划阶段
2.1制定团队的工作制度(划分职责,让大家知道自己该做什么)
以咕噜为例
a.采用csrum方式,要求每一步的输出物具备一定的质量;
b.产品同学需管理交互和视觉的产出;
c.产品、技术负责人、项目经理能够识别外部依赖,且在计划会前搞定需求及排期;
d.技术人员能够在计划会上给出工作量预估;
e.为保障更少的空档时间,产品功能backlog(积压的工作)里具备开发条件的需求始终有1-2个;
f.产技团队不要纠结文档和方案的完备性,常见情况是计划会后仍有很多细节不完整,开发迭代中沟通解决即可。
2.2制定工作流程
瀑布型敏捷式(xp,scrum)(在此我专门查了一下两种模式区别,感兴趣可查看链接:https://blog.csdn.net/poppy3163/article/details/78117620)
在咕噜中采用的是scrum方式,首先由产品经理提出自己已经优先排列的产品条目,将其组织成表格,在会议上讲解给大家,讲解完成之后,由团队去选择sprint backlog;然后由技术团队将sprint backlog分解成一个一个的task(需要开发的任务);分解之后,由技术团队做出时间的评估,然后整个技术团队去执行开发任务,在开发任务之中,执行每天的站会(建议不超过15min)(站会解决的问题:1.我昨天做了什么? 2.今天要做什么? 3.碰到的问题是什么)。如下图。
Sprint:冲刺,就是一个版本的迭代 Product backlog:产品条目,就是一个需求,产品想要的东西 Sprint backlog:一个冲刺中的需求 Product owner:产品负责人 Daily scrum:每日站会
3.执行阶段
3.1.需求初审
参与人:利益相关人,项目负责人,产品,交互,视觉设计,主要技术负责人,测试负责人
输入:产品方案初稿、交互初稿。
目标:对于需求的可行性评估,交互稿初审。通过讨论评审,进一步细化产品方案,交互方案
产出:详细方案&调整后交互稿,技术选型,外部依赖(是否需要外部服务器等)
3.2.需求终审
参与人:利益相关人,项目负责人,产品经理,交互设计师,UI设计师,全体开发工程师,测试工程师
输入:产品功能列表、修改后交互稿
目标:对产品进行详细的讲解,对产品功能列表中的每个功能点进行讲解。对交互稿的逻辑,功能进行解说。在此期间所有人都可以对产品和交互提出自己的疑问和建议,促使对产品和交互进一步明确与细化。
产出:产品最终方案&交互终稿,视觉稿
3.3.工作排期
开发人员
参与人:技术负责人,全体开发工程师
输入:产品功能列表、交互终稿
目标:对产品进行技术上的工作拆解,量化,分工。产出功能细化后的工作量“人/天”。
产出:排期表
测试人员
参与人:测试负责人,全体测试工程师
输入:产品功能列表,交互终稿
目标:对产品进行测试工作拆解,量化,分工。产出功能细化后的工作量“人/天”
产出:排期表,测试用例(会后测试人员编写)
3.4.执行开发
搭建框架(MVC,MVVM,MVP)
开源库的引入(github)
数据库选择(sqlite,mysql)
模块功能开发
每日站会
3.5.提交测试
功能测试,性能测试,UI测试,兼容性测试,压力测试
提出bug(反馈到jira,一个bug系统)
开发工程师修复bug
测试工程师进行验证
4.收尾阶段
测试验收
交互验收
视觉验收
产品验收
打包发版
登录应用市场
回顾