BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

讨论:敏捷不是什么?

| 作者 林芷薰 关注 0 他的粉丝 发布于 2007年12月12日. 估计阅读时间: 6 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。
在InfoQ中文站前不久的文章“敏捷与产品开发”和“一个敏捷教练中止越轨列车的故事”中,读者展开了热烈的讨论。有趣的是,这些讨论的主题很大程度上围绕着“敏捷不是什么”展开。正如读者“小刀”在评论中所说的:
“敏捷开发中很重要的一个环节是发现问题,从根源上解决这个问题”,但是,难道不使用敏捷开发的软件开发流程,“发现问题解决问题”就不是它们的重要环节了么?当韩非子说“千丈之堤毁于蚁穴”的时候,敏捷在哪里?
一种理论适用的范围越狭窄,它对实际工作的指导意义就越明确;相反,放诸四海而皆准的理论通常没有实际的指导意义。但随着“敏捷”这个词逐渐成为热门词汇,越来越多的人开始往其中揉进越来越多的意义,也让敏捷的真正内涵变得越来越模糊。就像Ivar Jacobson在“敏捷究竟是什么”一文中所说的:
我们曾经处于一种极端——做一切事情都必须使用UML,并象大多数人一样坚信它能够规范软件工程过程。同时,我们又倒向了另一个称为敏捷的极端。……现在,每一个人都是敏捷的。这当然啦,敏捷之外的其他事情都是愚蠢的。
当每个人都说自己坚持软件工程时,我们看到了很多对软件工程的误解和误用。那么这一次敏捷是在重蹈覆辙吗?和以往流行的东西一样,有人认为“敏捷其实更强调一种包容与和谐的文化”。事实是这样吗?从Ivar Jacobson的描述中似乎看不出敏捷是如此强调“文化”:
敏捷是关于以下三件事情的:敏捷是一门社会工程学。敏捷是轻量级的。敏捷提供技术实践。
我们必须用新的观念来看待实践。我们不再谈论过程,实践已经取而代之,成为一等公民。过程仅仅是实践的组合。
看起来Ivar Jacobson更愿意把敏捷看作一组最佳实践的组合。毕竟正如ThoughtWorks中国公司总经理郭晓所说,“敏捷的目标是消除浪费”。而把它无限拔高成为一种“文化”对于企业消除浪费有什么实际的帮助呢?

另一种对敏捷的置疑之声是关于实施敏捷的效果的:
我们经常看到一些号称 Agile 的国内项目,按照菜谱、操作指南和教父语录的提示,采用了许多花哨的技巧和实践(做法),是啊,表面上确实 Agile 了,那么结果呢?项目还是不能按时完成,甚至严重超支和超时,这能叫“敏捷”吗?
可以看出,一些对敏捷缺乏了解的同行和甲方代表又把这个时髦的新词汇当作了万灵药:按照他们的逻辑,如果做好了敏捷,项目就一定能够按时完成,预算也不会超支的。首先,不难看出这是一个无法兑现的承诺:开发团队是有其能力极限的,超出他们能力极限的项目无论如何也无法按时按预算完成,不管用不用敏捷。如果把敏捷当作一种宗教信仰来看待,认为项目不成功就一定是没有做好敏捷的话,就可能让真正的问题从眼前滑过。

另一方面,“按时按预算完成”是衡量项目成功的唯一标准吗?Martin Fowler在2006年接受赛迪网采访时曾讲过一个真实的故事:
这个项目是给一家公司做在线贸易系统,有一个功能是从各种各样的来源采集数据。在项目刚开始不久,我们就展示给客户看我们能采集到哪些数据。客户看到了这些数据以后,表示希望做一些查询;但是开发团队发现用户界面上没法做这个查询。经过几分钟讨论之后,用户意识到他们并不需要UI来做这个事情,只要把查询的结果发到他的信箱就可以了。于是我们这样做了,一周后用户就可以得到查询的信息,而仅仅这个查询功能就已经值得整个项目迄今为止所有的投入。
如果只把眼光放在“按时按预算完成项目”上,这个振奋人心的故事或许就不会发生了。作为一种软件开发方法学,敏捷不仅改变了程序员们开发软件的手段和方式,客户看待项目的方式也需要随之改变。正如“敏捷中国”讨论组的创始人李默在“客户协作 over 合同谈判”一文中所说:
如果签订固定价格合同,客户会倾向于在这个价格内挤入更多的需求,而开发公司会希望在这里面减少成本。最终两方博弈的结果就是项目出了问题。这种情况下,更好的办法是单价合同,或者具体说,就是确定阶段时间内的开发力量,但不确定开发范围的收费方式。按照客户需求的优先级来开发,双方合作,尽最大的努力,频繁交付。这种做法的好处是,客户可以控制项目的长短。可以不停的做下去,也可以立即随时终止。由于双方的协作,开发公司也会按照自己的能力,尽最大可能来保证质量和进度。
不难想象,在这种合作模式下,“按时按预算完成项目”已经不再是一个有效的衡量标准,因为项目的时间和预算都是动态调整的。在敏捷项目中,衡量项目成败的标准是:在合作的时间里,乙方能给甲方创造多大的价值。而这也是甲方真正在乎的。

最后(但绝不是最不要紧的),敏捷是否就意味着“做得快”?Jim Highsmith在他的《敏捷项目管理》一书中这样写道:
敏捷是指在动荡的业务环境中,适应变化并创造变化,从而获得价值的一种能力。同时敏捷是平衡灵活性和稳定性的一种能力。
由此可见,望文生义地把“敏捷”理解为“做得快”也颇可商榷:如果缺乏有效的实施指导、忽视严格的敏捷实践,单凭着高层面的理解甚至“文化”就开始盲目前行,往往会因为缺乏对质量的有力保障而失去平衡,最终欲速则不达。

作为总结:敏捷不是放诸四海而皆准的通用理论;敏捷不是玄而又玄的文化;敏捷不是在传统项目合作模式下包治百病的金丹;敏捷不是抛开纪律盲目求快。除了这些,敏捷还不是什么?

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

引用别人的原文,请作者首先注明出处,这属于基本功吧。 by Zhang Charlie


林芷薰 于 2007-12-11 3:20 写道:

另一种对敏捷的置疑之声是关于实施敏捷的效果的:

我们经常看到一些号称 Agile 的国内项目,按照菜谱、操作指南和教父语录的提示,采用了许多花哨的技巧和实践(做法),是啊,表面上确实 Agile 了,那么结果呢?项目还是不能按时完成,甚至严重超支和超时,这能叫“敏捷”吗?

可以看出,一些对敏捷缺乏了解的同行和甲方代表又把这个时髦的新词汇当作了万灵药 ...


原文:Agile 与太极敏捷:到底啥是敏捷(张恂)

关于敏捷不是什么(1) by Zhang Charlie

首先,这则讨论很好,可以让大家把敏捷是什么,不是什么,搞搞清楚。


作为总结:敏捷不是放诸四海而皆准的通用理论;敏捷不是玄而又玄的文化;敏捷不是在传统项目合作模式下包治百病的金丹;敏捷不是抛开纪律盲目求快。除了这些,敏捷还不是什么?


我的看法是:

1、敏捷不是抛开纪律盲目求快(不错!赞成)

2、敏捷不是在传统项目合作模式下包治百病的金丹(当然,这世上原本就没有 cure-all,敏捷自然也不是)

3、敏捷不是放诸四海而皆准的通用理论(这条有点问题。敏捷既是理论,也是实践。敏捷理论(软件开发哲学、思想和价值观等)中有一些可以认为是放诸四海而皆准的,比如以人为本,沟通,反馈,简化等等)

4、敏捷不是玄而又玄的文化(这条也有点问题。敏捷当然首先是一种文化,如果你理解《敏捷宣言》,而且了解什么是 culture(比如企业文化、团队文化等)的话,应该知道敏捷的内涵,其实包括价值观、原则以及约束和促进大家作为一个团队如何快乐、轻松、有效工作的游戏规则、习惯、纪律等等。那么,敏捷文化,团队文化或企业文化,玄不玄?一点都不玄,完全可以落到实处)

专业敏捷 OO 顾问教练 张恂
www.zhangxun.com

Re: 关于敏捷不是什么(1) by Li Guanglei


我的看法是:

1、敏捷不是抛开纪律盲目求快(不错!赞成)

2、敏捷不是在传统项目合作模式下包治百病的金丹(当然,这世上原本就没有 cure-all,敏捷自然也不是)

敏捷不是金丹, 是银丹

关于项目按时按预算完成,作者犯的一个逻辑错误 ... by Zhang Charlie


林芷薰 于 2007-12-11 3:20 写道:

不难想象,在这种合作模式下,“按时按预算完成项目”已经不再是一个有效的衡量标准,因为项目的时间和预算都是动态调整的。在敏捷项目中,衡量项目成败的标准是:在合作的时间里,乙方能给甲方创造多大的价值。而这也是甲方真正在乎的。


“按时按预算完成项目”,本身就隐含着项目的工期、预算执行是可以动态调整的,但不管如何,客户对动态调整必然有一个可以忍受的范围,项目必须 close,并达到阶段目标。所以,这与作者所说的“项目的时间和预算都是动态调整的”,一点都不矛盾。

作者接着说,敏捷项目衡量成败的标准是:在合作的时间里,乙方能给甲方创造多大的价值 ...

Ok,“在合作的时间里”,这还不是指时间上的约束,“按时”?

“乙方能给甲方创造多大价值”,请问 customer values 是什么东西?是可以凭空用嘴巴讲的吗?你说有价值就有价值,没价值就没价值?价值怎么样,应该用数据来说话。很多时候,带来多少客户价值,可以与财务指标联系起来,比如为客户创造了多少利润,节省了多少成本等等。所以,谈到价值本身,依然与预算有关。客户请你们开发,总有个成本、性价比要讲吧,不能超出预算太多。

如果因为“敏捷”了,原先 100 万的预算,表面上获得了 200 万的收入(价值),的确不错,价值很高啊!可是客户陆陆续续的真实投入却达 500 万,而且还超时一年!这样的“敏捷”其实是骗人的。

所以,项目“按时按预算完成”依然是一个有效的衡量标准,它本身并不排斥价值考核,只不过考察的角度不同罢了,两者并不矛盾。


拥有 14y+ 丰富开发经验的
敏捷 OO 顾问教练
张恂
www.zhangxun.com
竭诚为您提供专业服务

Re: 关于项目按时按预算完成,作者犯的一个逻辑错误 ... by Li Guanglei



“按时按预算完成项目”,本身就隐含着项目的工期、预算执行是可以动态调整的,但不管如何,客户对动态调整必然有一个可以忍受的范围,项目必须 close,并达到阶段目标。所以,这与作者所说的“项目的时间和预算都是动态调整的”,一点都不矛盾。

作者接着说,敏捷项目衡量成败的标准是:在合作的时间里,乙方能给甲方创造多大的价值 ...

Ok,“在合作的时间里”,这还不是指时间上的约束,“按时”?


还真不是时间上的约束; 约束是指提前知道的一个数值, 但作者的意思,合作时间明明就是可以动态调整的, 提前并不知道双方能合作多久


“乙方能给甲方创造多大价值”,请问 customer values 是什么东西?是可以凭空用嘴巴讲的吗?你说有价值就有价值,没价值就没价值?价值怎么样,应该用数据来说话。很多时候,带来多少客户价值,可以与财务指标联系起来,比如为客户创造了多少利润,节省了多少成本等等。所以,谈到价值本身,依然与预算有关。客户请你们开发,总有个成本、性价比要讲吧,不能超出预算太多。


原文也没说 "乙方能给甲方创造多大凭空用嘴巴讲的价值" 啊! 如何评定价值, 明明就是另外一个问题, 作者根本就没谈论这个问题, 怎么就凭空批判起来了阿?

关于“你”和“你们”,不必太敏感。 by Zhang Charlie

Lin Shao 说:

原文也没说 "乙方能给甲方创造多大凭空用嘴巴讲的价值" 啊! 如何评定价值, 明明就是另外一个问题, 作者根本就没谈论这个问题, 怎么就凭空批判起来了阿?


我说:

“乙方能给甲方创造多大价值”,请问 customer values 是什么东西?是可以凭空用嘴巴讲的吗?你说有价值就有价值,没价值就没价值?价值怎么样,应该用数据来说话。很多时候,带来多少客户价值,可以与财务指标联系起来,比如为客户创造了多少利润,节省了多少成本等等。所以,谈到价值本身,依然与预算有关。客户请你们开发,总有个成本、性价比要讲吧,不能超出预算太多。


说明一下,这里的“你”和“你们”是泛指,并不是专门针对作者,而是为了阐述道理的自然延伸,一种写作手法,你从上下文应该可以体会出来,没有必要太敏感。谢谢!

关于敏捷项目的工期约束 by Zhang Charlie


Lin Shao 说:

张恂说:

“按时按预算完成项目”,本身就隐含着项目的工期、预算执行是可以动态调整的,但不管如何,客户对动态调整必然有一个可以忍受的范围,项目必须 close,并达到阶段目标。所以,这与作者所说的“项目的时间和预算都是动态调整的”,一点都不矛盾。

作者接着说,敏捷项目衡量成败的标准是:在合作的时间里,乙方能给甲方创造多大的价值 ...

Ok,“在合作的时间里”,这还不是指时间上的约束,“按时”?


还真不是时间上的约束; 约束是指提前知道的一个数值, 但作者的意思,合作时间明明就是可以动态调整的, 提前并不知道双方能合作多久


我想,真实情况应该是,长期合作多久双方确实不知道,但双方短期合作的时间肯定是明确的,一定是一个“提前知道的一个数值”,这就是 limitation,比如签半年或一年,如果在固定的期限内,不合要求,那么就散伙。李默不是也说,“确定阶段时间内的开发力量”,并且“可以立即随时终止”?我不知道ThoughtWorks 是不是与客户一个月一签,或者客户可以随时随地地终止合同,如果签那么灵活的合同,操作起来还真有点麻烦。

租房还要付三押一呢,有哪个客户可能与开发商签“无固定期限”合同?那岂不成了卖身契?

林作家其实并未真的读懂李默案例 by Zhang Charlie


林芷薰 于 2007-12-11 3:20 写道:

正如“敏捷中国”讨论组的创始人李默在“客户协作 over 合同谈判”一文中所说:

“如果签订固定价格合同,客户会倾向于在这个价格内挤入更多的需求,而开发公司会希望在这里面减少成本。最终两方博弈的结果就是项目出了问题。这种情况下,更好的办法是单价合同,或者具体说,就是确定阶段时间内的开发力量,但不确定开发范围的收费方式。按照客户需求的优先级来开发,双方合作,尽最大的努力,频繁交付。这种做法的好处是,客户可以控制项目的长短。可以不停的做下去,也可以立即随时终止。由于双方的协作,开发公司也会按照自己的能力,尽最大可能来保证质量和进度。”

不难想象,在这种合作模式下,“按时按预算完成项目”已经不再是一个有效的衡量标准,因为项目的时间和预算都是动态调整的。


前面我已经分析过,为什么“按时按预算完成项目”仍然是一个有效的敏捷衡量标准(起码是最低标准),当然很可能不是全部的标准(还有更高标准)。

在这里,李默推荐客户采用单价合同,也就是:

“确定阶段时间内的开发力量,但不确定开发范围的收费方式。按照客户需求的优先级来开发,双方合作,尽最大的努力,频繁交付。这种做法的好处是,客户可以控制项目的长短。可以不停的做下去,也可以立即随时终止。”

这是什么方式?不就是人力外包的方式么,现在国内外很普通,很流行啊。比方说,我们签三个月(“阶段时间”),5 名开发人员(“开发力量”),每人每月 3 万元(“单价”),那么费用一共是 45 万元,等于说客户在这段时间内外聘了 5 名熟练员工来干活,如果产出还不少的话,当然是合算的。

这样的敏捷项目,3 个月 45 万,难道不是按时,按预算?它恰恰对开发商提出了按时按预算完成项目的要求。当然,完成的内容和范围可以是协商的,但其价值至少要值 50 万吧(其实回馈价值 50 万已经失败了,回报应该起码要在 200-300 万以上)。难道签了这样一份单价合同,开发商就可以不按时,不按预算了?按时、按预算完成无疑仍然是一个有效的考核标准,而客户获得的价值衡量也应该以预决算为基准。

在这种合作模式下,每个阶段项目的时间和预算(客户的计划支出)其实都是固定的,所谓的“动态调整”其实是指不同阶段的工期和预算支出可能有所不同,客户和开发商可以一个阶段一个阶段的来签单价合同。

如果开发商在这 3 个月内(或在今后更长的一段时间内考查,这里简化为 3 个月)为客户产出的价值不能明显地超出客户付出的成本 45 万,甚至不足 45 万(项目预算),那么显然这个项目入不敷出,是失败的。

所以,我很难理解,作者所说的:

不难想象,在这种合作模式下,“按时按预算完成项目”已经不再是一个有效的衡量标准,因为项目的时间和预算都是动态调整的。在敏捷项目中,衡量项目成败的标准是:在合作的时间里,乙方能给甲方创造多大的价值。而这也是甲方真正在乎的。


是基于什么样的逻辑。


拥有 14y+ 丰富开发经验的
敏捷 OO 顾问教练 张恂
www.zhangxun.com
竭诚为您提供专业服务

怪了,作者在搞什么,难道敏捷不是一种包容和谐的文化? by Zhang Charlie


林芷薰 于 2007-12-11 3:20 写道:

有人认为“敏捷其实更强调一种包容与和谐的文化”。事实是这样吗?从Ivar Jacobson的描述中似乎看不出敏捷是如此强调“文化”:

敏捷是关于以下三件事情的:敏捷是一门社会工程学。敏捷是轻量级的。敏捷提供技术实践

我们必须用新的观念来看待实践。我们不再谈论过程,实践已经取而代之,成为一等公民。过程仅仅是实践的组合。

看起来Ivar Jacobson更愿意把敏捷看作一组最佳实践的组合。毕竟正如ThoughtWorks中国公司总经理郭晓所说,“敏捷的目标是消除浪费”。而把它无限拔高成为一种“文化”对于企业消除浪费有什么实际的帮助呢?


首先我来认领一下,“敏捷其实是更强调一种包容与和谐的文化”这句话正是本掌门数日前在 InfoQ 中文站上的发言。有什么错吗?

林作家煞有介事地问道:“事实是这样吗?”怪了去了,我倒要反问:难道事实不是这样的吗?您认为的事实又是咋样的呢?

作者举出两位名家,Jacobson 和郭晓,的只言片语来作为可靠的论据。关于郭晓所说的“敏捷的目标是消除浪费”,后面我再评述,这里先谈 Jacobson。

Jacobson 说,敏捷是关于三件事,社会工程学,轻量,以及技术实践。请问林弟弟,你知道什么是社会工程学?社会工程学,不研究社会,研究文化,研究人与人之间的关系,还研究什么?

“看起来 Ivar Jacobson 更愿意把敏捷看作一组最佳实践的组合”,这可是你说的,你看起来的。如果 Jacobson 把敏捷只看成一组技术实践,那么肯定是片面和错误的。你可以去问问 Jacobson,他说的最佳实践组合,到底包不包括敏捷文化方面的实践?

再说了,为什么只有 Ivar Jacobson 的发言才叫事实?我们太极敏捷派掌门的发言就不是事实?

请问,Jacobson 发表过几本有关敏捷的著作?我们知道,他是 Use Case 和 RUP 大师,但他目前好像还不是敏捷的主要 Thought Leaders 之一吧(至少还没有获得普遍公认)。Agile UP 比 EssUP 出现早,那么请问 EssUP 与 Agile UP 有什么区别,是否比 Agile UP 更敏捷?Jacobson 所说的最佳实践组合与当前别人已经总结出来的敏捷最佳实践组合有多少不同?

再请问林弟弟,你又认真学习过几本敏捷经典(比如 Kent Beck、Alistair Cockburn、Jim HighSmith、Jeff Sutherland、Craig Larman 等等)?如果你还没有读过,没有实践过敏捷,没有学会如何与别人一起敏捷地工作,那么我告诉你一点有关敏捷的事实:

从现有的敏捷文献中,我们不难发现,敏捷至少包含三个部分:价值观、原则和具体的(实践)做法。敏捷的价值观、(做事)原则以及相关的理念、思想、哲学等一起构成了敏捷文化的基础。而敏捷的具体做法数量很多,而且大部分是 optional 的,应根据具体的适用环境和条件来有选择地进行应用。

这么多的敏捷实践(做法)缘何而来?正是为了实现、体现敏捷的价值观、原则 —— 敏捷文化!如果只记住了一些具体的敏捷实践,而忘记了我们到底要干什么(实现敏捷目标),这是本末倒置。

敏捷不是个别的、具体的实践,因为敏捷是一个整体的效果。你做到了 PP、CI、TDD 等几个实践,就真的敏捷了?未必吧。

敏捷文化才是敏捷的一等公民!

俗话说,无知者无畏。林弟弟,从你对包容、和谐的敏捷文化的无知和质疑来看,我觉得你至少没有做过 Team Leader,大概是一位刚参加工作不久的初级程序员吧。

事实是,目前你的逻辑分析能力与给你写序的 gigix 不相上下(一塌糊涂)。千万不要认为翻译了一两本时髦技术的书,自己就敏捷了,就专家了。建议今后要虚心加强学习,尤其是逻辑分析思维能力方面的锻炼。


拥有 14y+ 丰富开发经验的
敏捷 OO 顾问教练 张恂
www.zhangxun.com
竭诚为您提供专业服务

Re: 怪了,作者在搞什么,难道敏捷不是一种包容和谐的文化? by Jacky Li

芷薰姊姊不必与这干人计较,没得污了自己的眼睛

坚决拥护掌门的领导,一切非太极敏捷派都是纸老虎! by 冯 尚

最近在掌门面前大放厥词的人是越来越多了,实在想不明白,就这群跳梁小丑,也敢跟掌门说三道四的。也不看看他老人家是什么人?

“拥有14y+丰富开发经验”啊,一个人有多少个14y?更别提14y+了!所以掌门说话冲点怎么了?蛮横点又怎么了?这年头,经验就是资历,就是说话的资本!你们没这种资本的,在前辈面前,就要保持谦卑的心态才是。掌门是看得起你们,才屑于指着你们的鼻子骂人。俺们掌门说话的传统就是:不求最有理,但求最牛B!

“敏捷OO顾问教练”,看到了没有,你们知道什么是敏捷OO吗?俺这种智商低的人是不懂的,估计你们也不懂。那可是掌门他老人家集众家之长,呕心沥血,卧薪尝胆,披星戴月,废寝忘食,苦心孤诣,拔苗助长,南辕北辙,鸡鸣狗盗10余年,创造出来的啊!你们想想,掌门费了这么大工夫折腾出来的词,要是寻常人都能明白,掌门还靠什么忽悠人啊?哎呀,该死,我这是说啥呢?应该是,要是寻常人都能明白,掌门还靠啥混饭吃啊?唉,又犯傻了,把实话给抖搂出来了,掌门回去又该骂我了,就先这样吧,反正“敏捷OO”,那就是一盖世绝顶的词,是最牛B的词!是大海航行的舵手,是万物生长的太阳!左青龙,右白虎,老牛在腰间,神挡杀神,佛挡杀佛!

那个叫“Jason Lai”的,还含沙射影的污蔑俺们掌门,说掌门借你们InfoQ的地盘,给自己做广告!呀呀个呸的!!你也不想想,俺们掌门是什么人,在俺们太极敏捷派里,那可是无人不知无人不晓啊,人家都说,掌门的名字可止小儿夜啼的!虽然俺不懂这个说法是什么意思,但听上去就是很拽很二五八万的!看俺们派首页的访问量,多少年来,在掌门他老人家一直默默无闻,藉藉无名,惨淡经营,蝇营狗苟的辛勤耕耘下,已经达到了199998,再看看你们,十一月才213,003名独立访问用户,比俺们少了10000多,还好意思说俺们掌门给自己打广告!嗯,好像有点不对劲,不过俺不太会算数,就这样吧。但很显然,是掌门的降临让你们蓬荜生辉,给你们带动了流量!

记得有一篇新闻是关于“后敏捷时代”的 by 乔 梁

记得有一篇新闻是关于“后敏捷时代”的。可能就是想再讨论一下是否要个新名词来描述“原来意义上的敏捷”,或者萃取一下?

文笔太差,一点都不优美,故本派不拟采用,请回去闭关三年再来吧。 by Zhang Charlie

小冯,你还真的有空?

精力过剩是吧,有劲也该使在正道上,对不?

我的签名档:
支持 InfoQ !
拥有 14y+ 丰富开发和管理经验的
敏捷 OO 与 Use Case 顾问教练 张恂
竭诚为您提供专业服务
www.zhangxun.com
张恂信仰人本科学 研习释儒道 已练就金刚不坏之身 故请诸好事及红眼者省省力吧 不必再泼污 以免溅到自身 善哉 善哉

为什么敏捷项目可以按时按预算完成? by Zhang Charlie

敏捷项目采用迭代方式开发,对于 fixed-time、fixed-budget 的项目,敏捷团队会怎么做?敏捷项目可以缩减需求内容和范围,这是保证项目按时、按预算交付的关键。

我们知道,根据成熟的项目管理理论,time、cost(resource)、scope 和 quality 是软件开发项目中 4 个相互制约的主要因素。当 time、cost 固定后,通常 quality 要求是不可以降低的,这时唯一可以调整的变量是 scope。也就是说,如果敏捷团队提前发现,项目有可能不能按时、按预算完成时,他们将及时与客户协商,缩减开发内容,比如从开发任务中去掉、推迟一些次要的特性。这样,敏捷团队仍然可以保证按时、按预算完成项目。

由于敏捷团队采用短迭代,频繁地测量实际的开发速度,并与客户进行沟通,所以能够及时、尽早地发现问题,有效地控制和降低项目开发风险。所以,对于真正做到了敏捷的团队,基本上不可能发生拖到项目末期才爆发重大 surprise 的情况。

这些早已都是国际上的通行做法,最佳实践,大量案例证明了敏捷迭代方法的有效性。显然,最终结果严重超时、超支(比如超出 50% 甚至一倍以上)的项目肯定不是敏捷的,说明这个项目已经失控,而开发团队未能很好地控制项目风险。


林芷薰 于 2007-12-11 3:20 说:

另一种对敏捷的置疑之声是关于实施敏捷的效果的:

我们经常看到一些号称 Agile 的国内项目,按照菜谱、操作指南和教父语录的提示,采用了许多花哨的技巧和实践(做法),是啊,表面上确实 Agile 了,那么结果呢?项目还是不能按时完成,甚至严重超支和超时,这能叫“敏捷”吗?

可以看出,一些对敏捷缺乏了解的同行和甲方代表又把这个时髦的新词汇当作了万灵药:按照他们的逻辑,如果做好了敏捷,项目就一定能够按时完成,预算也不会超支的。首先,不难看出这是一个无法兑现的承诺:开发团队是有其能力极限的,超出他们能力极限的项目无论如何也无法按时按预算完成,不管用不用敏捷。如果把敏捷当作一种宗教信仰来看待,认为项目不成功就一定是没有做好敏捷的话,就可能让真正的问题从眼前滑过。


不知道林作家作出这样的评论,是基于什么样的逻辑,是否真的看懂了张恂的论点和逻辑。

他认为张恂的这段话,“不能按时完成,严重超时超支的项目不是敏捷”,是对敏捷的置疑之声。这看上去很滑稽。显然,张恂是在质疑号称“敏捷”,结果却不敏捷的项目,因为敏捷不敏捷,首先应该看实际的效果,项目、团队是否真正做到了“灵敏”与“快捷”。而质疑“假敏捷、伪敏捷”,与质疑“敏捷”,当然不是一码事。

看来,分歧出在判断敏捷的标准上。难道林作家认为“严重超时超支”的项目也算敏捷?他的理由是:

“开发团队是有其能力极限的,超出他们能力极限的项目无论如何也无法按时按预算完成,不管用不用敏捷”

不错,每个开发团队的确有其能力极限,问题是当敏捷团队发现项目超出了能力极限(最大的开发速度),预计无法按时按预算完成时,他们会怎么做,采取哪些行动?

通常,这时敏捷团队会和客户沟通,商量对策。如果客户同意延长工期,或增加预算(包括增加人手),那么自然皆大欢喜,项目最终还是能够按时按预算完成(根据调整后的工期和预算执行)。如果客户不答应延期,必须 fixed-time、fixed-cost,那么按照我前面的分析,通常只有两个办法,降低发布的质量,或缩减交付内容。如果客户又不答应这两项措施,该这么办呢?我想,敏捷团队这时应该衡量一下得失,以决定这个项目是否还值得做下去。

由于通常敏捷团队在项目进行到 1/3 或一半(工期过半,或支出过半)的时候,就能比传统团队更准确地判断出项目能否如期完成,是否超出了自己的能力极限。因此,即便在此时停止继续开发,也不会发生严重超时、超支的情况。

张恂从来不认为,采用了敏捷方法,项目就能 100%(一定)成功、按时按预算完成,张恂说的是“可以”或“极有可能”。科学技术不是万能的,敏捷方法自然也不是万灵药。而什么叫“按时、按预算”完成项目?这个概念本身就包含了一段客户允许的误差范围。重要的是,由于采用了更为科学和有效的方法,敏捷团队在大多数情况下比传统团队风险更小,更容易取得成功。

真正做到了敏捷(灵敏、快捷)的项目,与声称采用了若干敏捷实践(做法)的项目,显然是有所区别的。你做到了某些敏捷实践,未必代表你能让整个项目的运行敏捷起来。一个项目实施了“敏捷”,效果却不敏捷,这算什么逻辑?

可见,林作家的“一种对敏捷的置疑之声是关于实施敏捷的效果的”以及“超出他们能力极限的项目无论如何也无法按时按预算完成,不管用不用敏捷”等等,恰好说明:林作家对于软件项目管理和敏捷迭代开发的基本常识,乃至什么是真正的敏捷,缺乏真正的理解。

我的签名档:
支持 InfoQ !
拥有 14y+ 丰富开发和管理经验的
敏捷 OO 与 Use Case 顾问教练 张恂
竭诚为您提供专业服务
www.zhangxun.com
张恂信仰人本科学 研习释儒道 已练就金刚不坏之身 故请诸好事红眼者省省力吧 不必再泼污 以免溅到自身 善哉 善哉

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

14 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT