敏捷开发在项目开发过程中的实践总结

敏捷开发


敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

已上介绍来源于百度百科,就我个人理解,敏捷开发的作用,是将以前瀑布式开发一次性需要上线的东西,拆分成为多个可以在不同阶段分开独立上线的功能,采取迭代更新的方式,可以让需要交付的最终结果中的一部分提前移交用户测试,发现问题及时整改。从用户角度上来看,可使用的东西尽早交付可以提高用户体验;从开发者角度上来看,避免了闭门造车的情况,有问题可以提前发现,并且功能被拆分成多个子项,也便于进行项目进度跟踪。

敏捷不是指某一种具体的过程或者框架,而是一组价值观和原则,需要大家遵守一系列的规范
 

敏捷开发流程


在日常开发过程中,我所在的团队也开始尝试使用敏捷开发的方式进行开发,以下是我在敏捷开发过程中对于流程的一些总结:

1.Event Storming
早期需求讨论时,可以让业务、产品经理、开发共同参与讨论,梳理出史诗级的用户故事。此过程可以让开发早介入,提前了解业务北京及流程

2.用户故事地图
根据Event Storming每一个事件,细化每一个点,梳理出mvp(每次都是可用的功能集合)

3.用户故事
用户故事地图文档化,整理到confluence,层级如下:
项目->史诗(按子域或模块划分)->用户故事(谁是什么角色,能干什么,目的是什么)

4.设计评审
做领域上下文的划分(每块都是微服务一个服务的划分,跟领域模型映射起来对应代码实现) + 技术实现方案(ISR)

5.Sprint规划
此过程也可称作定义里程碑,需要确定每个冲刺做哪些事,制定每个冲刺的计划及时间

6.Sprint规划会
Spring规划会:依赖于用户故事,全员参加,对子任务拆分(按照每个人物1-3人天的颗粒度,把任务拆解到能编码的程度)

7.Sprint设计
从此步开始已经进入正式开发流程,需要做的准备工作的流程如下:
流程设计->领域建模(可以采用架构师主画,全员沟通的形式)->统一语言->接口设计(方便前后端联调,可以使用yapi平台)

:在此过程中统一语言尤为重要,因为不论是开发过程中的沟通,还是业务、产品经理和开发间的沟通,如果出现名词含义不统一的情况,在沟通中是很浪费时间的

8.测试驱动开发
前期单元测试、功能测试、接口测试
可以针对代码需要实现的逻辑,先进行测试用例的编写,然后为了支持测试用例的通过来进行产品代码开发,此过程成为TDD(测试驱动开发)
这点个人认为实现起来难度还是比较大的,本人所在团队在进行实验的时候,这点做得不是很好,基本还是采用的传统的开发业务代码,然后编写测试用例的方法

9.Sprint执行
在每个Sprint开发过程中实行看板管理,站会
通过Confluence和Jira关联,将之前输出在Confluence的用户故事创建成Jira任务
每天开站会,快速过一下每个人前一天完成的任务,以及遇到的问题

10.Sprint评审
每个Sprint结束之前要给用户演示系统,评审已经实现的功能和与用户需求的差异
这个过程中发现的问题可以在下一个Spint中解决,推动项目流程向正确的方向上发展

11.Spring回顾
每个Spring结束后,大家坐到一起针对已经完成的上一个Sprint进行回顾,总结做的好的地方和不好的地方,也可以输出自己对团队开发的意见或者问题。这个过程有利于日后的合作与开发,对提升工作效率有一定帮助
 

自身实践中的不足


总的来说,目前我参与的敏捷开发项目不是很成功,我总结了一下,有几个不足的地方,今后还需要在实践过程中不断完善

1.如果项目是从0到1做的话,在项目早期实现了自动化测试脚本,但是很多接口的逻辑和参数等非常不稳定,导致开发或测试人员频繁返工

2.TDD的模式还是不好实现,目前还没有掌握测试驱动开发的最佳实践,还需要深入学习一下

3.开发任务很紧,code review做的不够

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值