`

敏捷开发心法之无住

阅读更多

无住
在般若敏捷系列中已经提过,包括不住于法,不住于空。

不住于法
就是不停留在一种固定的方法上。

如果把“敏捷”理解成一个名词,就会出现一个问题:什么是敏捷?又会扩展成Scrum是敏捷,还是XP是敏捷?RUP是不是敏捷?等等问题。

如果把“敏捷”理解成一个形容词,也就是“敏捷的开发方法”,大致能找到敏捷新的定义:敏捷是一种轻量级的开发方法。

如果把“敏捷”理解成一个副词,也就是“敏捷地开发”,就会找到一个更新的定义:敏捷就是不拘泥与形式不断优化地改进开发方法。

用最后一个理解看待开发,敏捷方法的定义就有很大不同。

比如CMMI,如果CMMI1.3修订之后更加适合美国国防部寻找适合的供应商开发军工项目(CMMI是美国国防部的供应商评价标准,而不是一个学术机构总结的通用最佳实践),那么CMMI就很敏捷;而一家企业已经实施Scrum很久了,但其质量、进度与日剧减,但大家坚持使用原汁原味的Scrum,那么反而很不敏捷。

那为什么现在的敏捷方法看起来更像是“轻量级的开发方法”呢?这是因为重量级的敏捷开发方法早就有了(最早的软件工程始于军工、航空航天、银行业),其他行业比如敏捷宣言发表时乃至今日仍盛行的互联网行业却一直没有方法。当他们“敏捷地”寻找的时候,找到了“敏捷的”方法。

但如果以为已经找到了就停了下来,就不敏捷了。

不住于空
“既然敏捷开发也不是最好的方法,那我们何苦要用敏捷方法呢?”“去年你们推CMMI,今年又推敏捷,明年天知道你们又会推什么方法(所以我打算不配合)”。

因为世界上没有绝对最好的编码规范,所以你们别说我的编码烂;因为世界上没有最好的管理方法,所以你们也别说我的方法乱;因为世界上没有绝对的好人,所以且容我再当一次坏人……这是很多人处世的哲学,开发团队也不乏这样的“老油条”“刺头”。

如果把“好”当作一个点,的确没有一种方法只好不坏。但如果把好当作一个方向,那么眼前,这里,这个项目,这个团队,的确有一些方法比另外一些方法好。虽然不是普适的最佳方法,但仍然值得追求。

不住于空,就是尽管没有最好的方法,但是不能因此放弃寻找更好的方法。


以往研发管理的教训
这里不得不提一下以往软件研发管理的教训,尤其是推广CMMI时的教训。

“为什么牛奶要检测氮含量?”“因为氮含量高,就意味着有更多的蛋白质,因而对人体更加有益。”如果把后两句给忘了,就产生了往牛奶里边添加三聚氰胺的做法。

昨天一个学员就提到说他们企业坚持要他们编写一些文档,而他们明明知道这些文档被扔在那里从来没有人看过,不写又不行,问应该怎么办(这个将是1001问系列中的一个问题)。

很多软件企业中的文档、评审、计划、会议并没有起到应有的作用,但却被盲目地坚持着。人们对这些方法的关注甚至超过了最终项目的成败和企业的盈利能力(神奇的是,美国国防部通过对这些方法的关注而大大提高了项目的成功率,但要认为我们只需要学习他们就能成功,则住在法上了)。

重读敏捷宣言
敏捷宣言中关于可运行软件胜过繁杂文档 及 响应变化胜过遵循计划的描述,说的就是这件事情。

不过,为了通俗易懂,敏捷宣言把“敏捷地找到”的方法贴出来了,所以变成了“敏捷的方法”,如果住在上面,就会出问题。

这就像“打土豪分田地”是一个通俗易懂的口号,但如果认为这就是共产主义,等土豪没了,田地分了,也就迷茫乃至要走上歧路了。


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

相关推荐

    敏捷开发 敏捷开发 敏捷开发 敏捷开发

    "敏捷开发 敏捷开发 敏捷开发 敏捷开发"这个标题多次提及敏捷开发,表明其重要性和讨论的焦点。 描述中重复的“敏捷开发敏捷开发”,进一步强调了这一主题的重要性,暗示内容可能涵盖了敏捷开发的各种方面,如原则...

    敏捷开发知识体系

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

    系统分析师-敏捷开发方法

    本文将论述敏捷开发方法在系统分析师中的应用,通过实践证明,在项目的开发中采用合适的敏捷开发方法可以有效地缩短开发时间,提高产品质量。本文将从以下几个方面论述敏捷开发方法的应用: 一、极限编程的应用 ...

    敏捷开发的艺术

    本书为那些正在考虑应用敏捷开发来构建有价值软件的人们提供了实用的指导。现在已经有大量的书籍描述敏捷开发是什么或者为什么它能帮助软件项目成功,但很少有哪一本书能把针对开发者、管理者、测试者和客户的信息...

    敏捷开发,敏捷开发,敏捷开发,敏捷开发

    - **结束了吗**:敏捷之旅永无止境。 通过以上内容的详细介绍,我们可以看到,敏捷开发不仅是一种方法论,更是一种思维方式和工作习惯。对于希望提升开发效率和产品质量的团队来说,掌握这些习惯和技巧至关重要。

    软件项目管理论文:敏捷在软件开发中的应用

    本文从敏捷方法的定义,提出背景,实施方法等方面对敏捷方法进行描述,并与传统软件工程方法相对比,分析敏捷开发的优劣。通过实际软件开发的案例分析软件生产的价值观,得出敏捷方法在软件开发中的价值。关键词:...

    轻松Scrum之旅:敏捷开发故事

    敏捷开发是软件开发领域的一种方法论,旨在应对传统软件工程理论中存在...本书《轻松Scrum之旅:敏捷开发故事》是一本关于敏捷开发的实践经验和方法论的书籍,旨在帮助读者更好地理解和掌握敏捷开发的思想和实践经验。

    敏捷开发pdf学习敏捷开发的资料

    **敏捷开发:一种创新的项目管理方法** 敏捷开发是一种应对快速变化需求的软件开发方法论,它强调灵活性、协作性和客户参与。源自2001年发布的“敏捷宣言”,敏捷开发的核心理念是人与交互优于过程与工具,可工作的...

    敏捷开发知识体系--高清版.pdf

    为了满足您的要求,我将从“敏捷开发”的相关知识体系出发,详细阐述敏捷开发的基本概念、原则、实践方法以及敏捷开发在现代软件开发中的重要性和应用。 敏捷开发是一种强调快速、灵活、迭代和协作的软件开发方法。...

    SCRUM(敏捷开发模式)演讲PPT

    根据提供的文件内容,以下是关于SCRUM(敏捷开发模式)的相关知识点: ### 软件过程 软件过程是指为了构建高质量软件所需完成的任务框架。它包括一系列步骤,如定义任务工作步骤、中间产品、资源、角色、方法、工具...

    敏捷开发之通俗理解

    ### 敏捷开发之通俗理解 #### 一、敏捷开发的本质与特点 敏捷开发并不是一个严格意义上的完整开发模型,而更多地体现为一种思维方式或哲学。它并不像传统的瀑布模型那样,有着固定且详细的阶段划分及流程规范。...

    Web开发敏捷之道--应用Rails进行敏捷Web开发 之 Depot代码。

    标题中的“Web开发敏捷之道--应用Rails进行敏捷Web开发 之 Depot代码”表明这是一个关于使用Ruby on Rails框架进行敏捷Web开发的示例项目,名为Depot。Ruby on Rails(简称Rails)是一个开源的Web应用程序框架,它...

    敏捷开发之实践总结啊

    敏捷开发是一种快速响应变化、以用户需求为中心的软件开发方法论。它强调团队协作、迭代式开发和持续改进,旨在提高软件项目的效率和质量。在本文中,我们将深入探讨敏捷开发的核心理念、实践策略以及其在实际项目中...

    敏捷软件开发书籍 pdf

    敏捷软件开发书籍合集,包括: [Scrum敏捷软件开发] [The.Pragmatic.Bookshelf开发丛书-敏捷开发回顾:使团队更强大] [The.Pragmatic.Bookshelf开发丛书-敏捷开发指导] [敏捷开发修炼之道] [用户故事与敏捷方法]

    【高清完整pdf】高效程序员的45个习惯 敏捷开发修炼之道

    本书名为《高效程序员的45个习惯 敏捷开发修炼之道》,由Venkat Subramaniam和Andy Hunt两位作者共同撰写。书中所提到的45个习惯,不仅涉及软件开发过程、编程和调试工作,还包括了开发者的个人态度、项目和团队管理...

    敏捷软件开发.pdf

    敏捷软件开发是一种以人为核心、迭代、循序渐进的软件开发方法。它强调快速和灵活地响应变化,以适应不断变化的需求。敏捷方法反对繁重的文档和过度的预设计,提倡可适应性、可持续性和持续的客户合作。 书中,...

    敏捷开发管理试题及参考答案.pdf

    敏捷开发是一种快速响应变化、强调灵活性和协作性的软件开发方法论。它主要针对那些需求频繁变化、不确定性高的项目,尤其适合小型、创新性强的项目。敏捷开发的核心价值观包括个体和互动高于流程和工具、可工作的...

    力软Learun敏捷开发框架源码v7.0,开发手册

    力软Learun敏捷开发框架是一款基于.NET技术的低代码开发平台,专为加速Web应用程序的构建而设计。它提供了一整套功能,包括代码生成器、通用权限管理、工作流引擎、即时通讯、微信集成、自定义报表以及BI大屏展示等...

Global site tag (gtag.js) - Google Analytics