如何帮别人快速认识敏捷

最近,有个很好的朋友在路上和我聊天,说我看你们老说敏捷,你能给我说说什么是敏捷吗?

我说:敏捷是一种价值观。

友问:哦,是什么价值观?

我说:遵守敏捷宣言的价值观?你知道敏捷宣言吗?

友说:不知道。

我说:敏捷价值观是,个体和交互胜过过程和文档。。。

友问:为什么个体和交互胜过过程和文档,为什么。。。

我说: 因为如是这般。。。

还没说完,就到站了,朋友要走了,回来我就开始思考如何让人对敏捷有个快速的了解,也就是短时间内了解敏捷的一些精髓。这个我们向客户推敏捷的时候其实也经常碰到上面的场景,客户也同样没有时间而且不可能有很多时间听我们讲敏捷。

随后,我回来仔细想了想,我们如何让别人很容易理解并接收敏捷呢?

1. 我们必须让他用自己的语言和经历可以轻松的理解。

2. 必须找出敏捷的最重要和最显著的特点。

3. 必须让他们明白敏捷带来的好处,而不只是工作流程的改变。

 

这两年我也一直学习和实践敏捷,正确使用敏捷确确实实可以解决很多问题,注意,我这里说的是很多,并没有说所有。同时,可以大大增加项目的成功率。

这里不说SCRUM, 不说XP, 下面是我给敏捷的一个很山寨的定义:

敏捷就是以客户商业价值驱动的增量的提交,每个迭代一般持续2到4周,每个迭代结束向客户提供迭代初承诺的高质量的可以工作的软件,整个团队持续改进同等时间的工作效率和工作质量。敏捷可以提高团队的战斗力,个人能力随着团队能力的提高同步提高,敏捷可以极大提高解决新问题或未知领域的能力。敏捷在提高工作效率和工作质量的同时可以提高个人的成就感和生活质量。敏捷最大的挑战就是找到敏捷的人(爱学习和上进的人)和一个好的敏捷教练来正确推行敏捷。敏捷是一种思想和价值观,不只是使用在软件领域。

 

之前,看了一篇文章,很多人错误的使用了敏捷,然后就很不愿意接受敏捷,这是不对的,我认为这并不是敏捷本身的错,而是少了一个好的敏捷教练。我见的大部分使用敏捷的失败的原因都是拿着瀑布的方式,或者命令和控制的管理方式来使用敏捷。我就发现很多人用WinForm的思想使用WPF,后者使用WebForm的方式来使用MVC. 然后说WPF太麻烦,说MVC不好,这并不是WPF和MVC的问题,我们应该使用一个东西的优点。

 

本篇文章,你只需看黑色字体就可以了,因为我的目的就是快速让一个人知道敏捷是什么东西,我觉得一个敏捷的人,如果他现在使用别的过程遇到问题的话,他自己会有更多的理解或者回去查资料去了解。

 

祝大家晚安,工作生活愉快

作者: 王德水
出处:http://www.cnblogs.com/cnblogsfans
版权:本文版权归作者和博客园共有,转载需经作者同意。

posted @ 2011-04-11 22:56 王德水 阅读(1900) 评论(44) 编辑 收藏

 回复 引用 查看   
#1楼[楼主] 2011-04-11 23:07 王德水      
补充一下,我们公司一直在寻找认可敏捷的人,有意向的请与我联系。
 回复 引用 查看   
#2楼 2011-04-11 23:12 缪军      
敏捷思想提出已经整整20年了,什么时候轮到所谓的敏捷宣言了,
敏捷是先进的生产手段,管理手段和组织形式的整合,
他都是由实实在在的具体的生产工具和技术手段支撑起来的,
具体到软件生产领域,
能够每天交付项目是由于先进的生产手段导致的结果,
最起码的,如果还在靠手工方式开发,仅仅依赖那些通用的开发工具是无法实现敏捷生产的

 回复 引用 查看   
#3楼 2011-04-11 23:23 横刀天笑      
引用缪军:
敏捷思想提出已经整整20年了,什么时候轮到所谓的敏捷宣言了,
敏捷是先进的生产手段,管理手段和组织形式的整合,
他都是由实实在在的具体的生产工具和技术手段支撑起来的,
具体到软件生产领域,
更够每天交付项目是由于先进的生产手段导致的结果,
最起码的,如果还在靠手工方式开发,仅仅依赖那些通用的开发工具是无法实现敏捷生产的

又见到你了~~~呵呵

你就说你的“先进”生产方式吧,自动生成代码?还是直接从需求文档生成代码?还是直接花钱买一个成品软件?
每次见你的评论,都总是一种假、大、空的不知所云的言论。
就像漂浮在空中一朵朵的云一样。

 回复 引用 查看   
#4楼[楼主] 2011-04-11 23:32 王德水      
引用缪军:
敏捷思想提出已经整整20年了,什么时候轮到所谓的敏捷宣言了,
敏捷是先进的生产手段,管理手段和组织形式的整合,
他都是由实实在在的具体的生产工具和技术手段支撑起来的,
具体到软件生产领域,
能够每天交付项目是由于先进的生产手段导致的结果,
最起码的,如果还在靠手工方式开发,仅仅依赖那些通用的开发工具是无法实现敏捷生产的

敏捷思想已经提出20年了,你能找个文章我参考下?

你的先进咋那么像三个代表?

不手工开发还怎么开发?


 回复 引用 查看   
#5楼 2011-04-11 23:46 缪军      
引用横刀天笑:

呵呵,我不介意你的态度,
我说的都是我已经做到的,
代码生成?那和复制粘贴有何区别?
我说过多次,代码减少90%,甚至更多,
极限编程的2个极限是什么?
如果这都不晓得,就不要奢谈什么敏捷

 回复 引用 查看   
#6楼 2011-04-11 23:48 横刀天笑      
引用缪军:
引用横刀天笑:

呵呵,我不介意你的态度,
我说的都是我已经做到的,
代码生成?那和复制粘贴有何区别?
我说过多次,代码减少90%,甚至更多,
极限编程的2个极限是什么?
如果这都不晓得,就不要奢谈什么敏捷

你就把话说完吧,直接说极限编程的两个极限是什么吧,我不知道~~~

 回复 引用 查看   
#7楼 2011-04-11 23:50 缪军      
引用横刀天笑:

你难道除了"生成代码",真的不晓得通过设计减少大量的代码?


 回复 引用 查看   
#8楼 2011-04-11 23:52 横刀天笑      
@缪军

哦,明白了,下面这就是你的“先进”设计?

引用敏捷思想提出已经整整20年了,什么时候轮到所谓的敏捷宣言了,
敏捷是先进的生产手段,管理手段和组织形式的整合,
他都是由实实在在的具体的生产工具和技术手段支撑起来的,
具体到软件生产领域,
能够每天交付项目是由于先进的生产手段导致的结果,
最起码的,如果还在靠手工方式开发,仅仅依赖那些通用的开发工具是无法实现敏捷生产的

 回复 引用 查看   
#9楼 2011-04-11 23:53 横刀天笑      
@缪军
另外,我对你的态度是对你居多的评论的不满导致的。你懂的。


另外,恕我孤陋寡闻,我真的不知道极限编程的两个极限是啥。

 回复 引用 查看   
#10楼 2011-04-11 23:57 缪军      
引用横刀天笑:
@缪军
另外,我对你的态度是对你居多的评论的不满导致的。你懂的。


另外,恕我孤陋寡闻,我真的不知道极限编程的两个极限是啥。

如果不赞同,你可以就技术问题畅所欲言

 回复 引用 查看   
#11楼 2011-04-12 00:03 横刀天笑      
@缪军
我跟你畅所欲言还少么,可是你多少次拿出就技术畅所欲言的态度来了?每次说的话都是莫名其妙

什么先进的生产力,什么更有效的生产手段,

什么 实现敏捷思想倡导的这两个重要观点,必须有更高效的生产手段来支持,而这就是架构师的重要职责,这不都是你的杰作么,你觉得你说出来的话的意义是什么?

画外音大概就是:我们有先进的生产力,所以我们成功了,你们失败了,是因为没有先进的生产力。

 回复 引用 查看   
#12楼 2011-04-12 00:32 缪军      
引用横刀天笑:

这样,你误会了,我绝没有贬低你或者其他任何人的意思,
因为我表达的失误导致你的不悦,我表示真诚的道歉,
只要你愿意,我仍然可以今后就软件生产的问题共同交流

 回复 引用 查看   
#13楼 2011-04-12 08:17 徐少侠      
关于代码生成器的看法。

如果面对相同,或者基本类似的需求抽象,每次都要“手工”编写,这个怎么都是让人讨厌的事情。
但是只依赖生成器带来的效率,而不是去不断完善生成器里面的代码,同样是让人讨厌的事情。

我看到很多讨论问题的人,都喜欢否定对方。
其实双方都是有可取之处的。

当团队积累了某个成熟有效地模式,自然可以用代码生成器将他稳定下来以提高效率。
即使今后要修改,也可以在生成结果上进一步加工。
表看不起复制黏贴。
国内做应用开发的软件公司,完全做到对象重用,二进制重用的公司,基本是没有的。

 回复 引用 查看   
#14楼 2011-04-12 09:14 罗赛鸣      
好厉害,我有个疑问:“以客户商业价值驱动的增量的提交···”,这个解释和“客户指导开发”有联系吗?如果是个办公软件,客户并不是用它实现商业价值呢?
 回复 引用 查看   
#15楼 2011-04-12 09:18 罗赛鸣      
如果是是个小公司,对于一个所谓的项目而言就给6-8周的时间,这样还有敏捷的路可以走吗?我从第七届软件大会后,开始了解敏捷开发,但是一直没找到适合公司或者适合自己团队的开发模式,还希望lz指点下,谢谢。
 回复 引用 查看   
#16楼 2011-04-12 09:37 活跃的毛虫      
德水兄,
我天生比较笨,不够敏捷,是不是可以这样理解,敏捷就是教人如何偷懒,把重复性的劳动降到最低,我也用代码生成器,可我还是不太明白啥是真正的敏捷!我是搞WEB开发的,这些年感觉用户体验和UI是重中之重,是否UI也可以敏捷呢.请赐教啊.
我有个兄弟叫德海.He really knows how to bring a person out

 回复 引用 查看   
#17楼[楼主] 2011-04-12 09:50 王德水      
@罗赛鸣
引用罗赛鸣:好厉害,我有个疑问:“以客户商业价值驱动的增量的提交···”,这个解释和“客户指导开发”有联系吗?如果是个办公软件,客户并不是用它实现商业价值呢?

这个和客户指导开发没有直接的联系,客户决定的是商业价值。

比如博客园有很多功能,但dudu认为精华区价值最大,那最先开发的就是精华区的功能

 回复 引用 查看   
#18楼[楼主] 2011-04-12 09:52 王德水      
引用罗赛鸣:如果是是个小公司,对于一个所谓的项目而言就给6-8周的时间,这样还有敏捷的路可以走吗?我从第七届软件大会后,开始了解敏捷开发,但是一直没找到适合公司或者适合自己团队的开发模式,还希望lz指点下,谢谢。

可以,你可以迭代设短一点,团队更容易看到自己产出了真正有价值的东西

举例你教小孩认100个字,每当小孩认识5个后,你很高兴,小孩也很有成就感,而不是等他学完100个,你再肯定他。

 回复 引用 查看   
#19楼 2011-04-12 10:05 罗赛鸣      
引用王德水:
引用罗赛鸣:如果是是个小公司,对于一个所谓的项目而言就给6-8周的时间,这样还有敏捷的路可以走吗?我从第七届软件大会后,开始了解敏捷开发,但是一直没找到适合公司或者适合自己团队的开发模式,还希望lz指点下,谢谢。

可以,你可以迭代设短一点,团队更容易看到自己产出了真正有价值的东西

举例你教小孩认100个字,每当小孩认识5个后,你很高兴,小孩也很有成就感,而不是等他学完100个,你再肯定他。


这个意思可以理解成,根据项目的大小来使用不同迭代周期,是吧。那么敏捷开发和快速开发有什么联系吗?比如一个项目8周完成,使用1周的迭代周期,感觉这个对开发周期没有什么影响,对于时间的掌控上,敏捷开发有什么可以控制的吗?17楼的回复我理解的是,根据模块的重要性,制定开发的先后顺序,是吧。

 回复 引用 查看   
#20楼[楼主] 2011-04-12 10:06 王德水      
@活跃的毛虫
你的理解有一定道理,敏捷教人懒,有点太直接了,呵呵。

敏捷也不一定加快时间,敏捷更重要的是质量,没有质量,快是没有用的。

重复也不一定是坏事,如果你写一个东西写3遍要1个小时,但你写个生成器10个小时,而且生成器几乎下次用不到,甚至永远用不到,这个时候重复就是最好的选择,不是吗?

 回复 引用 查看   
#21楼[楼主] 2011-04-12 11:21 王德水      

引用罗赛鸣:
引用王德水:
引用罗赛鸣:如果是是个小公司,对于一个所谓的项目而言就给6-8周的时间,这样还有敏捷的路可以走吗?我从第七届软件大会后,开始了解敏捷开发,但是一直没找到适合公司或者适合自己团队的开发模式,还希望lz指点下,谢谢。

可以,你可以迭代设短一点,团队更容易看到自己产出了真正有价值的东西

举例你教小孩认100个字,每当小孩认识5个后,你很高兴,小孩也很有成就感,而不是等他学完100个,你再肯定他。


这个意思可以理解成,根据项目的大小来使用不同迭代周期,是吧。那么敏捷开发和快速开发有什么联系吗?比如一个项目8周完成,使用1周...


对,但一般一周的时间有点短,大家会感觉工作太紧张。

 回复 引用 查看   
#22楼 2011-04-12 11:32 罗赛鸣      
谢谢了 呵呵
那么敏捷可以理解成迭代吗?
对开发周期有什么影响,可以缩短吗?

 回复 引用 查看   
#23楼[楼主] 2011-04-12 13:24 王德水      
引用罗赛鸣:
谢谢了 呵呵
那么敏捷可以理解成迭代吗?
对开发周期有什么影响,可以缩短吗?

迭代是敏捷的一个很主要的特征,但不能划等号。敏捷不一定缩短开发周期,但是敏捷同样需要一个学习的过程,这个学习的过程有可能对开发周期有一定的影响。但是如果是长期的项目,这个影响可以忽略不计,但是对一个组织来说,这个影响肯定是正面的。

 回复 引用 查看   
#24楼 2011-04-12 15:06 里奥特      
抱歉,我连粗体字也看不懂。
 回复 引用 查看   
#25楼 2011-04-12 15:18 罗赛鸣      
谢谢德水兄的回复,学习了
 回复 引用 查看   
#26楼 2011-04-12 15:56 chenkai      
@徐少侠
@王德水
其实这个问题我个人看法是. 关于软件行业生产力问题. 在90年代已经有人提出来了.当时在C++程序中就是定制代码生产模板,后来Java语言在95年出现.Java 社区就加大各种推崇并创造出代码生成器上.但是在这个过程中叶获得一个证实.代码生成器并可能达到人工智能程度是去实现复杂业务逻辑. 总体而言它生产力上还是停留在重复工作解放上. 所以普遍业内认为这种认为生产力解放并不是实质的解放. 当然到了2000年左右开始提出ORM概念JAva 等开源社区推出大量可用性框架. 不仅单一体现生产力 更多体现软件设计思想.也许相对目前而言.
从06年就开解除敏捷.也极力推崇敏捷.但是一直受不同工作环境影响和团队成员认识 其中核心实施过一年半. 对于敏捷推重 应该让更多人看到它适用场景 以及解决的问题 和传统瀑布生产方式不同地方.而不是一直拘泥在每次面对敏捷 重复要解释这个概念.有时其实也无须想自己团队说明是敏捷.与其用一些专业名词去解释 敏捷概念定义 还不如用用实际体验来描述敏捷所带来的好处..

 回复 引用 查看   
#27楼[楼主] 2011-04-12 16:30 王德水      
引用chenkai:
@徐少侠
@王德水
其实这个问题我个人看法是. 关于软件行业生产力问题. 在90年代已经有人提出来了.当时在C++程序中就是定制代码生产模板,后来Java语言在95年出现.Java 社区就加大各种推崇并创造出代码生成器上.但是在这个过程中叶获得一个证实.代码生成器并可能达到人工智能程度是去实现复杂业务逻辑. 总体而言它生产力上还是停留在重复工作解放上. 所以普遍业内认为这种认为生产力解放并不是实质的解放. 当然到了2000年左右开始提出ORM概念JAva 等开源社区推出大量可用性框架. 不仅单一体现生产力 更多体现软件设计思想.也许相对目前而言.
从06年就开解除敏捷.也极力...

我这里是想快速给别人包括客户介绍敏捷,并没有探讨如何去实施敏捷。

 回复 引用 查看   
#28楼 2011-04-12 16:43 模模      
....我也没真正使用过敏捷,但是尽早地让客户看到系统,绝对是非常重要的,因为有相当一部分项目,客户说不清需求,我们也分析不清,最简单的办法就是让系统尽早上线(应该叫原型模式吧),然后再做迭代,但必须控制好度,别造成需求无法控制的局面就行。
....代码生成器也不是万能的,但确实能提高生产力,我一般从实体层,接口层,业务逻辑层到UI都使用代码生成,生成成功后要做的事情就是调整,添加复杂的业务处理了。
....相对而言我更想知道我该怎么做才算敏捷,对我的开发有利,黑猫白猫,告诉我怎样能更好地抓老鼠就行了。

 回复 引用 查看   
#29楼 2011-04-12 16:52 Ivony...      
敏捷是一种模式,来促使人们选择更先进或者思考用更先进和有效率的方式以及工具来产出价值,而不是选择了更先进有效率的方式或工具就敏捷了。因为未来是不可预知的,方式A在今天,当下是最有效率的,而在明天或者换个场景就会是累赘。核电站很先进,但是如果只是用来点个灯泡就是浪费。

所以某人的观点完全是本末倒置的。。。。

 回复 引用 查看   
#30楼[楼主] 2011-04-12 17:04 王德水      
引用Ivony...:
敏捷是一种模式,来促使人们选择更先进或者思考用更先进和有效率的方式以及工具来产出价值,而不是选择了更先进有效率的方式或工具就敏捷了。因为未来是不可预知的,方式A在今天,当下是最有效率的,而在明天或者换个场景就会是累赘。核电站很先进,但是如果只是用来点个灯泡就是浪费。

所以某人的观点完全是本末倒置的。。。。


我完全同意你的观点

引用王德水:
引用Ivony...:
敏捷是一种模式,来促使人们选择更先进或者思考用更先进和有效率的方式以及工具来产出价值,而不是选择了更先进有效率的方式或工具就敏捷了。因为未来是不可预知的,方式A在今天,当下是最有效率的,而在明天或者换个场景就会是累赘。核电站很先进,但是如果只是用来点个灯泡就是浪费。

所以某人的观点完全是本末倒置的。。。。


我完全同意你的观点

看着你们聊天我发呆 哼哼

 回复 引用 查看   
#32楼[楼主] 2011-04-12 20:11 王德水      
引用韦恩卑鄙 v-zhewg @waynebaby:
引用王德水:
引用Ivony...:
敏捷是一种模式,来促使人们选择更先进或者思考用更先进和有效率的方式以及工具来产出价值,而不是选择了更先进有效率的方式或工具就敏捷了。因为未来是不可预知的,方式A在今天,当下是最有效率的,而在明天或者换个场景就会是累赘。核电站很先进,但是如果只是用来点个灯泡就是浪费。

所以某人的观点完全是本末倒置的。。。。


我完全同意你的观点

看着你们聊天我发呆 哼哼

不明白,还请指出

 回复 引用 查看   
#33楼 2011-04-12 20:29 卡通一下      
楼主说:敏捷最大的挑战就是找到敏捷的人(爱学习和上进的人)和一个好的敏捷教练来正确推行敏捷

我对楼主关于敏捷这句话的理解是,敏捷的人不一定就会敏捷开发,而敏捷的开发一定是个敏捷的人,所以需要一个既是敏捷的人、又会敏捷开发的教练,来对只是敏捷的人、而不会进行敏捷开发的人,来进行敏捷的教学,以进行正确推行敏捷。

真是绕嘴,哈哈...

 回复 引用 查看   
#34楼 2011-04-12 20:58 wangxh      
@王德水
hi,
你是不是盛安德的???

 回复 引用 查看   
#35楼[楼主] 2011-04-12 22:31 王德水      
(c
引用卡通一下:
楼主说:敏捷最大的挑战就是找到敏捷的人(爱学习和上进的人)和一个好的敏捷教练来正确推行敏捷

我对楼主关于敏捷这句话的理解是,敏捷的人不一定就会敏捷开发,而敏捷的开发一定是个敏捷的人,所以需要一个既是敏捷的人、又会敏捷开发的教练,来对只是敏捷的人、而不会进行敏捷开发的人,来进行敏捷的教学,以进行正确推行敏捷。

真是绕嘴,哈哈...

你太有才了,基本是这个意思

 回复 引用 查看   
#36楼[楼主] 2011-04-12 22:32 王德水      
@wangxh
是的

 回复 引用 查看   
#37楼 2011-04-13 09:06 wangxh      
@王德水
我去你们公司面试过,无意之中看到你的博客,看着相片挺像的,呵呵!

 回复 引用 查看   
#38楼[楼主] 2011-04-13 10:46 王德水      
引用wangxh:
@王德水
我去你们公司面试过,无意之中看到你的博客,看着相片挺像的,呵呵!

是我面试的?
能说说为啥没来吗?我记不太清楚了

 回复 引用 查看   
#39楼 2011-04-13 11:16 wangxh      
@王德水
你们组去年有一个做silverlight的职位,我去跟你们聊过两小时,还说要老外的客户进行面试,我这英文水准,想想还是算了。

 回复 引用 查看   
#40楼[楼主] 2011-04-13 12:50 王德水      
引用wangxh:
@王德水
你们组去年有一个做silverlight的职位,我去跟你们聊过两小时,还说要老外的客户进行面试,我这英文水准,想想还是算了。

主要是读写,没有口语方面的要求。

 回复 引用 查看   
#41楼 2011-04-21 16:19 绿里奇迹      
极限编程的两个极限到底是什么??最后也没说答案啊!
 回复 引用 查看   
#42楼 2011-04-21 19:23 缪军      
@绿里奇迹
简单地说:
代码总量有极限;
迭代次数有极限

 回复 引用 查看   
#43楼 2011-05-04 14:53 vieri122      
从楼主的定义我也没明白什么是敏捷。
把楼主黑体字部分的“敏捷”换成”基于用户需求的软件开发“ 无比通顺。

 回复 引用 查看   
#44楼 2011-05-10 09:00 無名小草      
我也没看明白黑体字部分,我理解成迭代开发。