严格的说,我对于传统测试没有太多经验。从06年进入游戏测试行业开始,我所在的团队就在尝试向敏捷方式的转变,成功敏捷后至今,已一年有余。而这近一年半的经历给了我很大的冲击,让我每天都对我的工作有新的认识和体会,这和以前在学院里获得的对于软件开发和软件测试的理解有很大的不同。
敏捷背景敏捷宣言敏捷方法VS瀑布模型什么是scrum Scrum框架Scrum仪式Scrum物件精益平台的敏捷实践Scrum扩展话题软件开发的趋势全球化(Globalize)快速交付(FastDelivery)高度客制化(Customize)高质量(HighQuality)目录敏捷背景敏捷宣言敏捷方法VS瀑布模型什么是scrumScrum框架Scrum仪式Scrum物件精益平台的敏捷实践Scrum扩展话题敏捷价值观之敏捷宣言重于个体与交互过程和工具重于可用的软件完备的文档重于客户协作合同谈判重于响应变化遵循计划敏捷开发的核心思想是:以人为本,适应变化敏捷开发的12个原则-1我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。
什么是敏捷开发?敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。怎么理解呢?首先,我们要理解它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一步完成项目的开发;而这种开发方式的主要驱动核心是人;它采用的是迭代式开发;为什么说是以人为核心?我们大部分人都学过瀑布开发模型,它是以文档为驱动的,为什么呢?因为在瀑布的整个开发过程中,要写大量的文档,把需求文档写出来后,开发人员都是根据文档进行开发的,一切以文档为依据;而敏捷开发它只写有必要的文档,或尽量少写文档,敏捷开发注重的是人与人之间,面对面的交流,所以它强调以人为核心。
软件开发过程——Scrum Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。Scrum在英语的意思是橄榄球里的争球。虽然Scrum是为管理软件开发项目而开发的,它同样可以用于运行软件维护团队,或者作为计划管理方法:ScrumofScrums。Scrum定义了许多角色,根据猪和鸡的笑话分为两组,猪和鸡一天,一头猪和一只鸡在路上散步,鸡看了一下猪说,“嗨,我们合伙开一家餐馆怎么样?”。
什么是Scrum?Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。Scrum在英语的意思是橄榄球里的争球。虽然Scrum是为管理软件开发项目而开发的,它同样可以用于运行软件维护团队,或者作为计划管理方法:Scrum of Scrums。
Introduction to Agile Scrum
Agile简介Agile(即:敏捷方法)是一套与传统软件工程显著不同的价值观和原则,是包括Scrum和XP(Extreme Programming,极限编程)在内的所有敏捷过程或方法所共同具有的某些性质和特征,而不是某一个具体的过程、方法论或做法。Agile横空出世传统计划驱动的开发方法不仅没有获得良好的效果,并且由于强调过分过程控制,所以在开发过程中要产生大量的文档,以跟踪,检查设计各阶段的进度,设计状态,因此给程序员,管理者带来很多额外的工作量,这也是计划驱动方法一直为人诟病的地方,因此被称为重量级方法。
在Visual Studio Team Foundation Server 2012进行敏捷项目管理
Scrum 是一个用于运行项目的框架,现已被数十家公司数百个项目开发中应用,适用于需求难以预测的复杂商务应用产品的开发。它定义一组活动,这些活动可帮助您的团队更快地向客户交付更多价值。利用这些活动,客户有机会在您的团队开展工作时检查、指导和影响团队的工作。<br> 此方法不会尝试在项目开始时定义所有内容。相反,您的团队以短小迭代(也称为“冲刺 (sprint)”)为单位进行工作,并随团队工作的进展不断改进计划。
我们希望客户、管理者和开发人员紧密地工作在一起,以便彼此知晓对方所面临的问题,并共同去解决这些问题。XP团队中的客户是指定义产品的特性并排列这些特性优先级的人或者团体。最好的情况是客户和开发人员在同一个房间中工作,次一点的情况是客户和开发人员之间的距离在100米内。如果确实无法和客户在一起工作,那么就去寻找能够在一起工作、愿意并能够代替真正客户的人。
Scrum属于敏捷开发范畴的一种开发流程,以英式橄榄球争球队形(Scrum)为名,Scrum将软件开发团队比作橄榄球队,有明确的更高目标,具有高度自主权。紧密地沟通合作,以高度弹性解决各种挑战,确保每天、每个阶段都朝向目标有明确的推进。
主要内容第一节 敏捷方法的含义第二节 软件开发过程的比较第三节 极限编程(eXtreme Programming,XP)简介准则法则活动实践讨论应用实例常见问题第一节 敏捷方法的含义敏捷:轻巧、机敏、迅捷、灵活、活力、高效……敏捷开发是一种面临迅速变化的需求快速开发软件的能力敏捷过程很容易适应变化并迅速做出自我调整,在保证质 量的前提下,做到文档、度量适度适用于各类软件企业敏捷方法产生的背景现代软件的特点。
在《第一次把事情做对》中讲到的三种做事的方式:明明只是应付变化,是事后挽救型的:出了问题才去灭火;聪聪想到了变化,但只是为变化而变化,是一边灭火一边想着防火;慧慧则是使自己处于应变的状态之中,随时准备变化,是一边认真地防火,一边随时准备着灭火。最终慧慧以最小的代价达到了目标。
回顾这几年的从业历程,我发现:迭代开发与软件重构已成为软件开发的一种常态。很多时候在有一些模糊的想法时,可能就开始了开发工作。这种做法显然与传统的结构化方法有很大区别,这里面也许有分析设计上的不完善,然而更多时候是为了尽快做出原型,以与用户尽早进行沟通交流。迭代开发就很适用于这种需求。
简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。 敏捷开发是由一些业界专家针对一些企业现状提出了一些让软件开发团队具有快速工作、响应变化能力的价值观和原则,并于2001初成立了敏捷联盟。他们正在通过亲身实践以及帮助他人实践,揭示更好的软件开发方法。
单一主干,结对编程。
1、STORY分解。2、STORY澄清。3、任务分解。4、可视化管理。
1、迭代启动会议。2、每日例会。3、迭代演示。4迭代回顾会议。
1、敏捷理念。2、敏捷的实践。
敏捷代表着有效和灵活。我们称那些轻型的、有效的方法为敏捷方法。在重型方法中,我们在一些不必要、重复的中间环节上浪费了太多的精力,而敏捷则避免了这种浪费。我们的文章将会重点的讨论敏捷(Agile)方法论的思想,敏捷这个名字的前身就是轻型。