阅读 1458

app开发流程规范

前言

最近发现公司的开发流程很不规范,于是整理了一下我认为比较好的规范,有更好的方式请在下方留言,谢谢。

一、主要流程

二、产品立项

工作概述: 产品立项阶段亦称为准备阶段,该阶段主要基于需求大纲通过针对性的市场调研、用户访谈及竞品分析,尽可能的评估产品的核心功能,方向定位、目标用户群、成本投入和市场前景。在决策层评估通过的条件下,组建虚拟开发小组,协调资源,明确项目负责人及产品计划上线时间等事项。若为甲方需求的项目,可省略市场调研及商业价值评估的相关内容。

描绘远景,设定目标: 产品的远景是什么?计划需要做什么实现这个远景?明确各个阶段的产品目标,为什么设定这样的目标?

市场调研,竞品分析: 通过针对性的市场调研和充分的竞品分析,测算产品市场前景和风险成本。

收集需求,排优先级: 收集各业务市场部门反馈的需求意见,做典型用户的深度访谈,组相开发设计运营人员头脑风暴,明确产品核心功能和开发需求优先级。

组建团队,定负责人: 依据产品定位和投入资源,组建合适的虚拟开发小组,指定项目负责人,团队相互熟悉各个岗位人员。

定期碰头,制定计划: 商定项目相关人员定期碰头会,保持团队所有人最新需求信息同步,初步制定产品各个阶段完成时间节点。

成果: 《竞品分析报告》、《产品立项说明书》、《产品BRD文档》

三、需求分析评审

工作概述: 基于产品定位和运营策略,与产品各需求方进行深度的需求沟通,将抽象繁杂的需求整理分析成可落地执行的方案,召开需求评审,排定各功能点的开发优先级,规划产品各个版本迭代的功能计划表,设计产品原型,撰写产品需求说明书,与设计开发团队沟通确定各阶段的完成时间节点,明确产品实际上线时间,与市场运营团队沟通上线运营计划方案等。

需求分析,原型设计: 与市场业务运营同事深度沟通,形成初步的需求大纲,功能列表,组织团队全员头脑风暴,分析需求的真伪及紧迫性,确定需求开发优先级,制定产品功能迭代计划表,设计产品原型初稿及页面结构图;

需求评审,确定方案: 由产品经理牵头召开需求评审会议,向开发团队详细讲解产品逻辑流程和交互细节,评估技术实现的可行性。对不明确的需求做二次需求更新;

需求文档,开发周期: 依据需求评审结果,修改设计最终版原型及交互,标注原型及撰写产品需求说明书,管理后台数据相关数据统计等需求,技术根据需求文档反馈每个阶段的完成时间节点。

成果: 《产品PRD文档》、《产品交互原型稿》(低/高保真)、《产品开发进度计划表》

四、UI界面设计

工作概述: 基于原型交互稿及产品PRD文档设计产品页面效果图,与产品沟通确定详细的交互细节及效果。与需求业务方确定完善效果图设计最终版,依据开发需求进行效果图细节标注,设计产品icon及应用市场审核宣传材料,配合市场运营部门设计产品运营活动页面等。

用户分析,设计梳理: 收集相关资料分析目标用户的使用特征、情感、习惯、心理、需求等,基于3W法明确使用者,使用环境及使用方式;

素材收集,确定风格: 在深度熟悉产品整体业务流程和商业需求的基础上,确定页面主辅色,制定交互方式,操作与跳转流程、结构、布局、信息和其他元素;

界面设计,规范输出: 设计产品页面、图标、ICON,皮肤及一些界面交互的表现。与前端开发沟通,明确切图命名及标注规范,输出最终设计稿。

UE测试,整体复盘: 产品测试阶段包含UE测试,负责测试页面的还原度及交互的易用性,针对设计稿和需求文档提出测试反馈优化意见。产品上线发布后,全面复盘本次设计架构和细节,总结设计经验和优化迭代建议,并撰写相关的分析优化报告。

成果: 《PSD源文件》、《切图源文件》、《交互描述及标注细节规范说明》

五、程序开发

工作概述: 分为用户端、服务端两类开发。其中用户端开发,主流有iOS和Android,依据需求文档和设计稿,实现前端页面的交互效果,与服务端确定数据交换接口协议。服务端开发依据需求文档,设计数据库表结构,评估核心复杂功能的实现方案,撰写开发设计概要文档及反馈重要功能的完成时间节点。

果:《开发设计概要》、《接口协议文档》、《自测通过的产品1.0版》

六、测试验收

工作概述: 参考产品需求文档和开发设计概要,撰写产品测试用例,召开用例讲解会,对产品全方位的进行测试,将测试不通过的内容反馈给开发,判定bug严重程度和跟进修复进度,评估产品上线发布的可行性,协助产品和业务人员撰写产品验收报告。

测试类型: 功能性测试、容错性测试、性能效率测试、易用性测试、兼容性测试、压力测试等

成果: 《测试用例》、《测试bug反馈记录表》、《测试验收报告》

七、项目总结大会

项目完成之后,需要发项目参与的所有人员组织起来,总结项目过程中的问题,避免以后再次发生,个人觉得这点很重要。

八、自己是做安卓的,所以就说一下安卓开发中注意的问题。

1、 基准库的封装不能马虎,包括各种基类,utils等,前期可能做不到完美,随着项目的开发过程中逐渐优化,有时间应该提交到jcenter上面,采用远程依赖的方式可以加快编译速度,并且能减少项目的冗余度。

2、 ui库一定要形成。ui库用于存放一些封装好的自定义view,需要更具局面的整体风格,封装一些app内使用的组合控件,避免造成布局臃肿。公用资源文件等和ui想关的东西。

3、 第一个版本不用考虑那么长远,做什么组件化之类的东西,但是相应的功能模块需要分开,尽量减少耦合度,为后面项目增大做组件化开发减少压力。

4、 框架的选择,例如:网络、图片加载、数据库、rxjava等,劲量选择比较新的,稳定的,灵活度高的框架,避免后面替换的麻烦。如及时通讯,消息推送等后期替换很费时间的第三方框架需要进行调研慎重选择,最好确定以后,后期不用替换,框架不用可以最新新,最重要的还是稳定性。

5、 时间允许最好写点单元测试,如果前期没写单元测试,一旦项目大了,后面你会更不想写了。

6、 不要放太多的library代码到项目中,导致最后一个项目有很多个moudle,导致编译时间很长,劲量提取你需要的功能放到基准库中,减少moudle的数量,如果整个moudle的功能基本都需要,可以考虑打包成aar的方式依赖,减少编译时间,项目的依赖逻辑一定要清晰,不能混乱。

7、 写完项目之后,回过头来欣赏下自己的项目,你会发现,可能有很多地方都有更好的方式实现,大部分看第三方库的代码比看自己写的代码多,多看自己写的代码,才能发现自己的问题所在,这点是提升自我的一个方法,个人觉得比较重要。

总结

以上就是自己的一点看法,有更好的见解希望能在下方留言,谢谢。

关注下面的标签,发现更多相似文章
评论