敏捷开发方法综述

野野      2022-02-13     509

关键词:

什么是敏捷开发?

 

首先,敏捷开发是一种过程控制论,通俗的说,就是一种做事情的方法。

1. 它适用于软件,因为软件是软的,可以改。要是硬件,改起来就没那么方便了
2. 它适用于客户不知道自己要啥的情况,其实,这样的客户占绝大多数。因为客户不知道要啥,所以你需要不断帮客户弄明白他到底想要啥。。。换句话说,你需要和客户沟通,合作,倾听反馈,持续改进。。。
3. 它适用于竞争激烈的市场,这样的情况下,赶在竞争对手前交付一个不完美但至少能用的产品非常重要。
4. 它适用于快速变化的市场,你在埋头造一辆汽车的时候,客户已经想开飞机满天飞了,这就需要你能一步步的把汽车改成飞机,还能按时交付。
5. 它适用于在一个地方办公的小团队,一般10个人以内。这样能使敏捷中主要的沟通方式“Face to Face” 是可行的。

其次,敏捷开发是一套工具集,里面有形形色色的工具,你可以不搞敏捷,但可以用那么一两个来提高工作效率。

比如:
1. 站会:三个问题,简洁有效的小团队沟通方式
2. 看板:直观反映工作进度,反映流程遵守情况,反映流程缺陷
3. 演示,计划,反思会:适合于小团队的协作和优化反馈方式
4. 用户故事:站在用户的角度讲需求
5. 持续集成:随时高质量交付的基础,有利于应对变化剧烈的市场

再其次,敏捷开发是一种企业管理方式

比如:
1. 一线员工可以同时是架构师,Scrum Master,开发工程师,测试工程师,发挥了他的主观能动性,有利于创新和效率
2. 敏捷不专注于敏捷团队中个人的绩效考核,而更多的侧重于整个团队的绩效,更好的避免了KPI驱动模式。
3. 把大项目拆分成小项目去做(每个Sprint都是一个迭代,需要输出一个高质量的版本,相当于完成一个小项目),把bug的生存期控制在一个迭代以内,降低了风险,也减少了后期改bug的工作量。
4. 把数十人的大team 分成几个敏捷团队,这几个敏捷团队的Scrum Master/PO再组成一个更高一级的敏捷团队,利用站会,反思,看板等等敏捷元素,可以避免数十份邮件也不能解决一个小问题,大家互相踢皮球,沟通不畅的大企业病。
5. 老板可以是最大的PO,他给下面的高管讲idea(User Story),定期检查Demo,把控产品用户体验,负责和外界的沟通合作-----比如乔布斯,360的周鸿祎等

 

 

敏捷开发之 12条敏捷原则

 

1、我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。

 

2、欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌握变化。

 

3、经常地交付可以工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。

 

4、业务人员和开发人员必须相互合作,项目中的每一天都不例外。

 

5、激发个体的斗志,以他们为核心搭建项目。提供所需的环境和支援,辅以信任,从而达成目标。

 

6、不论团队内外,传递信息效果最好效率也最高的方式是面对面的交流。

 

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

 

8、敏捷过程倡导可持续开发。责任人、开发人员和用户要能够共同维持其步调稳定延续。

 

9、坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。

 

10、以简洁为本,它是极力减少不必要工作量的艺术。

 

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

 

12、团队定期地反思如何能提供成效,并依次调整自身的举止表现。

 

 

什么是scrum?      

      Scrum是跨职能团队以迭代、增量的方式开发产品或项目的一种开发框架。它把开发组织成被称为Sprint的工作周期。这些迭代每个都不超过4周(最常见的是两周),并且无间歇地相继进行。Sprint是受时间箱限制的,无论工作完成与否它们都会在特定日期结束,并且从不延长。通常由Scrum团队来选定一个Sprint的时长,并且对于他们所有的Sprint都使用这一时长,直到这个团队能力提高,可以使用较短周期。在每个Sprint的初始,跨职能团队(大约7名成员)从排好优先级的列表中选择事项(客户需求)。团队对于在Sprint结尾他们相信自己可以交付哪些目标集合达成一致意见,这些交付应该是有形的并且能被真正“完成”的。在Sprint过程中不可以增加新事项,Scrum在下一Sprint时才接受变化,当前这么短的一个Sprint周期里只注重于短小、清晰、相对固定的目标。团队每天都进行简短会面来检验工作进程,并调整后续步骤以确保完成剩余工作。在Sprint结尾,团队与利益关系人一起回顾这个Sprint,并演示所构建的产品。团队成员从中获取可以结合到下一Sprint中的反馈。Scrum强调在Sprint结尾产生真正“完成”了的可工作产品。在软件领域是指已经集成的、完全测试过的、已经为最终用户生成文档的、潜在可交付的系统.

Scrum

      简单介绍下敏捷(Scrum)里面的角色,“PO”可以理解为产品经理,负责产品的规划、发布计划、方案等。“SM”敏捷教练,负责指导团队严格践行敏捷活动,通常兼职。“敏捷团队”包括了开发、测试、设计师等。“用户团队”即用户代表或BA,敏捷强调用户全程参与项目过程,以便不时地沟通和澄清需求,避免团队在错误的道路上越走越远。“专家组”主要由架构师,测试经理,顾问专家等组成,因为这些人通常是公共资源不会加入单个敏捷团队。敏捷强调“敏捷团队”是一个整体,而不太强调里面的个体。敏捷团队越稳固越好,如果说敏捷能带来效率提升的地方就在于团队默契的沟通,准确的工作量评估,以及高质量的迭代交付了。

 

在知乎和博客上找的资料关于敏捷开发的介绍。

链接:http://www.zhihu.com/question/19645396/answer/16635773

        一步步学敏捷开发:1、敏捷开发及Scrum介绍

 

敏捷开发方法综述

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

敏捷开发方法综述

 在我的了解下,得出以下几点要则: 1.敏捷开发是针对传统的瀑布开发模式的弊端而产生的一种新的开发模式,目标是提高开发效率和响应能力。除了原则和实践,模式也是很重要的,多研究模式及其应用可以使你更深... 查看详情

敏捷开发方法综述

什么是敏捷开发? 首先,敏捷开发是一种过程控制论,通俗的说,就是一种做事情的方法。1.它适用于软件,因为软件是软的,可以改。要是硬件,改起来就没那么方便了2.它适用于客户不知道自己要啥的情况,其实,这样... 查看详情

敏捷开发方法

...发进程,这是极限编程的思想。 水晶法:相对于其它敏捷方法,水晶系列方法强调软件开发流程的纪律性,所以它比其它敏捷方法易于使用,但它的生产率不如XP等其它敏捷方法。水晶系列与XP一样,都有以人为中心的理念... 查看详情

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

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

敏捷开发

scrum:  SCRUM是一个用于开发和维护复杂产品的框架XP极限编程: ,是一种软件工程方法学,是敏捷软件开发中应用最为广泛和最富有成效的几种方法学之一。 查看详情

软件测试学习敏捷开发

敏捷软件开发百度百科的定义敏捷开发(Scrum)以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和... 查看详情

传统软件开发与敏捷软件开发的比较

...周期和范围管理这两个不同的方面对传统软件开发方法和敏捷软件开发方法进行分析比较,希望与读者分享交流。 传统方法:  从本质来讲,传统软件开发方法是一个软件开发架构,其开发过程是通过一系列阶段顺序展开... 查看详情

敏捷开发之xp

敏捷方法论有一个共同的特点,那就是都将矛头指向了“文档”,它们认为传统的软件工程方法文档量太“重”了,称为“重量级”方法,而相应的敏捷方法则是“轻量级”方法。正是因为“轻量级&rd... 查看详情

敏捷开发实践之scrum方法运用

...适应这种开发环境和市场需求,传统的软件开发模式已被敏捷开发模式所替代。本文介绍敏捷软件开发中的Scrum方法,并结合实际问题,分析Scrum方法在实践中的运用。关键词:敏捷开发;Scrum产品质量和开发效率一直是软件产品开发的... 查看详情

2017.07.07it项目管理笔记整理第10章敏捷软件开发

什么是敏捷软件开发方法1、敏捷方法是一类软件开发流程的泛称;2、敏捷方法是相对于传统的瀑布式软件过程提出的;3、敏捷方法可以用敏捷宣言(4条)、敏捷原则(12条)来概括;4、敏捷原则通过一系列的敏捷实践来体现... 查看详情

敏捷软件开发vs传统软件开发

敏捷软件开发VS传统软件开发软件开发方法是软件工程理论的重要内容,在软件开发方法中,对于开发软件时的“做什么”和”如何做“,给出了明确的、详细的回答。那软件开发方法的”做什么”和”如何做”之间究竟有什么... 查看详情

1.序言,敏捷不一样的开发团队管理方法

  敏捷开发系列文章目录  敏捷开发在国内是不是只是一个理想化的工作环境?  经常有人问,你们搞敏捷开发工作量是由开发人员自己估的,而不是由经验丰富的技术主管估的,他们自己肯定会把工作量估... 查看详情

敏捷开发

什么是敏捷开发?敏捷开发(AgileDevelopment)是一种以人为核心、迭代、循序渐进的开发方法。怎么理解呢?首先,我们要理解它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一... 查看详情

我们需要什么样的敏捷开发?

回答敏捷是什么?为什么要敏捷?回答“为什么要敏捷”的前提是回答“敏捷是什么”,因此首要任务是要先回答第一个问题,从敏捷技术的观点看,核心是敏捷价值观、敏捷价值观外层为敏捷管理,比如XP或者Scrum;最外层为... 查看详情

敏捷开发之scrum方法运用

...适应这种开发环境和市场需求,传统的软件开发模式已被敏捷开发模式所替代。本文介绍敏捷软件开发中的Scrum方法,并结合实际问题,分析Scrum方法在实践中的运用。产品质量和开发效率一直是软件产品开发的关键。随着科技和经... 查看详情

看板方法与scrum的比较:选择最佳敏捷项目管理框架[译]

参考技术A“我们在使用敏捷方法。”在与软件开发团队交谈时,您经常会听到这样的声明。确实如此,根据统计2018年全球大约90%开发人员在使用敏捷方法。但是,敏捷并不统一的方法。作为组织开发流程的通用方法,敏捷软... 查看详情

如何用敏捷方法做测试?

敏捷的核心就是个“快”字:快速开发,快速推出,快速验证产品方向。说白了就是管理每个小目标,保证他们能够按时完成。想要运用敏捷方法,要注意几点:1、开发做完一个小功能马上开始测试,减少等待时间。2、测试的... 查看详情