`

敏捷开发智慧四:定不定流程和模板?

阅读更多

缘起
(立项时)

甲:“你们的设计文档打算怎么写?”

乙:“到时候再说。”

甲:“应该有规范的开发流程和模板,才能写好设计文档。”

乙:“预先定义的流程和模板未必适用,敏捷开发崇尚推迟决策,只有在具体工作之前才能决定是否写,怎么写最好(maximizing the amount of work not done)。”

甲:“你们组才3个人,能比组织级定义的流程和模板还好吗?”

敏捷开发定不定流程和模板?
先把话说绝点:敏捷开发不定义流程,不定义模板。为什么呢?

因为如果预先定义了流程,比如“必须写需求,需求评审过了才能写设计……先检查测试环境,测试标准定好了才能开始测试……”以及模板,则在千变万化的项目进展中,就极有可能多写了本可以不写的文档,多做了本科避免的事情,或者虽然没有“多”,但是形式却不合适。

这个道理如此简单,为什么前人却经常喜欢定流程和写模板呢?我们来看看CMMI的情况。

CMMI是最喜欢定流程和写模板的(组织过程焦点过程域OPF负责定期不定期地发现哪里有可改进的地方,而组织过程定义OPD则负责将其制定并宣贯下去),不但如此,还派出过程与产品质量保证人员PPQA检查实际情况与过程或产品标准的偏差。

CMMI这种工作方式哪里来的呢?

原来,CMMI是美国国防部的招标标准(CMMI3级及以上才能成为其供应商)。长期以来,军工、航空航天等领域保持了非常高的质量和产量(两者都远远高于我们熟悉的消费电子和互联网行业),而其首要目标,就是继承已有的成果,也就是按已有的流程和模板做。偶然有所创新,但其价值与继承已有成果不可同日而语,所以没有人会颠覆性地采用新的未经证实的流程或模板。对质量和产量的追求,驱使其整体持有保守的态度,这甚至会影响到其供应商的研发策略,比如IBM。

而另外一些行业则正好相反,比如热销的苹果手机,多年来业务不断变化的Google等。

首先这些行业有自己对质量的定义,比如不是可靠性99.9999%,而是易用性、操控性;其次其产量也不来自于标准的规模化的生产,而是来自于其创新性引发的市场反应和用户主动追逐。尽管这不影响苹果有自己的生产规程,Google也有自己的编码规范,但其价值与随时创新不可同日而语。这就引发了这些企业一致性地采用敏捷开发方法(日后会讨论“什么是敏捷开发方法”,进而会涉及“到底NASA、Boeing、Apple、Google谁在用敏捷开发方法”的问题)。

因此,不同行业基于不同价值观产生了不同的流程和模板理念,他们没有孰优孰劣之分,只有适合与不适合之分。

我的行业/项目/团队适合不适合定义流程和模板呢?
没有人比“我”更熟悉我的行业或项目了,所以这个问题不用问。

不定义流程和模板,可能会受限于团队的能力而把本可以做好的事情做差;定义流程和模板,可能会限制发挥或导致生搬硬套劳而无功。

两害相权取其轻,自然会发现答案在哪里。

或许由于项目、团队的不同,每次会得到矛盾的答案,这不稀奇也不奇怪,每次都是最好的答案就可以了。

“定不定流程和模板”的常见做法
敏捷开发过程与模板

多数企业做敏捷开发培训与咨询的目的,都是为了形成相对稳定、统一的敏捷开发过程,因此过程与模板是应该有的。否则连Scrum Master都不知道自己要维持的秩序是什么样子的。

但是,在使用过程与模板的时候,不应该执着,而应该灵活。

动态使用的原则

不知道大家是否发现一个规律,就是每个产品都会有出现,兴起,鼎盛,衰落……这个过程,而打败他们的,往往是另外一个新兴的但却更简单的产品。究其原因,在初期由于老客户不断的要求,新产品的功能都会不断增加;增加了功能的新产品,增强了竞争力,因而也就更热卖;但产品复杂度到了一定程度,使用这个产品的门槛也就越来越高,新用户就越来越不接受这个产品了,市场反而被简单的产品所抢走。(详情参考产品之六爻:http://blog.csdn.net/cheny_com/article/details/5872882)

过程与模板也是如此,对老团队而言,在不断改进和细化;而新团队的门槛却节节攀升,最终造成在整个企业推广的时候,面临重重阻碍。

因此组织应该分层、分阶段地部署过程与模板,而Scrum Master也要随机应变地维持秩序。

这一点对Scrum Master的要求极高,因为”随机应变“不是被动的,就是看什么能推动就推什么,而是主动的,就是发现团队有什么问题,就知道流程和模板中哪些内容是用来解决这个问题的。


ref:http://blog.csdn.net/cheny_com/article/details/6940931
分享到:
评论

相关推荐

    敏捷软件开发:原则模式与实践

    书中不仅阐述了敏捷开发的理论基础,而且提供了大量的可复用的C++和Java源代码,这对于从事软件开发的人员来说,具有很高的实用价值。 本书详细讲解了如何采用极限编程(Extreme Programming, XP)的方法来进行软件...

    敏捷开发流程

    ### 敏捷开发流程详解 #### 一、敏捷开发概览 **敏捷开发**是一种以人为核心、迭代、循序渐进的软件开发方法。它强调团队合作、快速响应变化和持续交付高质量的产品。与传统的瀑布式开发模型相比,敏捷开发更加...

    敏捷开发Excel模板-计划、看板和燃尽图

    敏捷开发Excel模板,sprint计划、任务可视化看板和燃尽图,根据任务进度和完成情况,动态更新燃尽图 项目实际使用分享,可以作为没有费用预算的项目使用,或者作为学习参考

    敏捷Scrum开发流程培训总结.docx

    Scrum是一种敏捷开发框架,它强调灵活性、协作和持续改进,以适应快速变化的业务需求。在Scrum中,团队遵循一系列原则和实践,以提高效率、质量和客户满意度。 敏捷宣言是敏捷开发的核心,它强调人际关系、工作软件...

    敏捷软件开发实践估算与计划 Mike Cohn

    10. **敏捷价值观与原则**:敏捷宣言提出了四个核心价值观:个体和互动高于流程和工具;可工作的软件高于详尽的文档;客户合作高于合同谈判;响应变化高于遵循计划。这些价值观指导着敏捷实践中的所有决策。 这本书...

    敏捷软件开发原则、模式与实践.pdf

    敏捷开发的核心价值和原则主要通过《敏捷宣言》及其十四条原则来体现,本书则进一步对这些原则进行了实践性的阐释。 在敏捷软件开发中,模式的理解和应用是至关重要的。模式是指在特定上下文中针对特定问题反复出现...

    项目管理-敏捷开发模板.xlsx

    一般公司引进敏捷开发模式都需要一个大的Backlog(敏捷开发面板),但是如果公司没有这个条件,怎么实现类似敏捷的面板的管理方式呢。 在我的项目中,使用了EXCEL制作了一个电子敏捷开发面板。可以让你很方便的采用...

    敏捷开发回顾:使团队更强大

    敏捷开发回顾:使团队更强大敏捷开发回顾:使团队更强大

    产品敏捷开发流程说明.pdf

    Scrum敏捷开发流程是一个迭代式开发过程,强调团队协作、快速响应变化和不断改进。 1. 角色及职责 * 产品负责人(PM):主要决定每个迭代要开发的功能,并在每个迭代结束评审交付项是否符合要求。在产品开发流程...

    敏捷软件开发:原则 模式与实践 C#版

    本书中,享誉全球的软件开发专家和软件工程大师RobertC.Martin深入而生动地使用真实案例讲解了面向对象基本原则、重要的设计模式、UML和敏捷实践等程序员必备的知识。本书于2003年荣获第13届Jolt大奖,是C++和Java...

    敏捷开发的艺术

    现在已经有大量的书籍描述敏捷开发是什么或者为什么它能帮助软件项目成功,但很少有哪一本书能把针对开发者、管理者、测试者和客户的信息合并成一个整体,从而使其能够直接应用。, 本书为敏捷的计划、开发、交付和...

    敏捷开发知识体系

    《敏捷开发知识体系》面向敏捷实践者学习敏捷知识和敏捷软件开发企业进行敏捷转型的需要,旨在帮助个人更快地掌握敏捷开发知识,帮助企业更好地实施敏捷转型。主要内容包括:敏捷开发的哲学理念、价值观、敏捷开发...

    敏捷开发实施流程

    全面的敏捷开发实施流程信息,供刚开始的实施敏捷开发的团队了解Scrum敏捷

    Flash敏捷开发:快速学习敏捷软件开发

    ### Flash敏捷开发:快速学习敏捷软件开发 #### 敏捷软件开发概述 敏捷软件开发是一种迭代的方法论,用于管理新软件开发项目的过程。它强调快速响应变化、客户满意度以及持续改进。与传统的瀑布模型不同,敏捷方法...

    敏捷软件开发:原则、模式与设计.pdf

    敏捷软件开发:原则、模式与设计.pdf敏捷软件开发:原则、模式与设计.pdf

    Scrum敏捷开发培训_敏捷开发_敏捷开发流程_scrum敏捷技术_scrum_

    - **敏捷价值观**:敏捷宣言中提出了四个核心价值观:个体和互动高于流程和工具,可工作的软件高于详尽的文档,客户合作高于合同谈判,响应变化高于遵循计划。 - **敏捷原则**:包括尽早并持续交付有价值的软件,...

    敏捷开发培训(员工)+文档+PPT

    敏捷开发是一种快速响应变化、强调迭代和协作的软件开发方法论。它源于2001年发布的《敏捷软件开发宣言》及其12条原则,旨在提高软件开发效率,提升团队生产力,确保产品能够满足用户需求并及时适应市场变化。本培训...

    敏捷软件测试:测试人员与敏捷团队的实践指南

    Lisa Crispin 和 Janet Gregory 是敏捷测试领域的权威专家,她们在《敏捷软件测试:测试人员与敏捷团队的实践指南》一书中详细阐述了敏捷测试的实践方法、理念以及测试人员在敏捷开发中的角色和职责。 在敏捷测试中...

    敏捷开发:C++ 敏捷开发:挑战、工具、与实践

    2. **技术细节**:C++ 语言本身的复杂性和特性(如模板、宏等)使得实现敏捷变得更加困难。 3. **构建速度**:由于 C++ 的编译时间较长,如何提高构建速度成为一大难题。 4. **复杂性**:C++ 支持多种编程范式,这...

Global site tag (gtag.js) - Google Analytics