`

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

阅读更多

缘起
(立项时)

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

乙:“到时候再说。”

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

乙:“预先定义的流程和模板未必适用,敏捷开发崇尚推迟决策,只有在具体工作之前才能决定是否写,怎么写最好(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
分享到:
评论

相关推荐

    敏捷软件开发:原则、模式与实践(Agile.software.development:Principles,Patterns,and.Practices)中英版

    敏捷宣言是其核心,包括四个价值观:个体和互动高于流程和工具,可工作的软件高于详尽的文档,客户合作高于合同谈判,以及响应变化高于遵循计划。 2. **原则**:书中提出了12条敏捷开发原则,如“我们的最高优先级...

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

    敏捷软件开发是一种注重快速反应和持续交付价值的软件开发方法论。这种方法论强调人、软件、合作和灵活性比过程和工具更为重要。敏捷开发的流行得益于其适应性和高效性,尤其在需求频繁变更、市场竞争激烈和技术快速...

    敏捷软件开发:原则、模式与实践(带书签+源码)

    《敏捷软件开发:原则、模式与实践》是一本深度探讨敏捷开发理念和技术的权威著作,由业界知名专家Robert C. Martin(简称Uncle Bob)撰写。这本书不仅提供了丰富的理论知识,还结合实际案例,深入浅出地介绍了如何...

    敏捷开发流程

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

    敏捷软件开发:原则、模式与实践清晰扫描中文版PDF(503页完整版)

    本书《敏捷软件开发:原则、模式与实践》是由全球知名的软件开发专家和软件工程大师Robert C. Martin所著,该书是关于敏捷开发与极限编程的综合性、实用性指南。书中深入探讨了软件开发人员、项目经理以及软件项目...

    敏捷软件开发:原则、模式与实践(带书签,源码)

    《敏捷软件开发:原则、模式与实践》是一本深度探讨敏捷开发理念、方法和技术的权威著作。这本书由著名软件开发专家Robert C. Martin撰写,旨在帮助开发者和团队更有效地进行软件开发,提升软件项目的成功率。书中...

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

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

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

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

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

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

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

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

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

    在本书中,享誉全球的软件开发专家和软件工程大师Robert C.Martin将向您展示如何解决软件开发人员、项目经理及软件项目领导...这本综合性、实用性的敏捷开发和极限编程方面的指南,是由敏捷开发的创始人之一所撰写的。

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

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

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

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

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

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

    敏捷软件开发:原则、模式与实践(全)

    敏捷软件开发:原则、模式与实践(全) 敏捷软件开发:原则、模式与实践(全) 敏捷软件开发:原则、模式与实践(全) 敏捷软件开发:原则、模式与实践(全) 敏捷软件开发:原则、模式与实践(全)

    敏捷软件开发:原则、模式与实践(高清PDF)

    敏捷软件开发:原则、模式与实践(高清PDF)

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

    敏捷软件开发是现代软件工程领域的一项重要实践,它倡导快速迭代、持续集成和对变化的迅速响应。敏捷软件开发的主要目的在于提高软件质量和交付速度,同时更好地满足客户需求和应对变化。敏捷开发的核心是一系列原则...

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

    读者可以从中学习到Martin的实用技术和流程,理解如何应用敏捷开发解决复杂问题,以及如何在实际开发中使用设计模式和极限编程来提升软件的质量和开发效率。 综上所述,敏捷软件开发作为一种以快速响应变化、持续...

Global site tag (gtag.js) - Google Analytics