|
项目管理者联盟
前言: 这不是一篇介绍敏捷开发的入门文章, 而是我学习、实施敏捷的一些感想, 如果你没有实践过敏捷软件开发,
不妨到文末看看书籍推荐。项目管理者联盟
我大概是在2003年接触敏捷软件开发这个概念,之前无论是在学校的小打小闹项目,还是工作后的项目都是典型的瀑布式开发模式, 设计上自顶向下逐层分解,
设计、实现、测试、上线有条不紊。项目管理者联盟
除了大学时做的某个人项目, 客户在不停的提需求之外,
基本上没遇到多少需求剧烈变更的情况(可能和做的项目有关,不是定制化软件开发),所以觉得瀑布也挺好啊,
大学里《软件工程》这么课讲的瀑布开发还是很有用的嘛。www.mypm.net
但是看到敏捷宣言以后,内心还是被狠狠的震撼了一下: 原来软件开发还可以这么做!项目管理者联盟
这个宣言是这么说的:项目管理者联盟
项目管理者联盟
注意下面的小字:尽管右项有其价值,我们更重视左项的价值。bbs.mypm.net
这17位软件开发的领军人物所做出的呐喊绝对刷新了我的软件开发三观:项目管理者联盟
我们的终极目标是按时高质量的交付可以工作的软件, 不是编写那些非常容易过时的文档,也不是遵循严格的评审流程。项目管理者联盟
客户要深度的参与到开发中来,我们会经常的给他们做演示,获取他们的及时反馈, 而不是到最后一刻才得知,我们做的并不是客户想要的。项目管理者联盟
我们欢迎需求变化(即使在项目的后期!) ,为了达到这个目标, 我们会采用迭代化的开发方式,经常的交付可以工作的软件。项目管理者联盟文章
了解理念之后, 很快我就接触到敏捷开发的一个重要流派:项目管理者联盟
XP(极限编程), 提出者是Kent Beck, 这哥们搞的更绝:如果一个编程实践很好,
我们就把它做到极致!training.mypm.net
测试不是很好吗? 那我们就测试先行, 用测试来驱动代码的生成, 这就是TDD。talent.mypm.net
代码评审不是很好吗? 那我们就一边编程,一边评审, 两个人同时在一个电脑上编程,这就是结对编程。项目管理者联盟
......service.mypm.net
我被XP给迷住了, 开始自学JUnit, 测试驱动开发, 重构代码这些编程层面的实践。项目管理者联盟
毫无疑问,这些实践确实能提升代码的质量,但是一直没有机会在一个团队中大规模的铺开使用。项目管理者联盟
到了2008年, 公司突然间要做敏捷转型,要实施Scrum, 于是又开始了新一轮学习,我这个XP粉丝刚开始还有点小抵触,
后来发现Scrum仅仅是一个框架而已, 我以前学的一些敏捷实践仍然可以运用到其中去。项目管理者联盟
有了新东西,大家忙活的热火朝天,设立product owner, scrum ma ster。www.mypm.net
学习把需求改成用户故事,拆分task, 创建燃尽图。项目管理者联盟
开Sprint计划会议, 每日站会,Sprint评审会,反思会等等符合Scrum的东西。项目管理者联盟
当然自动化测试, 自动化Build这些工程层面的东西也少不了。项目管理者联盟
热乎劲儿过了以后,我不由的困惑起来:这真的
|