推行敏捷要从 CI 开始?InfoQ 文章:跌跌撞撞的持续集成之路 作者 仝键 发布于 2008年9月18日 上午12时19分 在 AgileChina讨论组里,每隔一段时间总会有一个重复的问题——我应该从哪开始推行敏捷。答案往往都是“从持续集成开始”。可是实际做起来并不像说起来这么简单。这简单回答的后面是一条艰难的历程。 推行敏捷应该从哪开始,显然这是一个敏捷 FAQ。但为什么在 AgileChina 讨论组里,正如仝键的发现,答案往往都是“从持续集成开始”呢? 这是一个有趣的问题,我试着来解答: 很可能是因为你接触的大概都是像 Jeff Xiong 这样的 TW 员工,或者他们的追随者及其亲朋好友们吧。大家都围绕着 TW 的方法和产品来谈敏捷,自然容易得出这样一个印象了。 听说 AgileChina 是由几位 TW 员工在业余时间举办的,而“推行敏捷从持续集成开始”也是熊节(Jeff Xiong)所推荐的吧,InfoQ 上好像有相关的文章。 众所周知,CC 和 Cruise 等是 ThoughtWorks 公司著名的持续集成工具产品。无论是否有组织,TW 及其员工推销自己公司的理念、方法和工具产品,无可厚非,很正当。 关键一点:我们应该分清什么是市场宣传,什么是科学的结论。很多时候,市场宣传(如广告)合情合理,但不一定科学和客观。而“推行敏捷从持续集成开始”,在我看来更像是一种主观的市场宣传和劝导,而不是客观、科学的结论。 “推行敏捷从 Practices 开始”或者“推行敏捷从 CI 开始”,可能问题还不大,但如果有人把它们理解成“推行敏捷最好从 CI 开始”或者“推行敏捷一定要从 CI 开始”肯定是错误的。 推行敏捷从理解敏捷开始那么,推行敏捷应该从哪里开始呢? 这个问题可能有许多种答案,“推行敏捷从理解敏捷开始”应该是其中一个比较正确和可靠的答案。推行敏捷时,如果连什么是真正的敏捷,实施敏捷到底意味着什么,都没有搞清楚,那么在错误理解敏捷的基础上推行敏捷还有可能成功吗?当然不可能(或者可能性很小)。这显然是每个人理应都明白的废话。 尽管“推行敏捷应该从理解敏捷开始”是废话,但是网络(包括 InfoQ)上公开出来的许多敏捷实施失败案例,导致失败的根本原因恰恰是因为敏捷的推行者、实施者(尤其管理者)错误理解了敏捷,有的做法甚至明显偏离了敏捷的基本目标和价值观,而他们依然自信满满地认为自己对什么是敏捷相当了解。这就是我们要始终不断地重复强调废话的原因。 推行敏捷从哪里开始?简单说,中式太极敏捷认为一种可行的、比较合理、符合逻辑的步骤(或阶段)是: 1、认清真正的敏捷 通过学习和调研,认清什么是真正的敏捷。如果一些基本初始概念就错了,那么在后续的推行中必然会差之毫厘、谬之千里,希望通过真正的敏捷实施提高开发效率和质量,比传统软件工程做得更好,也就无从谈起了。 2、预估推行敏捷的收益 在确认知道什么是真正敏捷的前提下,对自己团队、组织的现状、问题和薄弱环节进行评估,设定改进目标,并预估敏捷能否解决这些问题,带来哪些潜在的改进和收益。如果成功的把握小于 50% 或者现状已经足够好,就不要推行敏捷,何必劳民伤财,得不偿失呢。 3、采取具体措施推行敏捷 到了这个时候,才谈得上具体采用敏捷的哪种具体做法,从哪个点、薄弱环节切入进行改进,是敏捷需求,敏捷估算,敏捷计划,敏捷设计,敏捷测试,还是持续集成,或者其它 ... 敏捷 Practices 有几十种之多,CI 仅是其中的一种,而且从软件工程工艺的上下游关系看,CI 也不是应该优先考虑的敏捷实践。 如果问的是,推行敏捷做法从哪一种做法开始?可靠的答案是:不知道。不同的公司,不同的团队,遇到的实际问题和困难不尽相同,脱离具体环境,我们其实很难给出一个明确的答案,究竟推行敏捷从哪一种或哪几种做法开始,往往取决于对企业现状评估的结果。如果非要张恂给出一个首先项答案,我想一开始应该也不会包括 CI。 持续集成仅仅是推行敏捷起步的一个可选项,并非必须的。如果你们公司真的是因为软件集成频度不够出现了严重的问题,那么推行持续集成,大幅度提高集成频度,缩短集成周期至几小时以内,才有可能是合理的。 XP 是敏捷的,但敏捷不是 XP。认为一旦推行敏捷,就必须要做到 XP(或 XP 的某些做法),是一种常见的误解,受到了某些不恰当 marketing 的误导。推行敏捷方法、敏捷过程,其实有很多除 XP 及其措施之外的可选项和可行方案,包括 Scrum、Lean、AgileUP、中式太极敏捷以及各种自制的敏捷方法等等。 敏捷也不是某种具体的做法(practice),敏捷不是 TDD,不是 PP,也不是持续集成。在缺乏对敏捷和软件工程基本原理正确理解的情况下,盲目地推行某种敏捷甚至极限的具体做法,往往会导致幼稚的失败。 敏捷中华 vs 敏捷中国最后,关于 AgileChina 的身份问题。正如这些年来国内涌现出来的许多标有“中国”、“china” 标签的各种软件技术社区论坛一样,AgileChina 也不是一个什么权威的行业组织和官方组织,仅仅是一些技术兴趣爱好者的自娱自乐行为吧。鉴于此,我们也正拟成立发起一批“敏捷大中国”、“敏捷大中华”、“敏捷华夏”、“敏捷神州”乃至“敏捷宇宙”等社区(你还能比我大吗?joking),以进一步弘扬我中华知识健儿的豪迈气概和大无畏、大一统精神。 所以我觉得,不要认为来自 AgileChina 专家、网友的观点、意见就一定怎么样,代表了何种水平。从 AgileChina 或者其它地方,获得的“推行敏捷从持续集成开始”的印象或结论并非一个科学的结论,可能仅仅是一种宣传,市场推广宣传的结果。 |
|
|
为什么推行敏捷非要从 CI 开始?
作者/发帖:张恂 字数:2618 点击: 752 路径:NewsAID/54
创建时间:2008-9-18 16:48:24 上次编辑时间:2008-10-14 14:31:59