2018-10-23 10:10:39 dongjinkun 阅读数 560
  • 敏捷开发——SCRUM

    SCRUM是当前较火的一种敏捷开发方法,有用户故事、冲刺、燃尽图等很多很酷的玩法,有牛B的产品负责人、SCRUM Master,有很强的自组织团队。

    13678 人正在学习 去看看 张传波

在备战软考做题的过程中,发现敏捷软件开发方法考的还算比较多,而自己也一直没弄明白!

敏捷开发方法

极限编程XP 是一种轻量级,高效,低风险,不能使编码速度加快
水晶法 每个不同的项目都要一套不同的开发策略,约定和方法论
并列争球法 运用了“迭代”的方法,把每段时间(例如30天)一次的迭代成为一个冲刺,并按需求的优先级别来实现产品,有多个自治组织和自治小组并行的递增来实现产品。
自适应软件开发  

 

 

 

2018-11-25 23:46:06 weixin_39911085 阅读数 179
  • 敏捷开发——SCRUM

    SCRUM是当前较火的一种敏捷开发方法,有用户故事、冲刺、燃尽图等很多很酷的玩法,有牛B的产品负责人、SCRUM Master,有很强的自组织团队。

    13678 人正在学习 去看看 张传波

什么是敏捷开发

敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方式,它并不是一门技术,而是一种开发方式,一种软件开发流程。指导我们用规定的环节一步一步去完成项目的开发,区别于软件的传统的开发模式(瀑布模式:需求分析到详细设计,从编码到测试,测试完成后再交付这么一个流程),而敏捷开发则是不要求非常完美的需求分析、设计、文档,而是在最短的一个时间内完成一个框架,然后不断迭代、测试,直至交付--------不指某种具体的过程或框架,而是一组价值观和原则,是应对快速变化的需求的一种软件开发能力。

敏捷开发的原则

敏捷开发的12条原则:

  1. 我们最重要的目标,是通过持续不段的及早交付有价值的软件使客户满意(价值大于一切)。
  2. 欣然面对需求变化,即使在开发后期也一样,为了客户的竞争优势,敏捷过程掌握变化。
  3. 经常交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。
  4. 业务人员和开发人员必须相互合作,项目当中的每一天都不例外(沟通)。
  5. 激发个体的斗志,以他们为核心搭建项目;提供所需的环境和支援,辅以信任,从而达成目标。
  6. 不论团队内外,传递消息效果最好效率也最高的方式是面对面的交谈,即face to face。
  7. 可工作的软件是进度的首要度要标准。
  8. 敏捷过程倡导可持续开发(即迭代),责任人、开发人员和用户要共同维持其步调稳定延续。
  9. 坚持不懈的追求卓越技术和良好设计,敏捷能力由此增强。
  10. 以简洁之本,它是极力减少不必要工作量的艺术。
  11. 最好的架构、需求和设计出自组织团队(整个team一起商量出来的结果)。
  12. 团队需要定期的反思如何提高成效,并依此调整自身的举止表现/

多种敏捷开发的方法

常见的敏捷开发方法:

  • 软件开发节奏,SoftWare Development Rhythmns
  • 敏捷数据库技术,AD/Agile Database Techniques
  • 敏捷建模,AM/Agile Modeling
  • 自适应软件开发模式,ASD/Adaptive Sofatware Development
  • 水晶方法,Crytal
  • 特性驱动方法,FDD/Feature Driven Development
  • 动态系统开发方法,DSDM/Dynamic Systems Development Method
  • Scrum
  • 极限编程
  • 探索性测试

一个敏捷团队

大致9~12人规模,开发4名,其余各一名;

  • PM: Project Manager, 项目经理
  • BA: Business Analystt, 业务分析师
  • TL: Technical Leader 技术领导
  • QA: Quilty Assurance 测试人员
  • UX: User Experience 用户体验设计师
  • DEV:Developer, 开发人员
  • DevOps : 运维人员

敏捷开发中常用的术语

  • IPM : Iteration Plan Meeting ,迭代计划会
  • Standup: 站会
  • Story: 用户故事/需求,体现为看板上的卡片
  • Story KickOff :启动卡的开发
  • Pair : 结对编程
  • TDD : Test Driven Development ,测试驱动开发
  • Code Review : 代码检查
  • ShowCase : 演示已经完成迭代的功能
  • AC : Acceptance Criteria ,验收条件
  • CI : Continious Integration,持续集成
  • Retro : 回顾会议(即每个迭代的项目总结)
  • TB : Team Building ,团队建设

迭代的典型流程

在这里插入图片描述

致谢

最后要感谢项目得晓峰老师得分享,让我具体了解敏捷开发的概念以及敏捷开发具体怎么实现的,thank you.

2012-04-05 12:27:12 iteye_4001 阅读数 14
  • 敏捷开发——SCRUM

    SCRUM是当前较火的一种敏捷开发方法,有用户故事、冲刺、燃尽图等很多很酷的玩法,有牛B的产品负责人、SCRUM Master,有很强的自组织团队。

    13678 人正在学习 去看看 张传波
敏捷开发的目的是在保证开发质量的前提下提高开发效率。敏捷开发需要有两个前提,团队人员对所应用的技术有比较全面深入的了解;开发及测试人员对软件的业务逻辑有全面深入的了解。换句话说,一个项目或者一个产品发展到一定阶段之后,可以根据实际情况逐步过渡敏捷开发的方法上来。
一般来说,敏捷开发有以下特征:
1、团队规模比较小,10人左右是比较合适的。
2、团队内部强调沟通,包括经常性的standup meeting和就某个技术、需求问题的讨论,讨论方式包括面对面、电话和邮件。
3、文档特别是开发人员撰写的文档大幅减少,如果只是在现有技术框架下添加一个新的业务功能,甚至不需要标准的设计文档和功能描述文档,当然详细的使用手册或者online help还是需要的。
4、单元测试以及UI自动测试的应用,可以显著增强软件质量。特别是对于开发周期比较长的软件来说,自动测试可以大大减轻QA人员进行回归测试的工作量。
2008-04-13 15:53:04 wiisolax 阅读数 94
  • 敏捷开发——SCRUM

    SCRUM是当前较火的一种敏捷开发方法,有用户故事、冲刺、燃尽图等很多很酷的玩法,有牛B的产品负责人、SCRUM Master,有很强的自组织团队。

    13678 人正在学习 去看看 张传波
文章转自:[url]http://developer.51cto.com/art/200803/67844.htm[/url]


敏捷开发包括一系列的方法,主流的有如下七种:

[b]XP[/b]

XP(极限编程)的思想源自 Kent Beck和Ward Cunningham在软件项目中的合作经历。XP注重的核心是沟通、简明、反馈和勇气。因为知道计划永远赶不上变化,XP无需开发人员在软件开始初期做 出很多的文档。XP提倡测试先行,为了将以后出现bug的几率降到最低。

[b]SCRUM[/b]

SCRUM是一种迭代的增量化过程,用于产品开发或工作管理。它是一种可以集合各种开发实践的经验化过程框架。SCRUM中发布产品的重要性高于一切。

该方法由Ken Schwaber和 Jeff Sutherland 提出,旨在寻求充分发挥面向对象和构件技术的开发方法,是对迭代式面向对象方法的改进。

[b]Crystal Methods[/b]

Crystal Methods(水晶方法族)由Alistair Cockburn在20实际90年代末提出。之所以是个系列,是因为他相信不同类型的项目需要不同的方法。虽然水晶系列不如XP那样的产出效率,但会有更多的人能够接受并遵循它。

[b]FDD[/b]

FDD (Feature-Driven Development,特性驱动开发)由Peter Coad、Jeff de Luca 、Eric Lefebvre共同开发,是一套针对中小型软件开发项目的开发模式。此外,FDD是一个模型驱动的快速迭代开发过程,它强调的是简化、实用、 易于被开发团队接受,适用于需求经常变动的项目。

[b]ASD[/b]

ASD(Adaptive Software Development,自适应软件开发)由Jim Highsmith在1999年正式提出。ASD强调开发方法的适应性(Adaptive),这一思想来源于复杂系统的混沌理论。ASD不象其他方法那样 有很多具体的实践做法,它更侧重为ASD的重要性提供最根本的基础,并从更高的组织和管理层次来阐述开发方法为什么要具备适应性。

[b]DSDM[/b]

DSDM(动态系统开发方法)是众多敏捷开发方法中的一种,它倡导以业务为核心,快速而有效地进行系统开发。实践证明DSDM是成功的敏捷开发方法之一。在英国,由于其在各种规模的软件组织中的成功,它已成为应用最为广泛的快速应用开发方法。

DSDM不但遵循了敏捷方法的原理,而且也适合那些成熟的传统开发方法有坚实基础的软件组织。

[b]轻量型RUP[/b]

RUP其实是个过程的框架,它可以包容许多不同类型的过程,
Craig Larman 极力主张以敏捷型方式来使用RUP。他的观点是:目前如此众多的努力以推进敏捷型方法,只不过是在接受能被视为RUP 的主流OO开发方法而已。
2014-01-19 00:13:00 zs15932616453 阅读数 3697
  • 敏捷开发——SCRUM

    SCRUM是当前较火的一种敏捷开发方法,有用户故事、冲刺、燃尽图等很多很酷的玩法,有牛B的产品负责人、SCRUM Master,有很强的自组织团队。

    13678 人正在学习 去看看 张传波
       上次的博文敏捷开发之道(一)敏捷开发宣言中,我们介绍了一下敏捷开发宣言,在其中,我们了解到了关于敏捷开发的几个重要的价值观。今天我们来了解一个敏捷开发的方法——极限编程XP

1、介绍

       极限编程(eXtreme Programming,简称XP)是敏捷方法中最被推崇的一个,它是一种优良的、通用的软件开发方法,它是由一组简单、具体、相互依赖的实践组成,这些实践结合在一起形成了敏捷开发过程。项目团队可以直接拿来使用,也可以对其中的实践进行修饰。

2、实践

       1)、客户作为团队成员

       我们上篇的博客中提到,敏捷开发中希望客户能够很好参与到项目中,与开发人员一起紧密工作。在XP中,谁是客户呢?
       XP中认为的客户是能够提供产品的特性并排列这些特性优先级的人或者团队。所以客户的定义非常广泛,也非常灵活,它可以不是真正的客户,因为客户很忙,所以如果我们的团队中没有真正的客户,那么我们也要设法去寻找和创造客户的替代品并将客户纳入到我们的项目团队中,而不是空缺。

       2)、用户素材

       在XP中,我们希望尽可能的将需求了解的更多和理解的更准确,但随着时间的推移和项目的进行,客户很可能变更一些需求和细节,所以在XP中,开发人员和客户探讨需求的过程汇总,更加希望客户能够在索引卡片上写下一些我们认可的词语,这些词语主要的目的就是使我们能够回忆起这次的交谈,开发人员可以在这些卡片上进行需求的估算。

       在这些卡片上写下的帮助我们进行优先级和价值估算的注记符就是用户素材,它的作用在于帮助我们进行计划的制定和实现的安排。

       3)、短交付周期

       XP项目一般每两周交付一次,两周成为一次迭代,每次迭代之后,会给客户进行一次演示,以便带到更加积极的反馈。
       在每一次迭代之初,首先要做的就是制定迭代计划。制定计划就是开发人员根据客户给的用户素材进行预算,客户为本次迭代选取任意数量的用户素材,一旦迭代开始,客户就不可以修订用户素材的优先级和定义,在迭代期间,开发人员就可以任意的将用户素材分解成任务,并按照一定的顺序进行开发
       迭代计划是一个比较小的交付,在一个XP团队中,通常会创建一个包含大约6次迭代内容的计划,也就是指定3个月的工作,它表示一个较大的交付,而这个较大的交付一般会被加入到产品中,所以成为发布计划。发布计划与迭代计划的实现过程类似,所不同的是,发布计划不是一成不变的,客户可以随时改变计划内容、改变用户素材的优先级以及编写新的用户素材等。

       4)、验收测试

       验收测试是由某种脚本语言编写的,可以用来验证系统能否按照客户指定的行为运转。所以,开发人员可以通过使用客户指定的验收测试进行有关用户素材细节的获取。也就是说,开发人员可以多次运行验收测试进行项目验收,一旦验收通过,那么系统创建就宣告结束,同时可以将该验收测试加入到项目中,并绝不允许该验收测试再次修改。


       今天的博客就先给大家介绍XP的这四个实践,更多内容,我们下一篇继续,请继续关注!


未完待续……

敏捷开发方法

阅读数 3

没有更多推荐了,返回首页