敏捷软件开发

在过去的十年里,敏捷软件开发从一个异类技术成为主流并仍在持续扩张。我凭借着极限编程“birth project”的项目的经验和敏捷宣言的联合作者幸运地在故事的开头就加入进来。思特沃克公司在2000年开始使用敏捷技术并且从那以后我们成功地在世界范围内的项目中使用。我们学到了在企业环境下使用敏捷方法的大量知识,并且我们致力于分享这些知识来帮助这些技巧能够适时使用。

敏捷软件开发的本质

自从敏捷开发者首次讨论他们的方法已经过去十年了。在这段时间里,敏捷思想已经从一个新生事物成长为广泛使用的方法。然而,像所有流行的技术一样,敏捷软件开发已经陷入了语义扩散的漩涡,我们在敏捷这个名字下所看到的很多东西和先前先驱们所做的不完全相同。所以我认为重新审视敏捷思想的本质是很重要的。

我总是通过对比传统计划驱动软件开发模型看到敏捷思想的本质。

敏捷软件开发

是自适应的而不是预见性的

是以人为本的而不是面向过程的



计划驱动的项目期望我们在进入开发阶段前拿出一份可预测的计划。这份计划为整个项目勾画出人,资源和时间表。软件设计也要在前期完成,并期望最终的实现能够遵循这份设计。项目的成功取决于现实的开发过程与计划重叠的程度。

敏捷计划是我们用来帮助我们控制变化的基线。敏捷团队同传统团队一样小心地做计划,但是计划经常改变来响应我们在项目开发过程中新获取的信息。这时,项目的成功取决于软件交付出的价值。

计划驱动的工程管理寻求一个提供了足够结构体系来减小个体差异的流程。像这样一个生产流程更加可预测,在人员变动时能更好的应对,并且更容易制定职业技能和职业生涯。

敏捷工程管理视软件开发的过程主要为人的行为,人们在哪里参与进来,以及他们如何组成团队是成功背后的主要推动力。过程(和工具)可以提升团队的效率,但是与前者产生的影响比起来总是第二位的。



新方法
我详细浏览了我最初在2000年写作的文章:“新方法”与我在2005年的更新版本的一些差异。我仍然感到这篇文章最能表达我对敏捷软件开发本质的考量。

Manifesto for Agile Software Development
敏捷软件开发宣言

It may not have started it all, but the manifesto gave the movement a name together with a dollop of initial energy. A decade later it still captures the essence of what agile methods are about.
也许它并没有开创这一切,但是宣言给这个时刻起了一个名字并且给了一点点的初始化的能量。十年后,它仍然抓住了敏捷方法的本质。

Commentary on the Manifesto (Dr Dobb’s)
Writing the Manifesto
Authors Reunion Panel on the manifesto’s tenth anniversary

In this twenty minute talk I introduce the essence of agile software development and the agile fluency model

相关标签: