app开发流程规范

前言

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

1、主要流程

2、产品立项

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

描绘远景,设定目标: 产品的远景是什么?计划须要作什么实现这个远景?明确各个阶段的产品目标,为何设定这样的目标?数据库

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

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

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

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

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

3、需求分析评审

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

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

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

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

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

4、UI界面设计

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

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

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

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

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

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

5、程序开发

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

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

6、测试验收

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

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

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

7、项目总结大会

项目完成以后,须要发项目参与的全部人员组织起来,总结项目过程当中的问题,避免之后再次发生,我的以为这点很重要。

8、本身是作安卓的,因此就说一下安卓开发中注意的问题。

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

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

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

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

五、 时间容许最好写点单元测试,若是前期没写单元测试,一旦项目大了,后面你会更不想写了。

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

七、 写完项目以后,回过头来欣赏下本身的项目,你会发现,可能有不少地方都有更好的方式实现,大部分看第三方库的代码比看本身写的代码多,多看本身写的代码,才能发现本身的问题所在,这点是提高自个人一个方法,我的以为比较重要。

总结

以上就是本身的一点见解,有更好的看法但愿能在下方留言,谢谢。

相关文章
相关标签/搜索