敏捷开发纵横谈(4)——敏捷的本质是什么?
摘要:
在IT界中,“敏捷”是一个很酷的词汇,“敏捷”的相关理论可谓铺天盖地。
“敏捷”一词实质没有统一定义,各家有自家的说法,本文将让你了解“敏捷”的来龙去脉,抓住“敏捷”本质,并能在工作中实践“敏捷”。
大纲:
“敏捷”陷阱
为什么会有“敏捷”这个说法?
极限编程
RUP
敏捷宣言
敏捷开发的实质是什么?
如何才能敏捷起来?
我将分4篇为大家分享!
敏捷宣言
敏捷流派太多,各大门派达成了以下的一致看法,这就是“敏捷宣言”!
敏捷开发有这样的特点:
1.个体和交互胜过过程和工具。
以人为本,注重编程中人的自我特长发挥。
2.可以工作的软件胜过面面具到的文档。
强调软件开发的产品是软件,而不是文档。文档是为软件开发服务的,而不是开发的主体。
3.客户合作胜过合同谈判。
客户与开发者的关系是协作,不是合约。
开发者不是客户业务的“专家”,也不是为了开发软件,把开发人员变成客户业务的专家。
要适应客户的需求,就要通过客户合作来阐述实际的需求细节。
4.响应变化胜过遵循计划。
设计周密是为了最终软件的质量,但不表明设计比实现更重要。
要适应客户需求的不断变化,设计也要不断跟进,所以设计不能是“闭门造车”、“自我良好”。
要不断根据环境的变化,修改自己的设计,指导开发的方向。
敏捷开发的实质是什么?
什么是敏捷?我想大家各有各的说法,我觉得敏捷过程应该是这样的:
1.一个项目目标明确的过程。
2.有利于实现项目目标的事情,一定要做。
3.对项目目标没有帮助的事情,一律不做。
4.有效和高效是最重要的项目管理原则。
5.敏捷的过程是让人愉快、工作起来有战斗力的过程。
敏捷开发简单说就是有有效的办法去做有用的事情,过程的目的是让项目做得更好,不是为了过程而过程,不是用过程来“框死”项目,过程是为项目服务的。
各家各派的敏捷方法论,其实基本道理都是这样的,只是各自从不同的角度来阐述如何做软件开发。我们没有必要盲目崇拜某某方法论,各种方法论也没有必要PK,我们应该集百家所长,为我所用!
如何才能敏捷起来?
有时候我们会这样说:懒人会更聪明,因为他会想尽一切可以偷懒的办法。如果说,敏捷开发其实就是“懒人”想出来的,这样也不算奇怪。
那是不是我们就可以做“懒人”了?当然不是了,如果你不足够聪明你就没有资格做“懒人”!
其实“懒人”一点都不懒,因为他的脑袋从来是不偷闲的,他的脑袋是很勤快的。
说了这么多,我其实想说的是:要敏捷,最关键在于多思考!
不要尽信各种敏捷方法论,你必须思考,必须能提出自己的疑问和见解,这样你才算理解这些方法论。
你需要多实践、多充实自己的知识,这样你才会有更多的思考本钱,更多的打仗用的武器。
你需要多总结,总结使人进步!
敏捷很容易,只要你开始思考如何让工作更有效,只要你开始改善你的工作方法,你已经开始敏捷了!
本文完,谢谢!
作者:张传波
创新工场创业课堂讲师
软件研发管理资深顾问
《火球——UML大战需求分析》作者
www.umlonline.org 创办人