敏捷开发十二原则优缺点_敏捷开发模型优缺点 - CSDN
  • 浅谈「敏捷开发

    2019-06-25 04:44:55
      敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,...

    敏捷软件开发宣言

      敏捷开发以用户的需求进化为核心,采用迭代循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
      在2001年,17位编程大师共同发布《敏捷软件开发宣言》。其他的核心思想可以分为以下四个部分:

    • “人”以及“人与人的互动” > “过程”和“工具”;
    • 可运行的软件 > 面面俱到的文档;
    • 客户合作 > 合同谈判;
    • 响应变化 > 遵循计划。

      基于《敏捷软件开发宣言》的思想,其共有12条原则,这里不一一叙述,可以在这里查看详情。

    敏捷过程模型

    1. 特点

      开发过程中的“变化”无处不在,也是不可避免的。在实际项目中,很难预测需求和系统何时以及如何发生变化,并且对于开发者来说,要将变化的意识贯穿在每一项开发活动中。面对这写要求,敏捷开发应运而生。所有敏捷过程模型都遵循敏捷软件开发宣言和敏捷原则,每种模型又各有特点,一下介绍两种:XPSCRUM

    2. XP(extreme programing)

    • 背景:
      1996年由__Ken Beck等人提出,著名书籍:《Extreme Programing Explained:Embrace Change》__。
    • 基本观点:
      软件开发是人与人合作进行的过程,因此成功的软件开发过程应该充分利用人的优势,而弱化人的缺点,突出人在软件开发过程中的作用。
    • 适用范围:
      XP适合规模小,进度紧,需求变化大,质量要求严的项目。功能需求可以固定的,可以作比较精确的需求设计的,生命周期很长的,超大型软件项目不适于适用XP方法。
    • 核心价值观:
      • 沟通问题往往是由于开发人员与设计人员,设计人员与客户之间的沟通不畅造成的;
      • 简单在系统可运行的前提下,做最简单的工作。时刻保持代码的简单,无冗余;
      • 反馈尽快获得用户反馈,越详细越好,使得开发人员能够保证自己的成果符合用户的需要;
      • 勇气“拥抱变化”对于用户的反馈,要用于对自己的代码进行修改,丢掉坏的代码。
    • XP设计过程:
      • XP Planning:计划阶段
      • XP Design:设计阶段
      • XP Coding & Testing:编码与测试阶段

    XP process

    3. SCRUM

    • 背景:
      1990年代由__Schwaber & Beedle__提出并实践。
    • 特点:
      整个开发过程由若干个短的迭代周期组成,一个短的迭代周期称为一个Sprint,每个Sprint的建议长度是2到4周。使用产品Backlog来管理需求,是一个按照商业价值排序的需求列表,列表条目的体现形式通常为用户故事。在Sprint中,Scrum团队从产品Backlog中挑选最高优先级的需求进行开发。挑选的需求在Sprint计划会议上经过讨论、分析和估算得到相应的任务列表(backlog)。在每个迭代结束时,Scrum团队将递交潜在可交付的产品增量。
    • 基本过程:
      • 找出完成产品需要做的事情;
      • 决定当前的冲刺需要解决的事情;
      • 冲刺冲刺Sprint;
      • 每日站会。
    • 常用方式:
      • Sprint Burndown Chart
      • Task board

    个人总结

      我个人认为敏捷开发中最重要的因素是:
      通过对《敏捷软件开发宣言》的学习,“人与人的合作交流”就一个敏捷软件开发项目是否成功的主要因素。所以在软件软件开发过程中,开发者的编程环境需要做到尽量的开放,而且尽量实现“结对编程”,这样才能使得开发过程变得不易于原计划脱轨,大大增强了开发的成功率。
      而对于较为典型的SCRUM和XP这两种敏捷过程模型,Scrum注重的是管理和组织实践,而XP关注的是实际的编程实践,两者都聚焦于信息价值流和信息沟通除了迭代长度稍有差别外,大多数Scrum实践与XP是兼容且相互补充。
      所以说:组合使用Scurm和XP会有显著收获!

    转载于:https://www.cnblogs.com/vachester/p/5874910.html

    展开全文
  • 敏捷开发优缺点

    万次阅读 2017-06-20 14:39:52
    近期试用了一下华为最新推出的项目管理工具-华为软件开发云,接触了敏捷开发,产生一些想法。以下是使用体验,仅供同行们参考。 一、敏捷开发技术的几个特点和优势: 1.个体和交互胜过过程和工具 2....

    踏入软件开发行列时间不算短了,也使用过很多项目管理软件和方法,但是在使用过程中多多少少都会遇到一些问题吧,同行们或多或少也会有相应的体验。近期试用了一下华为最新推出的项目管理工具-华为软件开发云,接触了敏捷开发,产生一些想法。以下是使用体验,仅供同行们参考。

    一、敏捷开发技术的几个特点和优势:

    1.个体和交互胜过过程和工具

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

    3.客户合作胜过合同谈判

    4.响应变化胜过遵循计划

    二、敏捷开发技术的12个原则:

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

    2.即使到了开发的后期,也欢迎改变需求。

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

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

    5.围绕被激励起来的个人来构建项目。

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

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

    8.敏捷过程提倡可持续的开发速度。

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

    10.简单使未完成的工作最大化。

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

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

    三、敏捷开发技术的适用范围

    1.项目团队的人数不能太多

    2.项目经常发生变更

    3.高风险的项目实施

    4.开发人员可以参与决策

    根据以上三点,大体可以总结出:

    优势:

    敏捷确实是项目进入实质开发迭代阶段,用户很快可以看到一个基线架构版的产品。敏捷注重市场快速反应能力,也即具体应对能力,客户前期满意度高。

    劣势:

    但敏捷注重人员的沟通,忽略文档的重要性,若项目人员流动大太,又给维护带来不少难度,特别项目存在新手比较多时,老员工比较累。

    需要项目中存在经验较强的人,要不大项目中容易遇到瓶颈问题。

    结合华为软件开发云,他们提供了两种项目创建方法:Scrum和Scrum精简,可以结合自己的不同习惯,选择合适自己团队的方法,这点还是不错的。


    同时,华为软件开发云,在文档和百科管理上,也增加了自己的特色,有效避免传统敏捷开发的劣势。大家不妨试用一下,后续有什么建议和想法,欢迎一起探讨。

    展开全文
  • 敏捷SDLC模型是迭代和增量流程模型的组合,通过快速交付工作软件产品,专注于流程适应性和客户满意度。敏捷方法将产品分解为小型增量构建。这些构建在迭代中提供。每次迭代通常持续大约一到三周。每次迭代都涉及跨...

    敏捷SDLC模型是迭代和增量流程模型的组合,通过快速交付工作软件产品,专注于流程适应性和客户满意度。敏捷方法将产品分解为小型增量构建。这些构建在迭代中提供。每次迭代通常持续大约一到三周。每次迭代都涉及跨职能团队同时在各个领域工作,如 -

    • 规划 (Planning)
    • 需求分析 (Requirement Analysis)
    • 设计 (Design)
    • 编码 (Building)
    • 单元测试和 (Testing)
    • 验收测试。(Acceptance)

    iterative agileçåçæå°çµæ

    在迭代结束时,向客户和重要的利益相关者显示工作产品。

    什么是敏捷?

    敏捷模型认为每个项目都需要以不同方式处理,现有方法需要根据项目要求进行定制。在Agile中,任务分为时间框(小时间框架),以便为发布提供特定功能。

    采用迭代方法,并在每次迭代后提供工作软件构建。每个构建在功能方面都是增量的; 最终版本包含客户所需的所有功能。

    以下是敏捷模型的图解说明 -

     

    敏捷思维过程在软件开发的早期就开始了,并且由于其灵活性和适应性而开始变得流行。

    最流行的敏捷方法包括Rational Unified Process(1994),Scrum(1995),Crystal Clear,Extreme Programming(1996),Adaptive Software Development,Feature Driven Development和Dynamic Systems Development Method(DSDM)(1995)。在敏捷宣言于2001年出版后,这些现在统称为敏捷方法论

    以下是敏捷宣言原则 -

    agile manifestoçåçæå°çµæ

    • 个人和互动 - 在敏捷开发中,自组织和动机很重要,共同定位和结对编程等互动也很重要。

    • 工作软件 - 演示工作软件被认为是与客户沟通以了解其要求的最佳方式,而不仅仅是依赖于文档。

    • 客户协作 - 由于各种因素无法在项目开始时完全收集需求,因此持续的客户交互对于获得适当的产品要求非常重要。

    • 应对变化 - 敏捷开发的重点是快速响应变化和持续发展。

    敏捷与传统SDLC模型

    Agile基于自适应软件开发方法,而传统的SDLC模型(如瀑布模型)基于预测方法。传统SDLC模型中的预测团队通常使用详细的计划,并完整预测未来几个月或产品生命周期中要交付的确切任务和功能。

    预测方法完全取决于在周期开始时进行的需求分析和计划。要纳入的任何变更都要经过严格的变更控制管理和优先排序。

    敏捷使用自适应方法,没有详细的规划,只有在需要开发哪些功能时才能明确未来的任务。有功能驱动的开发,团队动态地适应不断变化的产品需求。通过发布迭代,该产品经常进行测试,从而最大限度地降低未来发生重大故障的风险。

    客户交互是这种敏捷方法的支柱,而使用最少文档的开放式通信是敏捷开发环境的典型特征。敏捷团队彼此密切合作,通常位于同一地理位置。

    敏捷模型 - 优点和缺点

    敏捷方法最近在软件世界中被广泛接受。但是,这种方法可能并不总是适用于所有产品。以下是敏捷模型的一些优缺点。

    敏捷模型的优点如下 -

    • 是一种非常现实的软件开发方法。

    • 促进团队合作和交叉培训。

    • 功能可以迅速发展并得到证明。

    • 资源要求最低。

    • 适合固定或变化的要求

    • 提供早期部分工作解决方案。

    • 适用于稳定变化的环境的良好模型。

    • 最小的规则,易于使用的文档。

    • 在整体计划环境中实现并发开发和交付。

    • 很少或根本不需要计划。

    • 易于管理。

    • 为开发人员提供灵活性。

    敏捷模型的缺点如下 -

    • 不适合处理复杂的依赖项。

    • 可持续性,可维护性和可扩展性的风险更大。

    • 总体规划,敏捷领导者和敏捷的PM实践是必须的,如果没有它,它将无法工作。

    • 严格的交付管理决定了范围,要交付的功能以及满足截止日期的调整。

    • 在很大程度上取决于客户互动,因此如果客户不清楚,团队可能会被推向错误的方向。

    • 由于生成的文档最少,因此存在非常高的个人依赖性。

    • 由于缺乏文档,技术转让给新的团队成员可能非常具有挑战性。

    敏捷的商业利益


    敏捷管理可降低与项目交付,范围和预算相关的常见风险。

    它鼓励客户和团队之间的协作 ; 在缓解软件开发过程中的高风险方面提供互惠互利。
    什么是æ•æ·ï¼Œæ•æ·ï¼Œä»€ä¹ˆæ˜¯æ•æ·æ–¹æ³•è®ºï¼Œæ•æ·æ–¹æ³•è®º

    2009年,David F Rico博士将Agile与传统的软件项目管理方法进行了比较。在他的研究和综合过程中,他分析了23个敏捷过程,并将它们与7,500个传统项目进行了比较。

    他发现敏捷项目有20项好处:

    41%的整体业务价值更好
    83%的人表现出更快的上市时间
    50%的质量更高
    50%的成本更低
    83%的人更有效率


    其他 scrum 文章

    敏捷宣言和十二項原則

    All Agile Software Development Methodologies (SCRUM, Kanban, XP) contain the Agile Manifesto (Core Values) and 12 Agile Principles, which represent a set of values to guide people in an organization how to behave with each other. ( 所有敏捷軟件開發方法(SCRUM,看板,XP)都包含敏捷宣言(核心價值觀)和12個敏捷原則,它們代表了一系列價值觀,用於指導組織中的人們如何相互行事。)

    Timeboxing 在 Scrum中是什么含义?

    The goal of timeboxing is to define and limit the amount of time dedicated to an activity. Scrum uses timeboxing for all of the Scrum events and as a tool for concretely defining open-ended or ambiguous tasks. (时间装箱的目标是定义和限制专用于活动的时间量。scrum 将时间装箱用于所有 scrum 事件, 并用作具体定义无期限或不明确任务的工具。)

    极限编程(XP)vs Scrum

    Scrum is a framework for product development, which is a container where you can add other practices. XP is one of those practices that you can do within Scrum framework. This article shows you the similarities and differences between them and there are no reasons why a team need choose between Scrum and XP exclusively. (Scrum是一个产品开发框架,它是一个容器,您可以在其中添加其他实践。XP是可以在Scrum框架内完成的实践之一。本文向您展示了它们之间的相似性和差异,并且没有任何理由说明团队需在Scrum和XP之间进行选择。)

    精益生产中的8种浪费 – 如何定义?

    A lean organization understands customer value and focuses its key processes to continuously increase it. The ultimate goal is to provide perfect value to the customer through a perfect value creation process that has zero waste. This article shows you how to identify those wastes (精益组织了解客户价值, 并专注于其关键流程以不断提高客户价值。最终目标是通过一个零浪费的完美价值创造过程, 为客户提供完美的价值。本文向您展示了如何识别这些浪费)

    最好的免费和商业敏捷工具 – 每个Scrum团队都需要

    In this article you will get a list of 10 latest and efficient Agile Project Management tools that would help your team in the entire scrum development process. You need some agile toolset for enhancing the productivity of your team and help ease the pain points even if you have remote employees. (在本文中,您将获得10个最新,最有效的敏捷项目管理工具列表,这些工具可以帮助您的团队完成整个Scrum开发过程。您需要一些敏捷的工具集来提高团队的工作效率, 并帮助缓解难题, 即使您有远程员工也没关系。)

    为什么选择Scrum?Scrum如何克服我们总是面临的8个痛点?

    What you need to know in a nutshell — the 8 pain points we most often see in Scrum project planning and analysis. This article shows you how to using Scrum and Agile to overcome them. (你需要知道的是–scrum 项目规划和分析中我们最常看到的8个痛点。本文向您展示了如何使用 scrum 和敏捷来克服它们。)

    什么是Scrum框架中的3355?

    using four simple facts (3355) to help us to understand and recap the key concepts of scrum (使用四个简单的事实(3355)来帮助我们理解和概括Scrum的关键概念)

    Scrum vs 瀑布 vs 敏捷 vs 精益 vs 看板

    There are a number of different approaches in the software development industry – some are new takes on old methods and others have adapted a relatively new approach. The two most commonly used methods in this field are the Agile such as, Scrum, Kanban and Lean and etc., and traditional Waterfall models such as structured methods or newer RUP. ( 软件开发行业有许多不同的方法 - 一些是旧方法的新方法,另一些方法采用了相对较新的方法。该领域中最常用的两种方法是敏捷,如Scrum,Kanban和Lean等,以及传统的瀑布模型,如结构化方法或更新的RUP。大多数遵循这两种模式的软件公司都认为他们选择的方法在方面是优越的,所以在我们回答这个问题之前,“哪一个更成功?我们应该看看它们的主要区别。)

    如何保持Scrum的透明度?

    Transparency is vital to the Scrum process, as it allows everyone to see and understand what is really happening in each sprint, achieving a bigger and better communication and trust on the team and in this methodology. This Article shows you how to do it. ( 透明性对于Scrum过程至关重要,因为它允许每个人看到和理解每个Sprint中实际发生的事情,从而在团队和这种方法中实现更大、更好的沟通和信任。这篇文章向您展示了如何做到这一点。)

    Scrum: 经验过程控制vs定义过程控制

    In empirical process control, you expect the unexpected. With defined process control, every piece of work is understood. In Scrum, an empirical process is implemented where progress is based on observation and experimentation instead of detailed, upfront planning and defined processes. (在经验过程控制中,你期待着意想不到的结果。通过定义的过程控制,可以理解每一件工作。在Scrum中,实现了一个经验过程,其中进度是基于观察和实验,而不是详细的预先规划和定义的过程。)

    展开全文
  • 敏捷开发简述

    2019-04-24 22:32:19
    敏捷开发的起源 在90年代末期,传统软件开发的方式因为其繁杂的过程,以及对文档的过于严格的要求,造成了很大程度上的效率下降,也就是人们所说的“重型化危机”。因为这一原因,人们开始反思传统方法的利弊,并对...

    敏捷开发的起源

    在90年代末期,传统软件开发的方式因为其繁杂的过程,以及对文档的过于严格的要求,造成了很大程度上的效率下降,也就是人们所说的“重型化危机”。因为这一原因,人们开始反思传统方法的利弊,并对其弊端进行了改进,提出了敏捷方法。

    2001年2月,由Martin Fowler,Jim Highsmith等17位软件开发专家起草的敏捷宣言发表,敏捷联盟成立。敏捷开发作为一种新的方法正式诞生。敏捷宣言中所表述的价值观分为四个方面:

    (1)个体和互动 高于 流程和工具(2)工作的软件 高于 详尽的文档
    (3)客户合作 高于 合同谈判
    (4)响应变化 高于 遵循计划

    同时敏捷宣言还包括12条原则。这十二条原则是以上四条主要的价值观在实际工作中的体现。

    总体来说,敏捷开发作为一种新的软件工程方法,与传统方法相比更加注重人的因素。不再把开发者当作一个物化的,投入多少时间可以完成相应数量代码的代码开发机器;而是注重开发者之间的互动以及开发者和用户之间的互动,同时因为增加了交流和协作使得开发的项目更加灵活和易于修改。

    敏捷开发的主要特点

    与传统开发方法相比,在敏捷开发的整个过程中,有以下几个主要的特点:

    (1)敏捷开发的过程有着更强的适应性而不是预设性,从敏捷宣言的第四条响应变化高于预设计划便可以看出来。因为软件开发过程的本身的不可预见性,很多用户在项目开始时不可能对于这个项目有着一个完整而明确的预期。很多对软件的预期都在后期的修改和完善过程中产生。因此高适应性显然更加符合软件工程开发的实际。而敏捷开发实现其适应性的方式主要在于,第一,缩短把项目提交给用户的周期;第二,增加用户,业务人员,开发人员这三者之间的交流;第三,通过减少重构的成本以增加软件的适应性。

    (2)敏捷开发的过程中,更加的注重人的因素。在传统软件工程中,个人的因素很少的被考虑到分工中,每个个体都是只是整个代码开发机器的一个小小的螺丝钉,个人的意志和创造力很大程度上的被抹去为了更好的为集体服务。而在敏捷开发过程中,每个个人的潜力被充分的考虑,应用什么技术很大程度上直接由在第一线开发的技术人员决定;每个人的特点和创造力都可以充分地发挥,这样开发出来的软件更加的具有生命力,因为他融入了开发者的心血和创意,开发者不再是进行机械的乏味的堆砌,而是创造属于自己的艺术品,这样的条件下产生的代码必然在质量上更占优势。

    (3)在敏捷开发的过程中,整个项目是测试驱动的而不是文档驱动的。不仅每个模块有着自己的相应的测试单元,开发人员在开发自己的模块的过程中必须保证自己所开发的模块可以通过这一单元的测试,并且集成测试贯穿了整个开发过程的始终。集成测试每天会进行十几次甚至几十次,而不是像传统方法一样只有当各个模块的编码都结束了之后再进行联合调试。这样,在软件开发的进程中每一点改动所引起的问题都容嘉容易暴露出来,使得更加容易在错误刚刚产生的时候发现问题从而解决问题。这样就避免了在最后整个系统完成时错误隐藏的太深给调试造成极大的困难。

     

     敏捷过程模型的一个实例:极限编程

    敏捷过程作为一种开发过程模型,产生了很多不同的可以应用到实际中的编程方法。这里介绍一种应用的比较广泛的开发方法,极限编程,来具体体现一些敏捷开发过程的特点。

    极限编程过程分为策划、设计、编码和测试四个阶段。

    (1)策划阶段

    首先在策划阶段,用户和开发这进行交流,开发者总结出一系列“用户故事”,描述软件某一部分功能。之后客户对这些功能进行优先级排序,xp团队评估每一个故事的成本。之后客户和xp团队共同决定在开发的下一个版本中将会新增哪些功能。而在版本不断的迭代的过程中,会进行很多次这样的策划过程,每一次客户都可以根据已有的功能来决定是否要新增一些功能,以及要新增哪些功能。

    (2)设计阶段

    在设计阶段,开发人员会根据用户故事,提出这些用户故事的实现方案。设计的过程中主要遵循简洁的原则,也就是尽量使用简介的表述而不是复杂的表述。而设计的另一个方面则是重构,重构是一种通过不改变代码的外部功能的情况下改变软件模块的内部结构从而优化软件系统的功能的过程。这是一种改进代码的设计。

    在设计的这两个层面中,我们可以看到在xp开发过程中,设计和开发是同步进行的。我们在不断实现开始设计的过程中,同时要对到吗进行优化也就是重新设计。这样,大大的增强了整个软件开发的适应性,而不是始终刻板的实现最开始的第一版设计。

    (3)编码阶段

    xp开发的第一件任务不是直接对初步的设计和用户故事进行编码,而是针对这些设计全力开发单元测试。完成了单元测试也就确定了开发者要实现的所有功能。这样开发者就只需要全力通过单元测试,而不必在实现什么功能上再浪费不必要的时间和精力。这正体现了敏捷开发的以测试驱动的特点。

    而在敏捷开发中,很重要的一个提高效率的方式就是结对编程。在结对编程的过程中,两个开发者共用一台电脑,并各有分工。其中一个人进行实际的编码实现,另一个人在旁边考虑代码在宏观上该如何实现,比如针对什么功能应该使用什么样的算法。这样,在编码者工作遇到问题时,两个人交换位置。这时在旁边思考的人更有可能可以解决这一问题。事实上,结对编程的形式不必拘泥于什么规矩。关键在于,两个人共同开发的过程中,两个人的交流可以使得大部分的问题可以在第一时间解决。并且,因为两个人中只有一个人在进行编程这一项比较疲惫的工作,另一个人较为轻松,这样可以保证开发效率一直保持在一个比较高的状态。

    (4)测试阶段

    每一个模块都通过自己的单元测试之后,开发者会将所有的模块集成到一起进行测试。这样可以及时发现每一模块在最近一次改动之中出现的问题同时避免一些兼容性问题。每一次改动一点小问题要比等到最后一次集中修改所有问题要容易得多。

    敏捷开发生态系统

    敏捷开发模型在实际中有着很多表现形式。极限过程开发(xp)时其中的最为广泛应用的一种。还有很多其他的,比如:自适应软件开发、Scrum、动态系统开发、Crystal、特征驱动开发、精益软件开发、敏捷建模、敏捷统一过程等。这里只举两个例子介绍一下其主要的特点。

    自适应软件开发主要从整体上强调软件项目团队具有自我组织的动态性、人与人之间的协作、个人以及团队的学习,从而使团队更有可能取得成功。

    Scrum开发方法,这个开发方法最大的特征就是每日例会。在每日例会中,每个人交流自己昨天干了什么,今天将要干什么,以及自己在工作中遇到了哪些问题。这样大大地加强了团队成员之间的交流。

    我们可以看到,很多人都投入到了敏捷开发的研究和使用中。敏捷开发确实有着非常强大的生命力。

    敏捷开发与传统开发方法的比较

    优势

    敏捷开发的高适应性,以人为本的特性,和轻量型的开发方法即以测试为驱动取代了以文档为驱动,这三个主要的特点,也就是敏捷开发相对与传统开发方式的主要有点。因为他更加的灵活并且更加充分的利用了每个开发者的优势,调动了每个人的工作热情。

    劣势

    与传统开发方式相比,敏捷开发的最主要的劣势在于敏捷开发欢迎新的需求,而在每次新的需求产生时都可能引起整个系统的大幅度的修改。因为开发者在开发上一个版本的时候,完全没有考虑以后的优化将要如何进行。这样的开发方式实际的软件开发过程中,并不一定总是有效的。

    而另一个方面,敏捷开发因为缺乏很多在敏捷开发中被认为“不重要”的文档,这样在一个大型项目比如一个操作系统开发的时候,由于其项目周期很长,所以很难保证开发的人员不更换,而没有文档就会造成在交接的过程中出现很大的困难。

     

    参考文献

    [1]基于scrum敏捷开发的软件过程管理研究 王敏

    [2]敏捷开发在软件开发的过程中的应用研究 彭志楠

    [3]敏捷软件开发技术研究 周莹莹

    [4]敏捷软件开发应用研究 范洪涛

    [5]http://agilemanifesto.org/iso/zhchs/manifesto.html 敏捷软件开发宣言

    [6]http://agilemanifesto.org/iso/zhchs/manifesto.html CSDN 敏捷开发的优缺点

    [7]http://www.vaikan.com/agile-programming-10-years-on-did-it-deliver/ 外刊IT评论 敏捷十年,成效几何?

    [8]http://www.infoq.com/cn/news/2010/02/scrum-failings Bob大叔关于Scrum和敏捷的七条缺陷

     

    摘自:https://www.cnblogs.com/yt96/p/5983265.html

    感谢yangte分享的文章,保存文章并时刻警醒鞭策自己~

    展开全文
  • 敏捷开发优点和缺点

    千次阅读 2019-10-15 13:20:58
    一、敏捷开发技术的几个特点和优势: 1.个体和交互胜过过程和工具 ...二、敏捷开发技术的12个原则: 1.我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。 2.即使到了开发...
  • 敏捷的12条原则

    千次阅读 2018-08-02 22:36:31
    没有什么方法可以保证团队一定能开发出完美的软件,敏捷的团队也是同样地,所以,有一系列的原则来帮助敏捷团队。 最优先要做的是尽早、持续地交付有价值的软件,让客户满意。 欣然面对需求变化,即使在开发后期。...
  • 上一篇浅谈敏捷开发及Scrum(一)概念与理解写了一些关于敏捷开发和Scrum的相关概念及个人理解,这里来说说实施与遇到的一些困难。 如何实施 敏捷开发的实施,我们是用的Scrum迭代开发,关于Scrum的一些介绍上一篇...
  • 不觉间,采用测试驱动开发(Test Driven Development)半年有余,自从看了Robert Martin的《敏捷软件开发原则、模式与实践》, 就忍不住想实践一下,亲身体会书中描述的美妙景象。恰逢项目中一个全新功能交由我负责...
  • 敏捷开发的五大优点

    2019-06-20 14:41:49
    什么是敏捷开发?乍一听上去像是软件等开发得敏捷迅速的意思,而其实敏捷开发是以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,一个软件项目在构建初期被细分成多个子项目,各个子...
  • 几种常见软件开发方法的优缺点  (2012-09-04 20:47:55) 转载▼ 标签:  软件开发   数据流图   结构化分析   结构化设计   进行   杂谈   摘要:...
  • 敏捷开发12条原则 敏捷开发的核心原则之一是在每个sprint结束时交付可用的软件。 团队可以通过定义可靠的用户故事接受标准 ,以团队形式致力于冲刺, 自动化测试 ,演示冲刺结果以及成熟其他实践以确保代码完整并...
  •  不同与传统的软件开发模式,敏捷开发模式有着自己鲜明的价值和方法。  其中,敏捷测试部分也同以往的软件测试流程有所不同。这对测试人员提出了新的要求,带来了新的挑战。 第一部分:敏捷软件开发简介 敏捷...
  • 测试驱动开发优缺点

    千次阅读 2015-06-30 19:16:03
     不觉间,采用测试驱动开发(Test Driven Development)半年有余,自从看了Robert Martin的《敏捷软件开发原则、模式与实践》, 就忍不住想实践一下,亲身体会书中描述的美妙景象。恰逢项目中一个全新功能
  • 什么是敏捷开发

    2019-10-31 15:50:18
    本篇分享的是:【什么是敏捷开发 】 目录: 1.几种开发方法 1.1瀑布式开发 1.2迭代式开发 1.3螺旋式开发 2.敏捷开发 2.1 敏捷开发的诞生 2.2敏捷开发宣言 2.3 敏捷开发 3.敏捷开发方法 ...
1 2 3 4 5 ... 20
收藏数 8,044
精华内容 3,217
关键字:

敏捷开发十二原则优缺点