2019-01-22 19:56:09 KamRoseLee 阅读数 218
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10409 人正在学习 去看看 CSDN讲师

软件开发遇到重要问题:

  • 学习  是软件开发中一大瓶颈
  • 如何让成员积极主动,负有责任感,能解决问题,并凝聚成一支高效的团队?

敏捷开发历史:

  • 敏捷开发并不现代   起源于20世纪30年代的一些项目(美国航天局水星计划)
  • 最早记载使用在20世纪70年代  最早的有记载的使用迭代和增量开发的主要项目之一,是为第一艘美国三叉戟潜艇开发的第一指挥和控制系统。该项目有大约一百万行代码,进行得非常成功。
  • 1976年,第一部阐述敏捷方法的书籍    Tom Gilb在他的著作《软件度量》(“Software Metrics”)一书中阐述了他的迭代和增量开发实践
  • 20世纪80年代正式定义迭代开发螺旋模型  20世纪80年代在1895年,巴里贝母(Barry Boehm)正式定义了使用迭代开发的螺旋模型
  • 20世纪90年代推荐使用迭代和增量开发的出版物和文献显著增加
  • 2001年二月敏捷开发宣言后形成敏捷联盟  一组由17位在DSDM,XP,Scrum,FSD等领域的专家组成的代表团齐聚美国犹他州,寻找这些方法的共同点。最终,这些专家制定并宣布了敏捷开发宣言。由此形成了现在我们所认识的敏捷开发和后来的敏捷联盟

敏捷开发介绍:

敏捷开发(agile development)

     是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。简言之,就是把一个大项目分为多个相互联系,

但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

敏捷开发由几种轻量级的软件开发方法组成

   它们包括:极限编程(XP),Scrum,精益开发(Lean Development),动态系统开发方法(DSDM),特征驱动开发(Feature Driver Development),水晶开发(Cristal Clear)等等

敏捷开发原则和方法

1)迭代式开发。即整个开发过程被分为几个迭代周期,每个迭代周期是一个定长或不定长的时间块每个迭代周期持续的时间一般较短,通常为一到六周。

 

  1. 增量交付。产品是在每个迭代周期结束时被逐步交付使用,而不是在整个开发过程结束的时候一次性交付使用。每次交付的都是可以被部署到用户应用环境中被用户使用的、能给用户带来即时效益和价值的产品。
  2. 开发团队和用户反馈推动产品开发。敏捷开发方法主张用户能够全程参与到整个开发过程中。这使需求变化和用户反馈能被动态管理并及时集成到产品中。同时,团队对于用户的需求也能及时提供反馈意见。
  3. 持续集成。新的功能或需求变化总是尽可能频繁地被整合到产品中。一些项目是在每个迭代周期结束的时候集成, 有些项目则每天都在这么做。

5)开发团队自我管理。拥有一个积极的、自我管理的、具备自由交流风格的开发团队,是每个敏捷项目必不可少的条件。人是敏捷开发的核心。敏捷开发总是以人为中心建立开发的过程和机制,而非把过程和机制强加给人。

敏捷开发实践都基于一个简单的周期

  1. 测试先行开发1)写一个失败的测试2)编写代码让测试通过3)运行测试---通过了吗?4)如果测试仍然失败,回到步骤2
  2. 日常工作流程1)在每日的站立会议中,设置团队需要完成的任务2)执行这些任务3)第二条对任务的执行情况和遇到问题进行沟通4)总结经验教训,调整第二天的工作计划
  3. 测试驱动需求1)将需求转变为测试 2)进行软件开发 3)运行这些测试,如果测试通过,任务完成,如果没有回到2
  4. 迭代 1)设定一个 完成状态 2)找到一系列需求,构成迭代待办事项,并承诺完成3)一一解决待办事项4)迭代结束,一一检查每个事项是否达到,“完成状态”,如果是,标记完成,否则将他们放回待办事项中,以待日后处理。
  5. 演示 通常在迭代末进行演示,客户可以利用这个机会,验证针对预期需求的实现是否真正地解决了当前的问题 1)确定需求的业务价值  2)定义需求 3)实现需求 4)验证实现的功能是否满足业务需要
  6. 回顾1)确定团队的工作方法 2)在迭代中应用这方法 3)反思总结实践过程中的好坏方面 4)找到一些更加有效的方法,确定什么时间,谁负责实行
  7. 版本发布 1)创建该版本的远景,并设定需要达到的业务目标2)创建该版本的待办事项3)通过多次迭代来发布该版本4)为部署,并为下一个版本收集反馈信息
  8. Scrums的Scrum会议  会议来进行信息同步,通过沟通和讨论来展示自己的进度和解决遇到的问题,这能提高大家感知整个企业的变化,从而积极应变
  9. 管理检验 1)与那些产品所有者或者项目负责人一起,定义项目或者是某个版本的验收标准 2)在团队开发过程中,保证这些验收标准随时可见,使项目始终朝着期望的方向发展3)回忆会议中,一起评估标准4)让产品所有者或项目负责人和团队一起工作,保证在每一个迭代中针对这些验收标准进行检验

几种敏捷实践:

  1. 自组织团队  整个团队紧密合作,同心协力,主动承担责任,竭尽所能去完成工作,响应各种变化
  2. “联合驻扎”团队  团队成员在一起工作,经常进行小组讨论,随时可以听到各种谈话,潜移默化中就了解到发生的事情
  3. 跨职能团队  来自不同背景的人组成一个团队,自始至终地进行开发来解决一个问题。因为大家在一起紧密协作,各自的专长就会得到分享和传播
  4. 结对编程   两个人一起,齐心协力完成一些任务,这个是共享经验和专长的极致体现
  5. 信息辐射器  这种大幅图表存在的唯一目的就是把重要的信息传达给每一个人
  6. 唤醒式文档  为了更好的沟通,敏捷团队成员共同撰写文档,日后每次阅读这些文档,都可以唤起大家对讨论内容和相关背景的记忆。
  7. 站立会议 在敏捷团队中,大家每天都会彼此交流自己完成什么,遇到了什么问题,明天计划如何,这就保证了所以成员步调协调一致

敏捷实践的主要动力来源:

主要动力来源:带给客户价值

  1. 缩短上市时间
  2. 增加产品使用行(市场价值)
  3. 提高产品质量
  4. 提高灵活性
  5. 增强透明度
  6. 降低成本
  7. 延迟产品生命周期
2018-01-02 09:48:07 unize4 阅读数 720
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10409 人正在学习 去看看 CSDN讲师

开发模式以及流程

参考禅道敏捷开发论坛1整理除了一份(可能)适合自己公司的开发模式,具体如下图:
这里写图片描述

小团队对于项目开发上也走了很多弯路,目前还处在一个探索阶段,出于多种考虑很多看起来比较完善的方案无法去实施。


2018-07-10 23:51:35 zhouxiaojie1994 阅读数 72
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10409 人正在学习 去看看 CSDN讲师

第九章

9.1 敏捷开发模式的特征

敏捷开发以用户体验为核心,以客户需求为导向。

特点:依赖客户的参与,测试驱动,紧凑的迭代开发周期。

9.2 敏捷测试

敏捷测试是协同测试的一种,要求每个人都参与到测试计划的设计、实现以及执行中去。

9.3 极限测试

极限编程模型可能是为了支持诸如Java、VB、C#等面向对象编程语言。

XP模型除了需要客户参与之外,还高度依赖模块的单元和验收测试。总体说,对任何一个递增的代码变更,开发人员都必须进行单元测试,以确保代码满足其规格说明的要求。事实上,测试在XP中的地位非常重要,所以需要首先建单元(模块)测试和验收测试,然后才能创建代码库。这种形式的测试称为极限测试( eXtreme Testing,XT)。

9.3.1极限编程基础

如前所述,XP是一种可以使开发人员快速生产高质量代码的软件开发过程在这种情况下,我们可以将“质量”定义为代码库对其设计的规格以及客户的意程度
XP的关注点是
1)实现简单的设计。
2)开发人员与客户的沟通协作。
3)不断地测试代码库。
4)重构以适应规格说明的变更。
5)寻求用户的反馈。

XP开发模型用12个核心实践来驱动该过程。简单来说,这12个核心的XP实践可以归纳为4个概念
1.聆听客户和其他程序员的谈话。
2.与客户合作,开发应用程序的规格说明和测试用例。
3.结对编程。
4.反复测试代码库。

极限单元测试:单元测试是极限测试中采用的主要测试方法,它具有两条简单规则:所有代码模块在编码开始之前必须设计好单元测试用例,在产品发布之前须通过单元测试。乍看起来,这些原则似乎不太极端。但是,极限测试中的单元测试与前面描述的单元测试之间的最大差别在于,极限测试中的单元测试必须在模块编码之前就完成设计和生成。

验收测试:验收测试是XP方法中第二类、也是同等重要的极限测试类型。验收测试的目的是判断应用程序是否满足如功能性和易用性等其他需求。在设计/计划阶段,由开发人员和客户来设计验收测试。

2016-08-26 15:58:30 lixianjun913 阅读数 495
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10409 人正在学习 去看看 CSDN讲师

列举一些对敏捷开发模式比较实用的文章:
1、敏捷开发流程总结
http://blog.csdn.net/alvanchen/article/details/5749872
2、创业公司如何实施敏捷开发
http://www.lanceyan.com/chuangye/chuangye_agile_scrum.html
3、JAVA敏捷开发环境搭建
http://www.lanceyan.com/chuangye/java_agile_develop_tools.html
4、谈一谈你身边的敏捷开发,老板想从敏捷开发中得到什么?敏捷后,老板和团队成员从敏捷开发中得到了什么?
http://www.zhihu.com/question/20944039

2014-01-11 18:46:45 YHC2113 阅读数 747
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10409 人正在学习 去看看 CSDN讲师

开发工作中使用的敏捷开发模式

来现在的公司有一段时间了,现在主要用java开发采用敏捷的开发模式。因为以前工作中对敏捷的了解比较少所以觉得有必要进行梳理总结下。

敏捷开发的定义及解释说明这里就略过了,想要详细了解的朋友可以猛点这里(敏捷开发详解)。

谈敏捷开发先从流程讲起吧。首先,每天早上我们会有一个晨会( 站立会议 ),主要汇报昨天自己所做的工作及自己在工作的过程中所遇到的问题,然后叙述今天计划的工作,组内成员依次汇报组长做好笔录。如果组内成员有遇到自己不能解决的问题,晨会上提出来大家共同探讨,但如果估计讨论时间会比较长的时候就会安排会下协调处理,毕竟每个人的时间是宝贵的。这是一个高效的会议意在了解组内各成员的工作进度及状态。

会议结束后大家就得忙各自的Story去了,说到Stroy可能有朋友会问了,什么是Story?下面我们就一起来了解下,说白了敏捷里面Story就是项目启动前你的项目经理或组长将项目划分出来的一个独立的功能模块。然后根据组内成员的特长安排的开发任务,在迭代中(通常两个星期为一个迭代周期)开发完成。一般测试人员会在开发人员开发Story的期间完成测试用例的编写,便于开发完成Stroy后showCase(开发人员在本地环境运行story供测试人员测试)时进行验收。showCase通过后Story算是初步通过,因为迭代模式中的每个模块交付时都必须是独立可运行的也是集成可测试的,所以,功能代码在测试环境集成测试无误后该Story才算验收通过。

开发人员完成编码工作后并不意味着任务就结束了,这只是刚刚开始。是的,没说错,刚刚开始!测试人员会在测试环境对各个模块进行测试,如果发现问题会及时的在bug反馈系统中(用于跟踪问题的解决进度及完成情况)提出问题单进行跟踪,开发人员编码完成后最主要的工作估计就是和这个系统打交道了,需要及时的查看解决bug系统上面的问题单然后对问题单的状态进行变更,便于测试人员回归测试。

当然,让测试人员发现并反馈了很多的问题也是让我们开发人员比较苦恼的一件事情,毕竟不是什么好事儿。谁都希望自己交付的代码能够经得起考验,少出现或不出现问题(当然我们知道这是不可能的),那么怎么办呢?敏捷里面针对类似的情况也有合理的应对流程,确保高效、高质、高产按时的交付。那就是我们常说的结对编程,通俗的说就是A和B两个人划分为一个编程小组,有问题及时沟通反馈。甚至A看着B或B盯着A写代码也是一件比较常见的情况。A在提交自己的Stroy时必须先让B检视Review一下自己的代码,发现了问题应修复完成后才能让测试人员去测试。这样可以避免一些不必要的错误和疏忽出现,提高开发效率的同时提高编码质量。

还有一种防范问题发生的措施,那就是集体检视代码。

迭代开发中一个星期后,团队成员的编码工作基本上完成了或完成了大半。这时候头儿会组织一个开发人员会议,就是开发人员坐到一个会议室里面瞪着大眼在投影仪上找bug或编码规范问题。团队的力量还是巨大的,一会儿功夫一个功能模块可能就给你揪出了十几个bug,大家一起发现的问题会议结束后会形成一个bug列表,按责任人给依次分配下去解决。相当于集体重构了一次代码,让系统更加的健壮、稳定。

经过九九八十一难般的两个星期就这样循环反复中一闪而过,这时候我们可以暂时的小憩一会儿了。

这一会儿是多久呢,大概也就是一天左右的时间吧。因为一个迭代周期结束后,项目组成员会再次的坐在一起开一个即重要又轻松的会议--迭代回顾会议。大家吃着零食边谈论总结这个迭代中做的好的部分及需要改进的部分,“嘿,那个谁上次那个地方我说应该XX做样吧!”、"这个迭代中XX同学给予了我很大的帮助,感谢",大家你一言我一语就这样展开讨论开来...

回顾会议的第二天,开始了上面工作的第二次循环,直到整个项目交付......

原文链接:http://www.cnblogs.com/zzxbest/archive/2012/10/29/2745639.html


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