当前位置:首页 > 资讯 > info5 > 正文

敏捷是另一颗银弹吗?

发表于: 2008-06-23   作者:phphot   来源:转载   浏览:
摘要: 这个问题其实是一个伪问题,因为大多数软件从业人员都相信没有银弹,但很多时候这一观念需要不断被强化。Ivar就说过,软件行业是一个时尚行业,人们不断将旧的概念包装和组合来创造新的概念。在过去十年中,先是面向对象/UML而后是CMM(I)被当成银弹来出售。据我个人的观察,敏捷有被神化成下一颗银弹的趋势。 那么什么是敏捷(Agile)呢?虽然敏捷这个概念近来很火爆,但当你向敏捷一个的狂热支持者提出这个问
这个问题其实是一个伪问题,因为大多数软件从业人员都相信 没有银弹,但很多时候这一观念需要不断被强化。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在十年前就在强调迭代开发了。其实,敏捷在迭代方面并没有引入什么新的 东西,而且我注意到目前在敏捷语境下已经出现了一些对迭代误用(这一话题在以后的文章里在展开吧)。下面是Wiki里有关敏捷和其他迭代开发方法的异同:
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.
 
以下十一条是Agile Manifesto背后的基本原则,其实你可以看到前四条是有关迭代的,后六条是有关团队合作的,最后一条是有关自适应性的。
1.         Customer satisfaction by rapid, continuous delivery of useful software
2.         Working software is delivered frequently (weeks rather than months)
3.         Working software is the principal measure of progress
4.         Even late changes in requirements are welcomed
5.         Close, daily cooperation between business people and developers
6.         Face-to-face conversation is the best form of communication (Co-location)
7.         Projects are built around motivated individuals, who should be trusted
8.         Continuous attention to technical excellence and good design
9.         Simplicity
10.     Self-organizing teams
11.     Regular adaptation to changing circumstances
了解了敏捷之后,我们要如何面对时下火热的敏捷运动呢?首先是不要神化,不要迷信,不要迷失自我。存在即合理,你先有的开发流程和工作方式一定 有它的合理性,应渐进地采纳敏捷中一些合适的实践,仔细审视各种工件的合理性和必要性,要防止借敏捷的旗号来偷工减料(尤其是放弃必要的设计和架构工 作)。同时,也应该充分利用这次文化运动所产生的变革力量和热情,推动一些最佳实践(如迭代开发),打破一些对软件开发活动不合理的束缚。总之,要弄潮, 而不要被潮水裹挟,Be Smart。

敏捷是另一颗银弹吗?

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
[caption id="attachment_3582" align="alignleft" width="150" caption="本文的作者Craig"] [/capt
大数据 概念很热门,在互联网行业,Google公司起步最早,目前已经拥有庞大的 数据搜集 和分析系统,
大数据概念很热门,在互联网行业,Google公司起步最早,目前已经拥有庞大的数据搜集和分析系统,发
作者:陈勇 出处:blog.csdn.net/cheny_com 用户故事的颗粒度一直是一个谈论已久的话题,但参加了很
最近常看到有些人说他们是敏捷团队,但仔细了解一下他们的工作方式和环境,确实不敢恭维为敏捷团队
如果你不知道从哪开始敏捷个人,那么这是一个机会! "我是谁?" 发现生活的意义就能找到我是谁。如
传统的开发团队通常按角色就行分工, 开发人员只管开发, 测试人员只管测试, 在自己的职责之外的事
传统的开发团队通常按角色就行分工, 开发人员只管开发, 测试人员只管测试, 在自己的职责之外的事
背景 随着企业信息化的不断发展,大数据时代、移动互联时代、物联网时代已经到来。在新的市场竞争形
如果你不知道从哪开始敏捷个人,那么这是一个机会! "我是谁?" 发现生活的意义就能找到我是谁。如
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号