文档章节

敏捷开发探寻本质

疯狂的兔子
 疯狂的兔子
发布于 2014/06/24 10:47
字数 1218
阅读 24
收藏 0

我们需要坐下来好好谈谈,什么事敏捷开发。

1.什么是敏捷开发?

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

怎么理解呢?首先,我们要理解它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一步完成项目的开发;而这种开发方式的主要驱动核心是人;它采用的是迭代式开发;

 我有一个朋友(大家都这么说,我有一个朋友如何如何,我有一个同学如何如何,故事往往是这样开始的),在一个大型的软件公司工作,他们公司是典型的瀑布模型,文档驱动。每个类,每个方法,都需要在文档里面注明。这样开发人员在开发的过程中就有了大量的维护工作来去做。你修改一个类之前,先要去修改一个文档。更重要的是我这个兄弟在日企工作。你联想到了什么?纯真的笑 :-D

曾将有一位先贤曾经说过,在软件的生命周期当中,除了需求确认和软件编码之外,所有的其他的工作都是shit! fuck!and if in chinese is 艹艹。

为什么说是以人为核心?

我们大部分人都学过瀑布开发模型,它是以文档为驱动的,为什么呢?因为在瀑布的整个开发过程中,要写大量的文档,把需求文档写出来后,开发人员都是 根据文档进行开发的,一切以文档为依据;而敏捷开发它只写有必要的文档,或尽量少写文档,敏捷开发注重的是人与人之间,面对面的交流,所以它强调以人为核 心。

注意,敏捷开发不是不要文档,而是删繁就简,把有限的精力集中到最重要的文档上面去。比如需求文档,这个必须有!

什么是迭代?

迭代是指把一个复杂且开发周期很长的开发任务,分解为很多小周期可完成的任务,这样的一个周期就是一次迭代的过程;同时每一次迭代都可以生产或开发出一个可以交付的软件产品。

里程碑式的意义,通过迭代不断地得到反馈。然后让软件满足客户的需求。分解任务一方面是激励团队,另一方面是把控任务。


关于Scrum和XP

前面说了敏捷它是一种指导思想或开发方式,但是它没有明确告诉我们到底采用什么样的流程进行开发,而Scrum和XP就是敏捷开发的具体方式了,你可以采用Scrum方式也可以采用XP方式;Scrum和XP的区别是,Scrum偏重于过程,XP则偏重于实践,但是实际中,两者是结合一起应用的,这里我主要讲Scrum。

 

什么是Scrum?

Scrum的英文意思是橄榄球运动的一个专业术语,表示“争球”的动作;把一个开发流程的名字取名为Scrum,我想你一定能想象出你的开发团队在开发一个项目时,大家像打橄榄球一样迅速、富有战斗激情、人人你争我抢地完成它,你一定会感到非常兴奋的。

而Scrum就是这样的一个开发流程,运用该流程,你就能看到你团队高效的工作。

 

【Scrum开发流程中的三大角色】

产品负责人(Product Owner)

主要负责确定产品的功能和达到要求的标准,指定软件的发布日期和交付的内容,同时有权力接受或拒绝开发团队的工作成果。

 

流程管理员(Scrum Master)

主要负责整个Scrum流程在项目中的顺利实施和进行,以及清除挡在客户和开发工作之间的沟通障碍,使得客户可以直接驱动开发。

 

开发团队(Scrum Team)

主要负责软件产品在Scrum规定流程下进行开发工作,人数控制在5~10人左右,每个成员可能负责不同的技术方面,但要求每成员必须要有很强的自我管理能力,同时具有一定的表达能力;成员可以采用任何工作方式,只要能达到Sprint的目标。

 敏捷开发的要义是把对文档的依赖转化为对人的依赖,要求每个人都是一个自我管理特别牛叉的人。








© 著作权归作者所有

共有 人打赏支持
疯狂的兔子
粉丝 34
博文 178
码字总数 101541
作品 0
北京
后端工程师
何勉:第一性原理和精益敏捷的规模化实施

导读:什么是第一性原理?第一性原理如何指导我们的精益敏捷开发?阿里资深解决方案架构师、畅销书《精益产品开发:原则、方法与实施》作者何勉,结合实践案例,详述第一性原理和精益敏捷的规...

Mr_zebra
01/23
0
0
福利丨技术芳菲四月天,送你一份书单静享春光

今天,人人皆言敏捷,可你的团队是否真的敏捷高效?你的软件开发能力是否过硬?为此,小编联合@图灵教育 给大家推荐两本热门书籍:《学习敏捷:构建高效团队》、《软件开发本质论》,送书福利...

DBAplus社群
2017/04/27
0
0
敏捷与面向对象

我们在工作中采用的是敏捷的开发方式。其实对于这个开发方式,大家不必太较真。敏捷好是好,但是有很多的要求。比如,敏捷没有文档,代码就是文档。但是代码充当文档是有前提的,那就是这个代...

崔钢
2011/06/16
370
3
开放产品开发(OPD):产品负责人的工作原则和方法

产品backlog是如何从产品概念开始而形成的?产品负责人需要定义产品是什么、了解为什么要做,还需要决定何时交付、如何交付,敏捷开发中对产品负责人并没有明确的进行指导。去年在一些大会上...

jingen_zhou
06/29
0
0
iOS底层原理总结 - 探寻Runtime本质(三)

方法调用的本质 本文我们探寻方法调用的本质,首先通过一段代码,将方法调用代码转为c++代码查看方法调用的本质是什么样的。 通过上述源码可以看出c++底层代码中方法调用其实都是转化为 函数...

xx_cc
07/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

你为什么在Redis里读到了本应过期的数据

一个事故的故事 晚上睡的正香突然被电话吵醒,对面是开发焦急的声音:我们的程序在访问redis的时候读到了本应过期的key导致整个业务逻辑出了问题,需要马上解决。 看到这里你可能会想:这是不...

IT--小哥
45分钟前
0
0
祝大家节日快乐,阖家幸福! centos GnuTLS 漏洞

yum update -y gnutls 修复了GnuTLS 漏洞。更新到最新 gnutls.x86_64 0:2.12.23-22.el6 版本

yizhichao
昨天
3
0
Scrapy 1.5.0之选择器

构造选择器 Scrapy选择器是通过文本(Text)或 TextResponse 对象构造的 Selector 类的实例。 它根据输入类型自动选择最佳的解析规则(XML vs HTML): >>> from scrapy.selector import Sele...

Eappo_Geng
昨天
2
0
Windows下Git多账号配置,同一电脑多个ssh-key的管理

Windows下Git多账号配置,同一电脑多个ssh-key的管理   这一篇文章是对上一篇文章《Git-TortoiseGit完整配置流程》的拓展,所以需要对上一篇文章有所了解,当然直接往下看也可以,其中也有...

morpheusWB
昨天
3
0
中秋快乐!!!

HiBlock
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部