`
love~ruby+rails
  • 浏览: 849077 次
  • 性别: Icon_minigender_1
  • 来自: lanzhou
社区版块
存档分类
最新评论

敏捷开发中常见的九大误解

阅读更多

 一、敏捷是“一个”过程

    敏捷不是一个过程,是一类过程的统称,它们有一个共性,就是符合敏捷价值观,遵循敏捷的原则。

    敏捷的价值观如下:

    个体和交互 胜过 过程和工具    ??

    可以工作的软件 胜过 面面俱到的文档

    客户合作 胜过 合同谈判    ??

    响应变化 胜过 遵循计划    ??

    由价值观引出的12条敏捷原则:   ??

    1、我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。??

    2、即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。??

    3、经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。??

    4、在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。??

    5、围绕被激励起来的个体来构建项目。给他们提供所需的环境和支持,并且信任他们能够完成工作。??

    6、在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈。??

    7、工作的软件是首要的进度度量标准。??

    8、敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。??

    9、不断地关注优秀的技能和好的设计会增强敏捷能力。??

    10、简单——使未完成的工作最大化的艺术——是根本的。??

    11、最好的构架、需求和设计出自于自组织的团队。??

    12、每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。    ??

    建立敏捷联盟的17位大师所创立的敏捷方法包括:极限编程,Scrum,特征驱动开发,动态系统开发方法,自适应软件开发,水晶方法,实用编程方法。这些方法统称为敏捷方法。    ??

    其实每个人都可以从敏捷宣言和原则出发,明确问题,找出一些解决方法,形成自己的过程。我觉得国内的软件环境这么复杂,程序员的自主精神又这么强,敏捷方法应该是在中国首先提出才对,只是国人都有唯标准唯规范至上的心理定式,即使找出好办法,也觉得不规范,没有深入形成理论,无法提升高度,始终是跟着鬼子屁股后面走,我想这也是国外软件行业不成熟的表现之一吧!?

内容导航

    二、敏捷仅仅是一个软件过程

    如果仅仅从软件过程的角度去认识敏捷实施敏捷,效果不会太好。敏捷相对以前的软件工程最大的革新之处在于把人的作用提高到了过程至上,正如敏捷宣言的第一条“个体和交互胜过过程和工具”所说的。

    涉及到人的问题,就已经不再是过程所能覆盖的了,就到了企业管理的层面上了,包括企业的价值观和文化。这也是敏捷在国内实施的最大障碍:

    1、把客户当作合作伙伴而不是对手,从客户角度出发去想问题,充分的跟客户沟通,而不是出了问题推诿责任。目标是让软件实现客户的价值,而不是收钱就完事儿。

    2、把人的能动性调动起来,给动力而不是给压力。

    3、要实用而不是要规范。让开发人员理解并实施,体验到敏捷的好处,而不是盲目机械地实施规范。

    没有绝对的权威,每个人都有可取之处。

    三、迭代就是敏捷,UP属于敏捷

    看到这么多人都把UP归入敏捷,我都开始怀疑是不是自己搞错了。但是在我的印象中:    ??

    UP是重型的过程,虽然引入了迭代,但是其原则和价值观与敏捷是不同的。敏捷注重的是反馈,迭代周期尽量的短,重在客户的参与,通过客户的参与,获取持续的反馈,不断调整使整个项目走在正确的方向上。同时也给客户一个感受和思考的机会,因为对于大多数客户而言,目标是明确的(不排除有些客户目标也不明确),但是具体怎么做,开始时是没有想法的,只有看到具体的东西的时候,才知道“噢,原来可以这样,那我想把这里调整一下”。

    四、敏捷是彻底革命的

    敏捷,特别是XP,让人有耳目一新的感觉,觉得以前的所有软件工程理论,设计方法都可以抛弃掉了,推翻一切,从头再来。抱着这种想法实施敏捷,那就错了,敏捷不是“石头里蹦出个孙大圣”,以前的软件过程中也有敏捷的影子,只是没有像敏捷一样上升到价值观和原则的高度,比如快速原型法。敏捷是在对已有的软件过程方法的改进,抛弃的是传统软件工程低效的外表,以往的软件过程中很多技巧都是很实用的。实施敏捷应该以现有的软件过程为基础,从敏捷宣言和原则出发,利用敏捷的方法来改善过程。

    五、敏捷是反文档的

    文档只是为了达成目标的一种手段,如果这种手段是低效的,那就换一种手段。可是完全抛弃了文档,怎样解决沟通的问题?难道你想每次沟通都完全用手比划,用嘴说,跟不同的人重复表述同样的想法,那样更是低效的。    ??

    应该清楚文档的本质是把知识显性化。在一个项目中存在很多需要沟通的知识,知识具备两种形态,显性的和隐性的,传统的观念是尽量把隐性知识显性化,即文档化,而忽略了这其中的代价(特别是更新同步文档的代价)。    ??

    因此,在实施敏捷的时候,需要在团队内明确哪些知识是必须显性的,这些知识可以通过文档交流。哪些知识是可以隐性的,这些知识则完全可以通过口头的方式进行交流,以达到沟通的最佳效率。   ??

    文档不是目的,有效沟通才是目的。

内容导航

    六、为了敏捷而敏捷

    “嗯,敏捷这么好,我们也敏捷吧”,可能很多人会有这种想法。忘了以前是在哪儿看的大师采访录:   ??

    Q:“我们现有的过程很好,不知道怎么用敏捷改进?”    ??

    A:“既然很好,那就不要用敏捷”。    ??

    做什么事情都要有明确目标的,敏捷虽好,得看你需不需要,能不能解决你现在头疼的问题,如果不是,那就不要给自己找麻烦了。

    七、敏捷是CMM的反义词

    在一些讨论中,很多人把CMM作为敏捷的反义词,我觉得这不是很合适。CMM只是一种衡量软件成熟度的标准,并非过程,和敏捷不是一类概念。如果要给敏捷找一个反义词,我觉得传统的瀑布式开发应该更合适一些。

    并且,我认为,如果CMM还能继续流行下去的话,应该会有公司可以用敏捷改善的过程通过CMM认证。

    八、敏捷是自由的,无约束的

    敏捷强调的是自组织团队,发挥人的能动性,以动力代替压力,让人有绝对自由的错觉。但是应该清楚,凡是都是要讲究一个平衡,人也是两面的,消极的一面和积极的一面同时并存,绝对的自由会放纵人消极的一面。敏捷并非是绝对自由,无约束的。作为管理者,有一个职责,就是引导团队成员用自己积极的一面去压制消极的一面,不能放任团队中出现搭便车的现象,否则将打击整个团队的士气。如果实在无效,那就只能将其排除出团队了,这个惩罚够有约束力吧?

    九、重做就是重构

    重做不等于重构,很多场合这两个概念是混淆的。但是在敏捷中,重构的一个特征是必须可控的。当对系统结构进行大的调整时,如果没有测试驱动辅助的话,那么可控性就会很差,这不能叫做重构。

分享到:
评论

相关推荐

    敏捷开发的常见误区.doc

    然而,在实践中,敏捷开发常常被误解,以下是对这些误解的详细解释: 1. **误区:敏捷项目没有计划** 敏捷开发并不意味着没有规划,只是规划的方式与传统方法不同。它侧重于动态的、基于客户需求的计划。敏捷计划...

    敏捷开发介绍-详实版.pdf

    敏捷开发的常见误解包括认为敏捷开发不需要文档、设计和计划,以及认为敏捷只是优秀实践的简单组合,或者只适用于小规模项目。实际上,敏捷开发要求对文档、设计和计划有适当的关注,它是一种包含理念、优秀实践和...

    敏捷开发介绍与实施过程

    在实施敏捷开发时,常见的误解包括认为敏捷不需要规划和文档,仅是一堆优秀实践的集合,只适用于小型项目,或者认为管理者只需在管理层面支持敏捷,无需深入了解。实际上,敏捷是一个包含理念、优秀实践和具体应用的...

    最完整的Scrum敏捷软件开发过程.ppt

    什么是敏捷软件开发? 敏捷方法的项目计划 敏捷项目管理和传统项目管理 为什么使用敏捷? Scrum概述 Scrum的角色 ...敏捷开发中的估计方法 测试驱动开发 Scrum应用 支持工具和模版 一些常见的误解

    敏捷软件开发.pptx

    #### 五、对敏捷开发的常见误解 - **误解一**:敏捷开发并不意味着完全放弃文档、设计和计划,而是强调这些活动应当是适度的。 - **误解二**:敏捷不仅仅是一系列最佳实践的组合,它是一种整体性的开发哲学。 - **...

    敏捷开发之站会

    ### 敏捷开发中的站会:重要性和常见误区 #### 一、站会的重要性 ...总之,站会是敏捷开发流程中的一个重要环节,通过遵循最佳实践和避免常见的误区,可以极大地提高团队的协作效率和项目成功率。

    敏捷开发文档

    关于敏捷开发存在多种常见的误解: - **误区一**:敏捷开发不等于无需文档、设计和计划。实际上,敏捷开发鼓励适度的文档,以促进团队间的沟通和理解。 - **误区二**:敏捷不仅仅是优秀实践的集合。它是基于一套核心...

    华为敏捷软件开发专题培训课件.ppt

    知识点五:敏捷的常见误解 * 敏捷开发不意味着可以不需要文档、设计和计划。 * 敏捷不仅仅是优秀实践的结合,也是一种软件开发方法的哲学理念。 * 敏捷适合各种项目规模的开发,不仅仅局限于小项目。 知识点六:...

    敏捷软件开发之Scrum实践

    #### 六、对敏捷的常见误解 针对敏捷开发,业界存在不少常见的误解,比如: - 认为敏捷只是一种实践或者指代极限编程。 - 认为敏捷只适用于小规模开发项目。 - 认为敏捷与CMMI等其他软件成熟度模型相冲突。 - 认为...

    华为敏捷软件开发解读V1.01.ppt

    - **常见的误解**: - 敏捷开发并不意味着不需要文档、设计和计划。相反,敏捷强调的是在确保质量和效率的前提下,灵活处理这些方面。 - 敏捷不仅仅是优秀实践的简单结合,而是一种全面的方法论,涵盖了价值观、...

    华为敏捷软件开发解读V1.01

    【华为敏捷软件开发解读V1.01】深入解析了华为在推行敏捷开发中的核心理念、策略和实践,旨在帮助公司的软件开发管理者和相关人员更好地理解和应用敏捷方法,以提升应对需求变化的能力、提高产品质量、提升开发效率...

    敏捷开发的必要技巧10:验收测试(Acceptance Test)

    在IT行业中,敏捷开发是一种广泛采用的软件开发方法论,它强调灵活性、迭代性和客户参与。验收测试,作为敏捷开发中的重要环节,是确保产品符合客户需求和预期的关键步骤。本篇我们将深入探讨验收测试的概念、重要性...

    Scrum敏捷软件开发过程 (2).docx

    **敏捷开发误解**: 一些常见的误解包括认为敏捷意味着无计划、不需要文档,或者认为敏捷意味着可以无限变更。实际上,敏捷强调的是适度的计划和必要的文档,同时变更管理也需要谨慎。 **适用场景**: 敏捷方法适合...

    敏捷软件开发

    - **敏捷的定义**:明确敏捷开发的核心价值观和原则。 - **成为自适应型组织**:介绍如何构建一个能够快速响应变化的组织结构。 - **明日行动指南**:指导团队和个人如何采取具体步骤迈向更敏捷的工作方式。 #### ...

    测试驱动开发的3项修炼:走出TDD丛林

    敏捷开发中的许多其他实践,如持续集成、持续部署和代码复审,都与TDD紧密相连,共同构成了一个有机的整体。 TDD的实践通常包括以下三个基本环节:编写测试、编写代码和重构。首先,开发者需要编写一个测试用例,...

Global site tag (gtag.js) - Google Analytics