什么是敏捷开发?
以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发!
核心:用户的需求进化
方法:迭代、循序渐进
敏捷开发原则:
1、快速迭代
2、需求评审
3、编写story/验收标准
4、多沟通,尽量减少文档
5、做好产品原型
6、及早考虑测试
如何做到敏捷开发
1、产品
2、UI+开发
3、测试+开发
敏捷开发流程
首先是需求评审,产品经理与客户沟通好需求后,将客户的需求细化为一个个的story,需求评审由各leader参加。
一、story讲解
1.1 制作竞品分析PPT,UE全组参与。(用时:根据产品复杂度,0.5-2小时之内)
1.2 制作产品原型,交由客户看,客户没有异议之后拆story
1.3 产品在禅道拆分好story,并且定义出优先级,关联需求,后续开发根据优先级进行开发
1.4 由产品讲解story,前端和后端都参与。(用时:根据产品的复杂度,1-3小时之内)
二、人员划分
2.1 新建wiki项目主业,把PPT和产品原型(HTML文件)上传到wiki
2.2 根据产品原型,按照模块划分相关负责人,前端和后端都是,并放到wiki。(由项目负责人新建)
命名:xxx项目人员分工(前(后)端)
三、做方案设计、定义接口文档(2-3天)
3.1 前端后端相关人员一起,对照原型,根据模块及页面大概定义出接口
3.1.1 一个页面中有几个接口,每个接口入参与出参是什么
3.2 后端每个模块的负责人,根据开会讨论的结果,在wiki上生成标准的接口文档
3.3 将后端做好的接口文档发给前端模块负责人过目,有问题继续修改;没问题开始后续的步骤 。
四、方案设计(1小时-1天左右,根据模块大小定义时间)
4.1 后端开发人员,根据原型以及定义的接口,做好方案设计
4.1.1 对有难度或者有疑点的接口,做出方案,尽量给出多个合理方案
4.1.2 每个方案写清楚优点缺点
五、方案评审(2-3小时)
5.1 对做出的方案设计,做方案评审,建议全体人员参与(无论做不做该项目)
六、禅道拆分(1-2小时)
6.1 相关负责人按照优先级顺序,在禅道拆分自己的任务,单个任务最多不要超过4小时,即拆分要详细
七、开发
7.1 搭建开发服务器
7.2 开发人员根据禅道上的任务,按时完成自己的开发工作,具体体现到日报上
7.3 每天上午开10分钟左右进度会议,如果有延迟现象出现,拿出解决方案,保证项目按照禅道上的时间点完成
7.4 数据库索引:
两种索引:1.经常查询的,数据散列度比较高的,做一般索引,不需要建联合索引。2.数据必须保持唯一的,建唯一索引。
要有文档,文档表明哪些字段要建索引。发邮件。
八、阶段测试
与开发并行
8.1 每天至少发布一次代码到开发环境,并且保证发布完之后程序没问题
九、性能测试和coderevivew(1天)
9.1 对每个接口做好性能测试
9.1.1 每个接口的响应时间不超过200ms,如果有超过的,做优化,尽量缩小到200ms内
9.2 完成codereview,根据codereview结论完成修改
十、压力测试
10.1做好压测报告
十一、 Demo
1、发demo申请邮件,收件人包括产品、测试同学、前后端相关开发人员
主题:XX项目demo通知
内容:时间 地点 参会人员
2、开demo会议:主讲人:某个开发人员
会议途中产品和测试提出问题
3、发demo结果通知邮件(由产品同学发)
内容包括:1、demo结果 2、如果不通过,有哪些问题
4、如果不通过,召集第二次Demo会议,知道通过为止。第二次会议只需演示之前不通过的部分
11.2 测试
1、demo通过之后,1:开发人员对代码打tag,参考文档如何打tag2.开发人员部署测试环境,部署完成之后发邮件,写明域名;3:交给测试人员进行测试,测试人员发送全体测试周期邮件
2、测试期间,开发人员要常去禅道看自己的BUG ,及时确认BUG,及时修改
3、修改BUG之后,开发环境前端代码由前端同学自己部署,后端代码由后端同学自己部署
测试环境每天的下午6点由后端同学统一部署前后端代码
4、测试完成之后,测试或产品发送上线通知
十二、 发布测试环境、集成测试(2-3天)
12.1 禅道上建立bug,测试出bug,指派给相关人员修改
十三、发布线上环境,同时停止开发环境和测试环境
十四、线上监控
错误报告