agile_agilent - CSDN
精华内容
参与话题
  • Agile简介

    2019-01-04 21:21:57
    一.Agile 1.什么是Agile? 敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可...

    一.Agile
    1.什么是Agile?
    敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
    2.Agile方法的四个价值
    (1)较之于过程和工具,更注重人及其相互作用的价值。
    (2)较之于无所不及的各类文档,更注重可运行的软件的价值。
    (3)较之于合同谈判,更注重与客户合作的价值。
    (4)较之于按计划行事,更注重响应需求变化的价值。
    3.敏捷强调的是适应性而非预见性
    二.scrum
    什么是scrum?
    Scrum是迭代式增量软件开发过程,通常用于敏捷软件开发。Scrum包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括同项目经理类似的Scrum主管角色负责维护过程和任务,产品负责人代表利益所有者,开发团队包括了所有开发人员。虽然Scrum是为管理软件开发项目而开发的,它同样可以用于运行软件维护团队,或者作为计划管理方法:Scrum of Scrums。
    三.XP
    什么是XP?
    可在小规模范围内的每次迭代中使用瀑布式方法,也可选择各种工作并行进行。
    ps:其中Scrum是Agile典型的管理实践,XP是Agile典型的技术实践。
    四.敏捷方法之极限编程(XP)和 Scrum区别
    区别之一: 迭代长度的不同
    XP的一个Sprint的迭代长度大致为1-2周, 而Scrum的迭代长度一般为 2~ 4周。
    区别之二: 在迭代中, 是否允许修改需求
    XP在一个迭代中,如果一个User Story(用户素材, 也就是一个需求)还没有实现, 则可以考虑用另外的需求将其替换, 替换的原则是需求实现的时间量是相等的。而Scrum是不允许这样做的,一旦迭代开工会完毕, 任何需求都不允许添加进来,并有Scrum Master严格把关,不允许开发团队受到干扰。
    区别之三: 在迭代中,User Story是否严格按照优先级别来实现
    XP是务必要遵守优先级别的。但Scrum在这点做得很灵活,可以不按照优先级别来做,Scrum这样处理的理由是:如果优先问题的解决者,由于其它事情耽搁,不能认领任务,那么整个进度就耽误了。另外一个原因是,如果按优先级排序的User Story #6和#10,虽然#6优先级高,但是如果#6的实现要依赖于#10,则不得不优先做#10。
    区别之四:软件的实施过程中,是否采用严格的工程方法,保证进度或者质量
    Scrum没有对软件的整个实施过程开出工程实践的处方,要求开发者自觉保证。但XP对整个流程方法定义非常严格,规定需要采用TDD、自动测试、结对编程、简单设计、重构等约束团队的行为。
    四.敏捷软件开发宣言
    1.个体和互动
    2.工作的软件
    3.客户合作
    4.响应变化
    五.敏捷开发的12条准则
    1.最高目标是尽早和持续地交付有价值的软件来满足客户
    2.欢迎对需求提出变更——不管是在项目开发前期还是后期。要善于利用需求变更,帮助客户获得竞争优势。
    3.要不断交付可用的软件,周期从几周到几个月不等,且越短越好
    4.项目过程中,业务人员与开发人员必须在一起工作(能有效的沟通问题)。
    5.要善于激励项目人员,给他们以所需要的环境和支持,并相信他们能够完成任务。
    6.无论是团队内还是团队间,面对面交谈是最有效的沟通方法。
    7.可用的软件是衡量进度的主要指标。
    8.敏捷过程提倡可持续的开发。项目方、开发人员和用户应该能够保持恒久稳定的进展速度。
    9.对技术的精益求精以及对设计的不断完善将提升敏捷性。
    10.要做到简洁,即尽最大可能减少不必要的工作
    11.最佳的架构、需求和设计出自于自组织的团队。
    12.团队要定期反省如何能够做到更有效,并相应地调整团队的行为。
    六.三三五五
    1.三个角色:SM、PO、开发团队(自然包括了我们的开发人员和QA)。
    2.三个产出物:Product Backlog、Sprint Backlog、交互的可用软件工件。
    3.五个活动:计划会、sprint评审会、回顾会、每日立会、Product Backlog的梳理(发生在整个SCRUM周期的任何时间)。
    4.五个价值观:公开、专注、勇气、承诺、尊重。
    七.敏捷的开发模式
    在这里插入图片描述
    回归:缺陷的回归和迭代的回归。
    迭代回归:一个迭代的回归是为了测试前几个build的功能是否还能继续使用。
    产品回归:测试产品的所有功能是否实现。
    产品的UAT:客户抽取重要的案列来做验收测试。
    维护:一般一年的项目一般有半年的免费维护期。
    最简方案:在最初阶段拿出最简版本,先交付给客户去使用,然后再一个迭代一个迭代的更新完善,每个迭代都可独立交付使用。
    在迭代内每个build的敏捷工作模式如下:
    在这里插入图片描述

    在这里插入图片描述
    Pair Work:结队编程,结队测试
    Cross Actions:交叉执行,交叉设计,交叉评审
    Daily Scrum Meeting:每日例会
    SOS Meeting:保证分组开发过程中,各组工作能相互接上
    TDD:测试驱动开发(把用例前置驱动开发工作)
    BDD:行动驱动开发
    CI:持续集成
    LLT:开发自测
    DIT:开发集成测试
    SIT:系统集成测试(执行我们写的测试用例)

    展开全文
  • 何为Agile,何为Scrum

    千次阅读 2019-01-07 21:26:53
    敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。 首先,我们要理解它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一步完成项目的开发;而...

    什么是敏捷?
    敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。
    首先,我们要理解它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一步完成项目的开发;而这种开发方式的主要驱动核心是人;它采用的是迭代式开发.
    一、敏捷开发技术的适用范围:
    1.项目团队的人数不能太多
    2.项目经常发生变更
    3.高风险的项目实施
    4.开发人员可以参与决策
    优势:
    敏捷确实是项目进入实质开发迭代阶段,用户很快可以看到一个基线架构版的产品。敏捷注重市场快速反应能力,也即具体应对能力,客户前期满意度高。
    什么是Scrum?
    狭义:Scrum的英文意思是橄榄球运动的一个专业术语,表示“争球”的动作;把一个开发流程的名字取名为Scrum,我想你一定能想象出你的开发团队在开发一个项目时,大家像打橄榄球一样迅速、富有战斗激情、人人你争我抢地完成它,你一定会感到非常兴奋的。
    而Scrum就是这样的一个开发流程,运用该流程,你就能看到你团队高效的工作。
    本质:Scrum是迭代式增量软件开发过程,通常用于敏捷软件开发。Scrum包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括同项目经理类似的Scrum主管角色负责维护过程和任务,产品负责人代表利益所有者,开发团队包括了所有开发人员。虽然Scrum是为管理软件开发项目而开发的,它同样可以用于运行软件维护团队,或者作为计划管理方法。
    敏捷
    Agile与Scrum之间的关系:
    敏捷开发本质上是一种迭代增量的开发模型,而Scrum正是符合敏捷价值观和原则的一种开发方法,更准确地说应该是一种敏捷的开发过程框架。

    敏捷宣言强调的敏捷软件开发的四个核心价值是:   
    ·个人和互动高于流程和工具   
    ·工作软件高于理解文档   
    ·客户协作高于合同协商   
    ·变化响应高于计划遵循
    敏捷选择提出的12条原则已经应用于管理大量的业务以及与IT相关项目中,包括商业智能(BI)。12原则包括:
      
    1.通过早期和连续型的高价值工作交付满足“客户”。
    2.大工作分成可以迅速完成的较小组成部门。  
    3.识别最好的工作是从自我组织的团队中出现的,   
    4.为积极员工提供他们需要的环境和支持,并相信他们可以完成工作。  
    5.创建可以改善可持续工作的流程。   
    6.维持完整工作的不变的步调。   
    7.欢迎改变的需求,即时是在项目后期。  
    8.在项目期间每天与项目团队和业务所有者开会。   
    9.在定期修正期,让团队反映如何能高效,然后进行相应地行为调整。  
    10.通过完车的工作量计量工作进度。   
    11.不断地追求完善。   
    12.利用调整获得竞争优势。
    下面这张图是Scrum的框架,它包含了Scrum的所有必备要素,也就是我们所说的三三五五。简单来讲,就是:

    三个角色:Scrum Master、Product Owner(产品负责人)和 Team(团队)。
    三个工件:Product Backlog(产品待办事项)、Sprint Backlog (Sprint 待办事项)和 可交付产品增量。
    五大仪式(事件):Sprint(冲刺)、Sprint Planning(Sprint规划)、Sprint Daily Standup(每日站会)、Sprint Review(Sprint 评审)和 Sprint Retrospective(回顾)。
    五大价值观:Coverage(勇气)、Openness(开放)、Focus(专注)、Commitment(承诺)和 Respect (尊重)。
    ScrumFramework
    在这里插入图片描述
    总结
    在这里插入图片描述
    敏捷开发的路线:
    Test-Driven Development,测试驱动开发。
    Continuous Integration,持续集成。
    Refactoring,重构。
    Pair-Programming,结对编程。
    Stand up,站立会议。
    Frequent Releases,小版本发布。
    Minimal Documentation,较少的文档。
    Collaborative Focus,以合作为中心,表现为代码共享。
    Customer Engagement ,现场客户。
    Automated Testing ,自动化测试。
    Adaptive Planning,可调整计划。
    敏捷软件生命周期用两张图来表示:
    在这里插入图片描述在这里插入图片描述

    展开全文
  • Agile原则与价值观

    2018-07-16 13:14:51
    The Agile ManifestoIndividuals and Interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over follo...
    The Agile Manifesto

    Individuals and Interactions over processes and tools

    Working software over comprehensive documentation

    Customer collaboration over contract negotiation

    Responding to change over following a plan

    That is, while there is value in the items on the right, they value the items on the left more.

    Agile software development principles

    1. Customer satisfaction by early and continuous delivery of valuable software
    2. Welcome changing requirements, even in late development
    3. Working software is delivered frequently (weeks rather than months)
    4. Close, daily cooperation between business people and developers
    5. Projects are built around motivated individuals, who should be trusted
    6. Face-to-face conversation is the best form of communication (co-location)
    7. Working software is the primary measure of progress
    8. Sustainable development, able to maintain a constant pace
    9. Continuous attention to technical excellence and good design
    10. Simplicity—the art of maximizing the amount of work not done—is essential
    11. Best architectures, requirements, and designs emerge from self-organizing teams
    12. Regularly, the team reflects on how to become more effective, and adjusts accordingly

    展开全文
  • Agile has revolutionized the way teams approach software development, but with dozens of agile methodologies to choose from, the decision to "go agile" can be tricky. This practical book helps you ...
  • Agile的相关概念

    2019-03-31 18:01:58
    敏捷测试(Agile testing) 敏捷开发的最大特点是高度迭代,有周期,并且能够及时、持续的响应客户 的频繁反馈。敏捷测试即是不断修正质量指标,正确建立测试策略,确认客户的 有效需求能得以圆满实现和确保整个生产的...

    敏捷测试(Agile testing)
    敏捷开发的最大特点是高度迭代,有周期,并且能够及时、持续的响应客户

    的频繁反馈。敏捷测试即是不断修正质量指标,正确建立测试策略,确认客户的

    有效需求能得以圆满实现和确保整个生产的过程安全的、及时的发布最终产品。

    首先敏捷测试(Agile testing)是测试的一种,原有测试定义中通过执行被测系
    统发现问题,通过测试这种活动能够提供对被测系统提供度量等概念还是适用的。
    敏捷测试是遵循敏捷宣言的一种测试实践:
    1、强调从客户的角度,即从使用系统的用户角度,来测试系统。
    2、重点关注持续迭代地测试新开发的功能,而不再强调传统测试过程中严格的测试阶段。
    3、建议尽早开始测试,一旦系统某个层面可测,比如提供了模块功能,就要开始模块层面的单元测试,同时随着测试深入,持续进行回归测试保证之前测试过内容的正确性。
    敏捷测试与普通测试的区别:
    1.项目相当于开发与测试并行,项目整体时间较快。
    2.模块提交较快,测试时较有压迫感。
    3.工作任务划分清晰,工作效率较高。
    4.项目规划要合理,不然测试时会出现复测的现象,加大工作量。
    5.发现问题需跟紧,项目中人员都比较忙,问题很容易被遗忘。
    6.耗时、或较难解决对项目影响不大的问题一般会遗留到下个阶段解决。
    7.发现BUG能够很快的解决,对相关的模块的测试影响比较小。
    8.版本更换比较勤,影响到测试的速度。
    9.要多与开发沟通。
    10.要注意版本的更新情况。
    11.测试人员几乎要参加整个项目组的所有会议。
    Scrum——橄榄球式开发模式:
    Scrum 是一个用于开发和维持复杂产品的框架,是一个增量的、迭代的开发过程,是敏捷开发的一种实现机制。Scrum以经验性过程控制理论(经验主义)为理论基础,主张知识源于经验, 以及基于已知的东西做决定。Scrum 采用迭代、增量的方法来优化可预见性并控制风险。在这个框架中,整个开发过程由若干个短的迭代周期组成,一个短的迭代周期称为一个冲刺(Sprint)。
        在Scrum中,使用产品Backlog来管理产品需求和开发任务。产品backlog是一个按照商业价值(或实现优先级)排序的事项列表,列表条目的体现形式通常为用户故事。在规划Sprint时,Scrum团队从产品Backlog中挑选最高优先级的需求,在Sprint计划会议上经过讨论、分析和估算得到相应的任务,并分配给具体的成员去实现。
        当前Sprint需要完成的任务会展现在特别设计的面板上,清晰地展示每个任务的负责人、当前状态、实现过程中的问题和变更等等信息。项目团队和各利益攸关方能清晰地把握每个任务的开发进度和遇到的问题,并以此分析、控制项目的进度、成本和风险。
        Scrum以站立会作为项目规划、过程控制和资源分配的内部交流协商机制。
        在每个迭代结束时,Scrum团队将递交潜在可交付的产品增量。
    XP极限编程:
    那么什么是XP呢?XP是一种轻量(敏捷)、高效、低风险、柔性、可预测、科学而且充满乐趣的软件开发方式。与其他方法论相比,其最大的不同在于:
    在更短的周期内,更早地提供具体、持续的反馈信息。
    在迭代的进行计划编制,首先在最开始迅速生成一个总体计划,然后在整个项目开发过程中不断的发展它。
    依赖于自动测试程序来监控开发进度,并及早地捕获缺陷。
    依赖于口头交流、测试和源程序进行沟通。
    倡导持续的演化式设计。
    依赖于开发团队内部的紧密协作。
    尽可能达到程序员短期利益和项目长期利益的平衡。
    Kent Beck曾经说过“开车”就是一个XP的范例,即使看上去进行得很顺利,也不要把视线从公路上移开,因为路况的变化,将使得你必须随时做出一些这样那样的调整。而在软件项目中,客户就是司机,他们也没有办法确切地知道软件应该做什么,因此程序员就需要向客户提供方向盘,并且告知我们现在的位置。
    敏捷方法之极限编程(XP)和 Scrum区别:
    区别之一: 迭代长度的不同
    XP的一个Sprint的迭代长度大致为1~2周, 而Scrum的迭代长度一般为 2~ 4周。
    区别之二: 在迭代中, 是否允许修改需求、
    XP在一个迭代中,如果一个User Story(用户素材, 也就是一个需求)还没有实现, 则可以考虑用另外的需求将其替换, 替换的原则是需求实现的时间量是相等的。而Scrum是不允许这样做的,一旦迭代开工会完毕, 任何需求都不允许添加进来,并有Scrum Master严格把关,不允许开发团队受到干扰。
    区别之三: 在迭代中,User Story是否严格按照优先级别来实现
    XP是务必要遵守优先级别的。但Scrum在这点做得很灵活,可以不按照优先级别来做,Scrum这样处理的理由是:如果优先问题的解决者,由于其它事情耽搁,不能认领任务,那么整个进度就耽误了。另外一个原因是,如果按优先级排序的User Story #6和#10,虽然#6优先级高,但是如果#6的实现要依赖于#10,则不得不优先做#10。
    区别之四:软件的实施过程中,是否采用严格的工程方法,保证进度或者质量
    Scrum没有对软件的整个实施过程开出工程实践的处方,要求开发者自觉保证。但XP对整个流程方法定义非常严格,规定需要采用TDD、自动测试、结对编程、简单设计、重构等约束团队的行为。

    敏捷框架Scrum的核心要点(“3355”):
    Scrum是敏捷实践中最知名的一套框架。对于初学 Scrum 的同学,领会精髓需要实践和时间,但借助对其中最成型的部分的了解,能最快速的一窥其概貌。虽不精确,但有助于建立宏观的体感。Scrum 的核心可以简单归纳为“3355”。
    3个核心角色:
    Scrum的三个核心角色分别是:Scrum Master、Product Owner(产品负责人)和 Scrum Team(团队)。
    3个工件:
    Scrum的工件主要包括:Product Backlog(产品待办事项)、Sprint Backlog (Sprint 待办事项)和 Increment(可交付产品增量)。
    5个事件:
    Scrum的五大事件,或 event,包括:冲刺、Sprint规划、每日站会、Sprint评审会和回顾会。
    承诺 Commitment - 愿意对目标做出承诺
    5大价值观:
    专注 Focus – 全身心都用到你承诺的工作上去
    开放 Openness – 团队内所有信息对所有人开放
    尊重 Respect – 每个人都有他独特的价值和经验
    勇气 Courage – 勇于承诺,履行承诺,敢于说不
    敏捷十二原则:
    1、我们的最高目标是,通过尽早和持续地交付有价值的软件来满足客户。
    2、欢迎对需求提出变更——即使是在项目开发后期。要善于利用需求变更,帮助客户获得竞争优势。
    3、要不断交付可用的软件,周期从几周到几个月不等,且越短越好。
    4、项目过程中,业务人员与开发人员必须在一起工作。
    5、要善于激励项目人员,给他们以所需要的环境和支持,并相信他们能够完成任务。
    6、无论是团队内还是团队间,最有效的沟通方法是面对面的交谈。
    7、可用的软件是衡量进度的主要指标。
    8、敏捷过程提倡可持续的开发。项目方、开发人员和用户应该能够保持恒久稳定的进展速度。
    9、对技术的精益求精以及对设计的不断完善将提升敏捷性。
    10、要做到简洁,即尽最大可能减少不必要的工作。这是一门艺术。
    11、最佳的架构、需求和设计出自于自组织的团队。
    12、团队要定期反省如何能够做到更有效,并相应地调整团队的行为。
    TDD(Test-Driven Development):
    TDD是测试驱动开发(Test-Driven Development)的英文简称,是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD虽是敏捷方法的核心实践,但不只适用于XP(Extreme Programming),同样可以适用于其他开发方法和过程。
    优缺点:
    优点:在任意一个开发节点都可以拿出一个可以使用,含少量bug并具一定功能和能够发布的产品。
    缺点:增加代码量。测试代码是系统代码的两倍或更多,但是同时节省了调试程序及挑错时间。
    BDD(Behavior Driven Development):
    行为驱动开发是一种敏捷软件开发的技术,它鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作。它包括验收测试和客户测试驱动等的极限编程的实践,作为对测试驱动开发的回应。
    CI、CD:
    持续集成(Continuous integration)是一种软件开发实践,每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
    持续部署(continuous deployment)是通过自动化的构建、测试和部署循环来快速交付高质量的产品。

    展开全文
  • 常见的6个agile方法

    千次阅读 2012-01-15 12:08:37
    Adaptive Software Development (ASD) ASD is based on Complex Adaptive Systems theory and treats software development as a collaborative learning exercise. ASD is based on the “Adaptive Life Cycle” ...
  • 敏捷(Agile)——“说三道四”

    千次阅读 2017-07-27 15:14:29
    概述关于敏捷开发,... Agile software development describes a set of principles for software development under which requirements and solutions evolve through the collaborative effort of self-organizin
  • 初探什么是敏捷? 过程重要,但结果更重要,因此敏捷仍然要看结果,是否在实施敏捷方法后能够使项目按时按质的完成。敏捷就是又好又块,再精确点就是多快好省。提出这个的一个重要原型还在对于软件开发中的需求不...
  • Agile

    2014-07-23 15:09:25
    Early implementations of agile methods include Rational Unified Process (1994), Scrum (1995), Crystal Clear, Extreme Programming (1996), Adaptive Software Development, Feature ...
  • 实战中的Agile开发

    千次阅读 2020-02-19 21:07:44
    Agile(敏捷)开发介绍 开始本篇之前先来大致看看敏捷开发的内容: 首先敏捷开发的宣言: 1. 个体和交互 胜过 过程和工具 2. 可以工作的软件 胜过 面面俱到的文档 3. 客户合作 胜过 合同谈判 4. 响应变化 ...
  • Agile Practice Guide

    2020-07-26 23:32:39
    Agile Practice Guide has been developed as a resource to understand, evaluate, and use agile and hybrid agile approaches. This practice guide provides guidance on when, where, and how to apply agile ...
  • ContentsIntroductionELementsProjectsTypes of AgileKanban AgileScrum AgileAgile TasksIssue TypeAgile Boards in the JIRA backlog ...Jira is one of the most flexible most powerful Agile team ma...
  • Agile Data Science 2.0

    2020-07-27 23:30:49
    Agile Data Science 2.0: Building Full-Stack Data Analytics Applications with Spark by Russell Jurney English | 7 Jun. 2017 | ASIN: B072MKL34K | 352 Pages | AZW3 | 5.91 MB Data science teams looking ...
  • Agile Testing学习

    2019-10-27 23:19:09
    简介 为什么提出了敏捷测试的思想 敏捷测试的理念是什么 如何通过流程改进实现敏捷思想 如何通过技术支持实现敏捷思想 如何把事情做的有条不紊而且又快又好 ...Agile Testing involves all members of the projec...
  • Agile Methodology

    2018-04-24 12:16:58
    Agile Method Agile is a software development methodology to build a software incrementally using short iterations (called sprint) of 1 - 4 weeks so that the development process is aligned with the ch...
  • 本人是学院派,总认为良好的理论
  • AgilePM 入门学习

    2018-11-25 00:27:53
    Contents – Agile Foundation Version source: SKEMA, Paris Session 1: Introduction Session 2: Roles and Responsibilities Session 3: The DSDM Process and Products Session 4: Techniques Session 5: ...
  • Best practices for managing projects in agile environments—now updated with new techniques for larger projects Today, the pace of project management moves faster. Project management needs to ...
  • Agile/Scrum

    千次阅读 2019-07-01 17:51:49
    Agile Agile与其说是一系列软件开发的方法论,不如说是一种观念,一种思想。有很多流程框架用于敏捷文化。Scrum是其中最出名,应用最广的一种。但是不管是哪一种都仅仅是一种参考,并不是一个绝对的方法。要实现敏捷...
1 2 3 4 5 ... 20
收藏数 29,420
精华内容 11,768
关键字:

agile