文档章节

敏捷开发

疯狂的兔子
 疯狂的兔子
发布于 2014/06/23 21:23
字数 1106
阅读 151
收藏 10

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

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

第一层次

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

第二层次

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

第三层次

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

第四层次

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

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


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


© 著作权归作者所有

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

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

Mr_zebra
2018/05/10
0
0
IT研发核心课程系列——(三月)移动互联网产品团队的敏捷开发之路

这是一个可以发到朋友圈臭显摆,让基友们眼红不已的技术学习交流场景; 这是一次能让你脱离繁复编程劳动,变身为rework高效输出一员的神奇旅程; 最主要的,这是一次能打破传统思维,提供最优...

喵一喵
2015/01/27
8
0
IT研发核心课程系列——(三月)移动互联网产品团队的敏捷开发之路

这是一个可以发到朋友圈臭显摆,让基友们眼红不已的技术学习交流场景; 这是一次能让你脱离繁复编程劳动,变身为rework高效输出一员的神奇旅程; 最主要的,这是一次能打破传统思维,提供最优...

喵一喵
2015/01/27
14
0
【scrum 1】 敏捷开发简单理解

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

Daim
2016/03/22
15
0
敏捷开发:产品思维与项目管理实践

敏捷开发是全新理论吗?答案莫衷一是。细心的人们可以发现,敏捷开发其实借鉴了大量软件工程中的方法。迭代与增量开发,这两种在任何一本软件工程教材中都会被提到的方法,在敏捷开发模式中扮...

Wiuk
2017/08/21
60
3

没有更多内容

加载失败,请刷新页面

加载更多

Jmeter参数的AES加密使用

在Jmeter日常实践中,大家应该都遇到过接口传参需要加密的情况。以登陆为例,用户名和密码一般都需要进行加密传输,在服务端再进行解密,这样安全系数会更高,但在使用jmeter进行接口测试的时...

程序猿拿Q
20分钟前
1
0
MYSQL 日期函数 Date and Time Functions

Table 12.13 Date and Time Functions Name Description ADDDATE() Add time values (intervals) to a date value ADDTIME() Add time CONVERT_TZ() Convert from one time zone to another ......

_liucui_
26分钟前
1
0
Android代码混淆ProGuard工作原理简介

ProGuard能够对Java类中的代码进行压缩(Shrink),优化(Optimize),混淆(Obfuscate),预检(Preveirfy)。    1. 压缩(Shrink): 在压缩处理这一步中,用于检测和删除没有使用的类,字段...

SuShine
29分钟前
1
0
Idea 2018激活

教程地址: https://www.52pojie.cn/thread-781394-1-1.html 亲测可用

一个不正经的程序员
34分钟前
1
0
Android组件化开发实践和案例分享

目录介绍 1.为什么要组件化 1.1 为什么要组件化 1.2 现阶段遇到的问题 2.组件化的概念 2.1 什么是组件化 2.2 区分模块化与组件化 2.3 组件化优势好处 2.4 区分组件化和插件化 2.5 applicatio...

潇湘剑雨
35分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部