什么是敏捷开发?

2020.6.2是我入职的第二天,也是我正式上班的第一天。早上开会的时候组长提到了敏捷开发,我当时是有点懵比的,不太懂,特地研究了一把。

一、敏捷开发的概念

传统瀑布式开发:项目启动→需求获取→估算、计算、跟踪→分析、设计→编码→测试→交付、支持、反馈。

缺点:后面依赖于前面,整个开发过程具有很强的耦合性。(前面考虑的越好,后面越顺利)。对比于实际情况:我们一个产品的需求总是变化的,所以传统的瀑布式开发有一定的不合理性。

因此,需要增量交付,迭代式开发,并能够持续发布,以快速响应客户变化的需求。

敏捷开发是一种以客户需求进化为核心,采用迭代、循序渐进的方式进行软件开发的一种模式。敏捷这个词强调的是适应性而非预见性。一旦需求发生改变,团队就要快速响应,以使得产品能够快速交付。

敏捷开发中,一个项目会被切分成多个子项目,各个子项目的成果都需要经过测试,具有可视化、可集成、可发布的特征。换句话说,就是把一个大项目拆成多个互相联系但是也可以独立运行的小项目,在整个过程中主体软件都处于随时可发布可交互给用户的状态。

java敏捷开发规范 java敏捷开发模式_java敏捷开发规范

二、敏捷开发人员架构的划分

java敏捷开发规范 java敏捷开发模式_java敏捷开发规范_02


PO:Product Owner 产品或业务负责人(即产品经理)

SM:Scrum Master 敏捷专家(即TeamLeader)

DEV:开发人员

QA:测试人员

java敏捷开发规范 java敏捷开发模式_代码质量_03

三、敏捷开发相关的四个会议

1.迭代或冲刺:Sprint(迭代周期一般为一个月,一年有十二个迭代)

2.每日立会(对着任务展板,阐述:从昨天的立会到现在,我完成了什么?从现在到明天的立会,我计划完成什么?有什么阻碍了我的进展,有哪些风险和困难?)

3.敏捷评审会(向客户展示团队在本次迭代中的工作成果,并获取客户反馈)

4.敏捷回顾会(总结工作中的经验和教训,包括两个部分:①定量分析(具体有:迭代速率、迭代燃起燃尽图、迭代计划故事、迭代完成故事、计划发布日期、实际发布日期、客户满意度、团队满意度、生产环境Bug数、生产Bug解决时间、用户故事)②定性分析(有哪些地方好需要继续保持,有哪些地方需要改进,提出建议等))

四、如何写代码?任务如何完成?

java敏捷开发规范 java敏捷开发模式_java敏捷开发规范_04


敏捷开发中不仅项目拆分、代码库也拆分(便于管理)

1.每日立会的时候领取故事点,即一个小功能(一般两到三天就可以写代码完成的小任务);

2.写完代码自行验证,跑各种静态检查、复杂度、测试用例、功能测试等;

3.git push提交代码,触发CI(持续集成)流程(这是代码质量的防护墙);

4.代码评审Code review(一般由TeamLeader或是团队骨干来完成评审)。

五、总结

敏捷开发是一种更加科学的开发流程模式(一般只有大公司才能落实,因为需要投入大量的人力物力)。

敏捷开发中:人与人之间不影响、任务与任务之间不影响、主分支代码随时可交付且保证质量(不需要等大家都做完才可以交付)