文档章节

敏捷开发

疯狂的兔子
 疯狂的兔子
发布于 2014/06/23 21:23
字数 1106
阅读 149
收藏 10
点赞 0
评论 0

什么事敏捷开发?为什么需要敏捷开发?

以往的开发都是模拟一般的传统工业进行的。人们把软件当做一个产品,一个流水线上的产品。所以就出现了先搞可行性分析(其实真正开发的时候没人去搞这玩意儿,既然都要开发了还分析个什么劲~), 然后是需求分析,遇到负责的开发团队偶尔会画画图,要是遇到奇葩的开发团队很有可能一个需求闯天下了。整个软件的开发周期中只有一个需求文档其他的什么都 没有的开发团队随处可见,因为没有文档所以做不了升级所以只能推倒重来,于是开发人员感觉文档更加没用,如此一来恶心循环。(这个关于文档的内容不属于本 篇博客讨论的话题)下面就带着读者来看一下敏捷开发是如何从传统的开发模式演变而来,或者说软件开发是如何一步一步的走向“成熟”(成熟是永远达不到的, 只是一个不断追求的目标而已)。

第一层次

一般开发团队中的搞需求的只负责与客户交流然后传递信息,开发人员只负责编码,测试人员(如果有的话)只负责测试。这样以来就导致同一个时间只能有一拨人在干活其他人都需要等待。如果某一个阶段有问题那么只能回滚到上一个阶段,在这期间的效率就大大降低了。

第二层次

后 来人们将软件分模块,这样一来开发人员可以不用等待需求人员把整个需求搞清楚再去着手开发,而测试人员也可以尽早的介入,及时发现问题。这大大的提高了效 率,使得软件开发更像是流水线上的产品,只不过这时把软件拆分以达到提高效率的目的。需要注意的是这一切一切的前提是模块的合理划分(Maven就源于此)。

第三层次

模块化提高了开发效率,但是人们是永远不满足的,还希望让软件开发更加高效。于是人们发现在上一个层次中浪费时间的阶段就是交接阶段。所以然们就在想如果让一个开发人员从需求到开发到测试一气呵成岂不是再次的提高效率,于是scrum的雏形出现了。每个成员负责一个模块的全部,从需求分析到编码实现,到测试。(众多scrum工具就源于此)。

第四层次

分 模块,一人独揽的确提高了开发的效率但是就像运动会的标语“更快,更高,更强”开发还可以更加高效!在整个的开发过程中人们发现虽然每个模块消耗的时间或 者说人员成本基本相同,但是每个模块儿自身的价值是不一样的。于是人们在上一个层次的基础之上加入了优先级的概念,如此一来同样的时间解决最有价值的问题 大大提高了公司的效益。(在开发的后期客户会自己根据投入产出比选择是否继续升级或者添加新的功能)

纵 观敏捷开发的发展,是一个实事求是的过程,是一个永不满足的过程。在敏捷开发中最重要的几个方面:具有全局观的组长,具有多种技能的成员(多面手),具有 爱心的团队。只有这样敏捷才能敏捷,否则只会是一个形式,一切活动归根结底都是人的活动,如果人的能动性没有了,工具再先进,思想再超前也是白搭。


后记:在软件开发的流程中,如果一个bug在开发测试阶段出现name修复他的成本是1,如果是在生产环境上出现的,name修改他的成本是1000.所以敏捷开发的要义就是把错误提前暴露。


© 著作权归作者所有

共有 人打赏支持
疯狂的兔子
粉丝 34
博文 178
码字总数 101541
作品 0
北京
后端工程师
【干货合集】项目管理、需求快速迭代如何实现?17篇文章搞懂敏捷开发!

为了让大家get到研发效能有关的敏捷开发和架构的相关知识,现将云栖社区2017年度与之相关的前沿技术理念及实践技术成果资料整理出来,供大家学习。 【敏捷开发】 敏捷个人和敏捷开发 敏捷开发...

Mr_zebra
05/10
0
0
【scrum 1】 敏捷开发简单理解

[+] 随着敏捷开发越来越流行,人人都在谈敏捷,人人也都在学习scrum等敏捷开发方法。。。当然,自己也是敏捷开发的实施者和受益者。 背景 我们公司引入敏捷开发的时间并不长,在实施敏捷的过...

Daim
2016/03/22
15
0
【外刊IT评论】敏捷十年,成效几何?

自从编程界的领袖们发表旨在通过接受需求变更,加强同用户合作,缩短软件提交周期来改善软件开发过程的敏捷软件开发宣言至今已近10年之久了。 敏捷宣言制定2001年2月,当时一群软件开发者聚集...

红薯
2010/11/17
1K
7
关于敏捷软件开发的一些思考

从瀑布流开发转为敏捷开发已有两年多,从最初的照猫画虎到现在能够结合实际情况做定制化的敏捷开发流程,期间的经历改变了我对敏捷开发的一些认知,实践才能出真知。 敏捷开发不是快,而是灵...

张明云
2016/12/17
0
0
敏捷开发一千零一问系列之二:序言及解决问题的心法(无住)

这是敏捷开发一千零一问系列的第二篇。(之一,之二,之三,问题总目录) 也是般若敏捷系列第十一篇。(之一,之二,之三,之四,之五,之六,之七,之八,之九,之十,之十一,之十二) 无住...

疯狂的艺术家
2012/03/02
0
0
敏捷软件开发与传统软件开发的对比

敏捷软件开发与传统软件开发的对比 最早了解敏捷开发是通过大二的一次博雅课堂,一位在百度工作的北航学长跟我们分享了他近年来从事敏捷开发的经历。印象最深的一句话是一个延迟3个月交付100...

JackMo2015
01/23
0
0
敏捷开发管理工具概念释义

敏捷软件开发(英语:Agile software development),又称敏捷开发(www.effapp.com),是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开...

兔子小白菜
2017/11/30
0
0
《敏捷开发的艺术》 读书笔记 之一

方教练安排了任务,在22号之前输出一次带实操的Scrum培训。一直害怕站在讲台上,但是在这次敏捷转型过程中,要把这个短板补上。 传湘教练说站在讲台上紧张的主要原因还是准备工作不足。感觉要...

bullboying
2017/12/04
0
0
为什么敏捷开发在亚洲实行不了

“为什么敏捷开发在亚洲实行不了”这个话题近几年被讨论了很多。Joshua Partogi是scrum.org的一位资深敏捷教练,他最近就这个话题写了一篇文章,说亚洲的大多数银行都没有把敏捷开发推行得很...

oschina
2016/07/01
9K
53
敏捷开发思想及Scrum实践

导语:现在每当直接或间接带一支研发团队我都会给大家做一次敏捷思想和实践的培训(注:软件方向,复杂的硬件开发流程建议使用IPD思想)。作为一个有近10年的开发编码工作经验的资深程序员,...

yaocoder
2017/10/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

利用 acme.sh 获取网站证书并配置https访问

acme.sh 实现了 acme 协议, 可以从 letsencrypt 生成免费的证书.(https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E) 主要步骤: 安装 acme.sh 生成证书 copy 证书到 nginx/ap...

haoyuehong
14分钟前
0
0
微擎框架内如何根据media_id获取到微信图片的路径

微擎的框架内,图片选择后,获取的是那个字符串是media_id,相当于你这张图片在微信的图片服务器里面的id 要求是:获取https://mmbiz.qpic.cn/mmbiz_jpg/…… 微信图片的路径 而微信并没有根据m...

老bia同学
18分钟前
0
0
Spring boot中日期的json格式化

Model 在model层中,类的日期属性上面添加如下注解: @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd hh:mm:ss") 参考 Jackson Date格式化教程...

亚林瓜子
20分钟前
0
0
Eclipse:Failed to load the JNI shared library

1.问题背景: 由于我之前使用jdk1.9学习,当使用Luke的时候发现jdk版本过高,需要向下配置jdk,就向朋友拷了一个安装包。重新配置路径后,便开始报错。 2.问题描述: Failed to load the JNI...

tinder_boy
22分钟前
0
0
少儿学习编程课程是否真的适合七八岁的低龄儿童[图]

少儿学习编程课程是否真的适合七八岁的低龄儿童[图]: 天下熙熙皆为利来,天下攘攘皆为利往。 这几年来,乐高教育机构在国内如同雨后春笋般出现,当然关闭/转手的也很多。从教师角度来看,部...

原创小博客
28分钟前
0
0
ES12-词项查询

1.词项查询介绍 全文查询将在执行之前分析查询字符串,但词项级别查询将按照存储在倒排索引中的词项进行精确操作。这些查询通常用于数字,日期和枚举等结构化数据,而不是全文本字段。 或者,...

贾峰uk
36分钟前
0
0
http状态码与ajax的状态值

ajax状态值 1.1 200 & OK:状态请求成功

litCabbage
39分钟前
0
0
iOS动画效果合集、飞吧企鹅游戏、换肤方案、画板、文字效果等源码

iOS精选源码 动画知识运用及常见动画效果收集 3D卡片拖拽卡片叠加卡片 iFIERO - FLYING PENGUIN 飞吧企鹅SpriteKit游戏(源码) Swift封装的空数据提醒界面EmptyView 沙盒文件浏览与分享调试控...

sunnyaigd
42分钟前
0
0
AngularJS配置.run()块中设置路由事件的监听器以及过滤未经授权的请求

AngularJS中的run方法初始化全局数据,只对全局作用域起作用,如$rootScope.多个控制器之间可以共享数据,如下代码所示: <script type="text/javascript"> var m1 = angular....

孟飞阳
42分钟前
0
0
Java语言学习(十):输入/输出

Java中,I/O操作代表着输入、输出,Java所有的I/O机制都是基于数据流进行输入输出。java.io类包提供了很多的输入输出处理功能方法,大家可以参考下JDK文档中关于I/O的一些处理方法:JDK在线中...

海岸线的曙光
52分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部