敏捷开发流程介绍

家好,我是IT修真院武汉分院第15期的JAVA学员,一枚正直纯洁善良的java程序员。 今天给大家分享一下,修真院官网Java任务10,深度思考中的知识点————什么是敏捷开发流程?

1.背景介绍

为什么需要敏捷开发?

在很久以前,软件项目的开发都是以年来计算的,这代表什么意思呢 ?需求设计了半年多,方案设计做了半年多,开发了三年多,

测试了半年多,修改Bug用了半年多。总计花了很长很长的时间,然后上线后发现有很多需求已经不存在了,同时又出现了很多新的需求。

这是困扰软件开发项目的最大的问题,越大的项目,参与的人越多,风险越大。文档越规范,维护起来的难度就越高,导致项目中遇到的问题越来越多。

2.知识剖析

什么是敏捷开发?

敏捷开发(AgileDevelopment)是一种以人为核心、迭代、循序渐进的开发方法。

怎么理解呢?首先,我们要理解它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去

  一步一步完成项目的开发;而这种开发方式的主要驱动核心是人;它采用的是迭代式开发;

什么是迭代?

迭代是指把一个复杂且开发周期很长的开发任务,分解为很多小周期可完成的任务,这样的一个周期就是一次迭代的过程;

  同时每一次迭代都可以生产或开发出一个可以交付的软件产品。

为什么说是以人为核心?

以前大多是瀑布开发模型,它是以文档为驱动的,为什么呢?因为在瀑布的整个开发过程中,要写大量的文档,把需求文档写出来后,开发人员都是根据文档进行开发的,

  一切以文档为依据;而敏捷开发它只写有必要的文档,或尽量少写文档,敏捷开发注重的是人与人之间,面对面的交流,所以它强调以人为核心。

老大强调的理念就是:产品和开发必须是一个Team,大家只是分工不同,角色不同,并不是两个对立的团队,出了问题,不要说这

  是产品设计出来,这是开发团队实现不了的。这是一个开发小组所有人的责任,这个后果是所有的人都需要承担的。

  如果我们认真的区分这是什么问题,那么也只是为了避免下次出现同样的情况,而用户只会知道是一个公司出了一款垃圾产品,没有

  人关心到底是产品还是开发的锅。

这是做敏捷开发的大前提。或者不仅仅是产品和开发,责任共担,One Team这个理念是贯穿始终的。

  产品和开发必须是一个Team还体现在需求分期上,实际上,需求分期如果没做好,敏捷开发只能流于形式。

在敏捷开发中职责明确,每个人要负责的事情必须清晰无误,谁该做哪些事情,必须要提前讲清楚。

最为后端,项目进入真正的开发阶段后,开发组的成员就应该是主动去控制项目的进度,和风险,以及主动去测试项目中存在的问题,

在这个阶段,除了一些需求不明,或者是发生变动的情况出现,不应该去打扰产品经理。不要让产品经理做开发团队的保姆。

开发组的成员的目标就是做好项目的进度控制,

有风险就及时反馈给Leader,确保自己理解的需求是明确无误的,确保自己的

测试是完整和严谨的,确认自己写出来的代码是可以维护的。一定要理解清楚,一旦PM通过Story讲解,将需求交付给开发组成

员,那么开发组成员就应该主动而独立的为这件事情负责。当项目完工以后,开发组成员应该交叉去做CodeReview,

并且给出性能测试报告,以及组织Demo。

敏捷开发包括了哪些内容?

1.需求规划和分期

2. 需求评审

3. 需求讲解

4. 方案评审

5. 每日晨会

6. 性能测试

7. CodeReview

8. Demo

9. 测试阶段

10.线上Bug修改流程

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

敏捷开发与传统开发方法的比较:

1、优势:

敏捷开发的高适应性,以人为本的特性,和轻量型的开发方法即以测试为驱动取代了以文档为驱动,这三个主要的特点,

也就是敏捷开发相对与传统开发方式的主要有点。因为他更加的灵活并且更加充分的利用了每个开发者的优势,调动了每个人的工作热情。

2、劣势:

与传统开发方式相比,敏捷开发的最主要的劣势在于敏捷开发欢迎新的需求,而在每次新的需求产生时都可能引起整个系统的大幅度的修改。

因为开发者在开发上一个版本的时候,完全没有考虑以后的优化将要如何进行。这样的开发方式实际的软件开发过程中,并不一定总是有效的。

而另一个方面,敏捷开发因为缺乏很多在敏捷开发中被认为“不重要”的文档,这样在一个大型项目比如一个操作系统开发的时候,

由于其项目周期很长,所以很难保证开发的人员不更换,而没有文档就会造成在交接的过程中出现很大的困难。

3.敏捷开发和瀑布模型开发通俗比较

敏捷开发

  • 客人到餐馆来点菜(新项目)

  • 不确定客户想吃什么的时候,通常选好餐厅后会先看看餐厅的菜单(客户往往提不出具体的需求)

  • 根据图文菜单,客人点了是个菜(根据原型和设计稿,基本确定了需求)

  • 后厨开始准备(项目启动)

  • 配菜、炒菜,先上了两盘,让客人尝了尝味道(先提供可用实例给客户用)

  • 客人说还不错,后厨继续准备后面的菜,陆续上菜(不断迭代,不断测试)

  • 上菜过程中,客人突然发现有个菜的味道太淡了,让后厨加了点盐又端上来了(敏捷的好处,可以不断测试和需求变更)

  • 又上了两盘,不够辣,又拿到后厨加了辣(敏捷的坏处,需求没有提前明确,反复迭代,增加了工作量)

  • 到最后两盘时,客人要求换两个菜,还好没炒(迭代的好处,随时接受需求变更)

  • 客人吃完,很满意(基本满足了全部的要求)

瀑布模型开发

  • 客人到餐馆来点菜(新项目)

  • 不确定客户想吃什么的时候,通常选好餐厅后会先看看餐厅的菜单(客户往往提不出具体的需求)

  • 根据图文菜单,客人点了十个菜(根据原型和设计稿,基本确定了需求)

  • 后厨开始准备(项目启动)

  • 根据客人的下单配菜,炒菜(基本上不会主动去了解完整需求)

  • 半个小时了,菜还没上桌,客人饿极了(项目启动后很长一段时间客户什么都看不到)

  • 再过了二十分钟,十个菜都一起上来了(项目最终一次交付)

  • 客人说,有几个菜挺好的,但是有个菜味道淡了,有两个不够辣,还有两盘重复了想换掉(我是买单的,我要变需求)

  • 这时候大堂经理来了,说,“味道淡了可以加盐,不辣可以加辣,但是换菜不行,已经炒好的那两盘菜也是要算成本的”(瀑布的坏处,需求变更比较麻烦)

  • 于是,后厨只给客户加了盐,加了辣

  • 客人吃完,不是很满意,下次不来了(没有满足需求)

7.参考文献

https://www.zhihu.com/question/39757751/answer/82927612?group_id=685376196313116672

https://www.cnblogs.com/yt96/p/5983265.html

8.更多讨论

1.“敏捷开发” 知多少?

敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方式。

2.计划纸牌的用处

计划纸牌,它的作用是防止项目在开发过程中,被某些人所领导。

3计划纸牌的怎么用?

比如A程序员开发一个功能,需要5个小时,B程序员认为只需要半小时,那他们各自取相应的牌,藏在手中,最后摊牌,如果时间差距很大,那么A和B就可以讨论A为什么要5个小时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值