敏捷是另一颗银弹吗

这个问题其实是一个伪问题,因为大多数软件从业人员都相信没有银弹,但很多时候这一观念需要不断被强化。Ivar就说过,软件行业是一个时尚行业,人们不断将旧的概念包装和组合来创造新的概念。在过去十年中,先是面向对象/UML而后是CMM(I)被当成银弹来出售。据我个人的观察,敏捷有被神化成下一颗银弹的趋势。

 

那么什么是敏捷(Agile)呢?虽然敏捷这个概念近来很火爆,但当你向敏捷一个的狂热支持者提出这个问题的时候,那多半会看到一张茫然的脸。所以,我从Wikipedia中找到了下面的定义,我相信其他版本的定义也大同小异:Agile Software Development is a conceptual framework for software development that promotes development iterations, open collaboration, and adaptability throughout the life-cycle of the project.

 

在这个定义中,指出了敏捷的三个要素:迭代开发、坦诚合作和自适应性,下面我们分别对这三个要素进行以下分析。

我们需要注意,迭代开发并不是一个新的概念,也不是敏捷所特有的。RUP在十年前就在强调迭代开发了。其实,敏捷在迭代方面并没有引入什么新的东西,而且我注意到目前在敏捷语境下已经出现了一些对迭代误用(这一话题在以后的文章里在展开吧)。下面是Wikipedia里有关敏捷和其他迭代开发方法的异同:Most agile methods share other iterative and incremental development methods’ emphasis on building releasable software in short time periods. Agile development differs from other development models: in this model time periods are measured in weeks rather than months and work is performed in a highly collaborative manner. Most agile methods also differ by treating their time period as a strict timebox.

 

坦诚合作其实才是敏捷的精髓,如Ivar所说,敏捷其实是有关Social Engineering的。敏捷的主要贡献在于他更多地思考了如何去激发开发人员的工作热情,这是在软件工程几十年的发展过程中相对被忽略的领域。如何将敏捷融入到整个软件工程的体系当中,这将是下一篇文章讨论的内容。

 

自适应性其实是一种后退,但是一种明智的、合理的后退。长期以来,人们经常试图将成功应用于建筑、机械等其他领域的项目管理方法强加到软件身上。这些方法往往非常强调可预测性,但由于软件本身的特性,往往给开发过程增加了不必要的成本。正如Walker Royce所说,开发软件其实更象拍电影,所以管理的挑战更大。敏捷提出的自适应性其实是减低了对项目可预测性的不合理要求,解放团队让他们关注与交付客户价值。Adaptive methods focus on adapting quickly to changing realities. When the needs of a project change, an adaptive team changes as well. An adaptive team will have difficulty describing exactly what will happen in the future. (from wikipedia) 

 

以下十一条是Agile Manifesto背后的基本原则,其实你可以看到前四条是有关迭代的,后六条是有关团队合作的,最后一条是有关自适应性的。1.        Customer satisfaction by rapid, continuous delivery of useful software2.        Working software is delivered frequently (weeks rather than months)3.         Working software is the principal measure of progress4.        Even late changes in requirements are welcomed5.         Close, daily cooperation between business people and developers6.         Face-to-face conversation is the best form of communication (Co-location)7.         Projects are built around motivated individuals, who should be trusted8.        Continuous attention to technical excellence and good design9.        Simplicity10.     Self-organizing teams11.     Regular adaptation to changing circumstances (from Wikipedia)

 

了解了敏捷之后,我们要如何面对时下火热的敏捷运动呢?首先是不要神化,不要迷信,不要迷失自我。存在即合理,你先有的开发流程和工作方式一定有它的合理性,应渐进地采纳敏捷中一些合适的实践,仔细审视各种工件的合理性和必要性,要防止借敏捷的旗号来偷工减料(尤其是放弃必要的设计和架构工作)。同时,也应该充分利用这次文化运动所产生的变革力量和热情,推动一些最佳实践(如迭代开发),打破一些对软件开发活动不合理的束缚。总之,要弄潮,而不要被潮水裹挟,Be Smart。

 

火爆 售票中
Scrum.Org 主办
Search
近期公开班
专业Scrum Master (PSM I) 认证徽章
12月26-27日(周四、周五)
专业Scrum Master (PSM I) 认证公开课
远程
Derek Ding 丁志润 授课
领导大规模敏捷Leading SAFe认证徽章
1月11-12日(周六、周日)
Leading SAFe领导大规模敏捷认证课
远程
Scott Wang 王庆付 授课
scrum alliance csm认证徽章
1月18-19日(周六、周日)
Scrum Master (CSM) 中文认证课
Lance Zhang 授课
safe scrum master ssm
2月22-23日(周六、周日)
SAFe ScrumMaster 官方认证公开班
远程
Eric Liao 廖靖斌 授课
大规模敏捷顾问SAFe SPC认证课徽章
2月27-3月2日(周四-周日)
SAFe认证-SPC SAFe认证培训师导师班
上海
Eric Liao & Marsha Xue授课
scrum alliance csm认证徽章
3月1日-2日(周六、周日)
Scrum Master (CSM) 中文认证课
Lance Zhang 授课
Scrum.org专业Scrum产品负责人(PSPO)认证徽章
3月29-30日 (周六、周日)
专业Scrum产品负责人(PSPO)中文认证公开课
远程
Derek Ding 丁志润 授课
scrum alliance csm认证徽章
4月12-13日(周六、周日)
Scrum Master (CSM) 中文认证课
Lance Zhang 授课
scrum alliance csm认证徽章
5月10-11日(周六、周日)
Scrum Master (CSM) 中文认证课
Lance Zhang 授课
Scrum联盟acsm认证徽章
5月24-25日(周六、日)
高级Scrum Master(A-CSM)认证公开课
Lance Zhang 张宁宁 授课
scrum alliance csm认证徽章
6月14-15日(周六、周日)
Scrum Master (CSM) 中文认证班
Lance Zhang 张宁宁 授课
Certified Scrum Product Owner(CSPO)认证徽章
6月28-29日(周六、日)
Scrum Product Owner(CSPO)中文认证班
Lance Zhang 张宁宁 授课
safe scrum master ssm
8月10-11日
SAFe ScrumMaster 官方认证公开班
Eric Liao 廖靖斌 授课
scrum alliance csm认证徽章
10月26-27日
Scrum Master (CSM) 中文认证课
中文远程
Scott Dunn & Eric Liao 授课
领导大规模敏捷Leading SAFe认证徽章
10月19-20日
Leading SAFe领导大规模敏捷认证课
Eric Liao 廖靖斌 授课
Scrum联盟acsm认证徽章
10月19-20日
高级Scrum Master(A-CSM)认证公开课
Jim Wang 王军 授课
0
0
小时
0
分钟
0
由Scrum.org主办的 2024中国Scrum大会 8月17日将在上海开幕
0
0
小时
0
分钟
0
预约回电
留下您的手机号,我们会在第一时间联系您。
热线电话:400-696-6280
预约回电
预约成功,我们会尽快联系您。