敏捷开发是一种新型的开发方法,实际操作中采用种循序渐进的迭代式开发模型,力求在保证项平稳运行的情况下,逐次开发出需要使用的核心功能。
通俗场景解释:餐厅点菜
服务员:欢迎观临,请问您有什么需要?
客人:那个,我要蒸羊羔儿、蒸熊掌、蒸鹿尾儿、烧花鸭、烧雏鸡、烧子鹅...一共18个菜。
服务员:好嘞,请稍等!
...
...
客人:老板,都40分钟了,才怎么还没上?
服务员:抱歉,您点了18道菜,需要过一会儿才能做好...
...
...
服务员:久等了,您点的18道菜全部做好了,一起给您上来了,请慢用。
客人:我嘞个去!
...
...
当然,这只是举例,实际上没有餐厅会把菜一起上,因为每一道菜都是独立的,很容易单独完成和交付。
但是项目研发就不一样了,传统的瀑布式开发就是要所有菜一起上,因为这些菜是放在一个盘子上的,没做完是不可能端上来的。设计、编码、测试、交付,每一个阶段必须完成才能进入下一个阶段,项目周期就会很长,如果能把项目开发像在餐厅一样,边上边吃,那就会方便多了,对不对?这时候就用到了敏捷开发。
关于敏捷开发
就像开头说的,敏捷开发(Agile)是一种以人为核心、迭代、循序渐进的开发方法。
在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。
简单地来说,敏捷开发并不追求前期完美的设计、完美编码,而是力求在很短的周期内开发出产品的核心功能,尽早发布出可用的版本。然后在后续的生产周期内,按照新需求不断迭代升级,完善产品。
这就像某大佬的一句名言:
那么,是谁提出了敏捷开发思想呢?
是一位名叫Martin Fowler的美国大叔,这优质的大脑瓜。
大叔不但是敏捷开发的创始人之一,还在面向对象开发、设计模式、UML建模领域做出了重要贡献,担任着ThoughtWorks公司的首席科学家。
敏捷开发模式的分类
敏捷开发的实现主要包括 SCRUM、XP(极限编程)、Crystal Methods、FDD(特性驱动开发)等等。其中SCRUM与XP最为流行。
同样是敏捷开发,XP极限编程更侧重于实践,并力求把实践做到极限。这一实践可以是测试先行,也可以是结对编程等,关键要看具体的应用场景。
SCRUM则是一种开发流程框架,也可以说是一种套路。SCRUM框架中包含三个角色,三个工件,四个会议,听起来很复杂,其目的是为了有效地完成每一次迭代周期的工作。在这里我们重点讨论的是SCRUM。
SCRUM的工作流程
学习Scrum之前,我们先要了解几个基本术语:
Sprint:冲刺周期,通俗的讲就是实现一个“小目标”的周期。一般需要2-6周时间。
User Story:用户的外在业务需求。拿银行系统来举例的话,一个Story可以是用户的存款行为,或者是查询余额等等。也就是所谓的小目标本身。
Task:由User Story 拆分成的具体开发任务。
Backlog:需求列表,可以看成是小目标的清单。分为Sprint Backlog和Product Backlog。
Daily meeting:每天的站会,用于监控项目进度。有些公司直接称其为Scrum。
Sprint Review meeting: 冲刺评审会议,让团队成员们演示成果。
Sprint burn down:冲刺燃尽图,说白了就是记录当前周期的需求完成情况。
Rlease:开发周期完成,项目发布新的可用版本。
如上图所示,在项目启动之前,会由团队的产品负责人(Product owner)按照需求优先级来明确出一份Product Backlog,为项目做出整体排期。
随后在每一个小的迭代周期里,团队会根据计划(Sprint Plan Meeting)确定本周期的Sprint Backlog,再细化成一个个Task,分配给团队成员,进行具体开发工作。每一天,团队成员都会进行Daily meeting,根据情况更新自己的Task状态,整个团队更新Sprint burn down chart。
当这一周期的Sprint backlog全部完成,团队会进行Spring review meeting,也就是评审会议。一切顺利的话,会发布出这一版本的Release,并且进行Sprint回顾会议(Sprint Retrospective Meeting)。
那么,现实中的Scrum是什么样的情景呢?看看下面的照片就知道了:
其实在Excel里面记录工作进度也可以,但是这样逼格高啊。
敏捷开发与Devops
敏捷开发的重心是开发,Devops的重心是开发和运维的协作。
Devops是Development和Operations的合成词,其目标是要加强开发人员、测试人员、运维人员之间的沟通协调。如何实现这一目标呢?需要我们的项目做到持续集成、持续交付、持续部署。
时下流行的Jenkins、Bamboo,就是两款优秀的持续集成工具,而Docker容器则为Devops提供了强大而有效的统一环境。
吃瓜。
相关推荐
敏捷开发是一种适应性、迭代和增量的软件开发方法论,旨在应对快速变化的需求和环境。在敏捷开发中,Scrum框架被广泛采用,它强调团队合作、灵活性和高效的沟通。以下是对Scrum框架及其关键元素的详细解释: 1. **...
敏捷开发模式多种多样,每种模式都有其特定的应用场景和优势。以下是一些常用的敏捷开发模式: 1. **Scrum**:一种迭代式和增量式开发框架,适用于需要频繁交付可工作产品的项目。Scrum 团队由产品负责人、Scrum ...
**Scrum敏捷方法一分钟扫盲** Scrum敏捷方法强调的是快速响应变化、持续改进以及团队协作。它主要包括三个角色:产品负责人(Product Owner)、Scrum Master以及开发团队;三个工件:产品待办事项列表(Product ...
**Scrum敏捷方法一分钟扫盲** Scrum敏捷方法是一种灵活的、迭代的、增量式的产品开发框架,用于管理和控制软件和产品开发复杂性。它以迭代的方式进行,每个迭代周期(Sprint)通常为2到4周。在每个Sprint中,团队会...
与传统的瀑布式开发模式不同,Scrum更加灵活,能够快速适应变化。Scrum的核心概念包括冲刺(Sprint)、产品待办事项列表(Product Backlog)、冲刺待办事项列表(Sprint Backlog)、每日站会(Daily Stand-up ...
与传统的瀑布式开发模式不同,Scrum通过一系列的短周期迭代(称为Sprint)来进行软件产品的开发,每个迭代通常持续2至4周。这种方式有助于团队快速响应变化,提高产品的市场适应性和质量。 #### Scrum的核心理念 -...
总之,敏捷过程是一种以适应性和灵活性为核心,注重团队合作和客户满意度的开发模式。它通过不断的迭代和反馈,确保软件项目能够随着市场环境的变化而快速调整。在实际应用中,选择合适的敏捷方法并结合团队特性进行...
- **腾讯**:随着2006年腾讯公司的快速扩张,管理层面临选择开发模式的问题。最终决定采用敏捷开发方式,并正式推出了TAPD系统。 - **Google**:2007年伦敦QCon会议上,杰夫·萨瑟兰介绍了Scrum在Google的应用情况。...
PMP 中敏捷知识梳理 PMP 强调做项目要有计划,是典型的计划驱动模式。PMP 更多的是基于瀑布型模式管理。...敏捷中还有许多其他的概念和技术,如燃尽图、看板、DOD 原则等,这些都是敏捷开发中非常重要的部分。
其核心功能之一是“开发模式”,允许开发者直接在集群中进行开发,确保环境的高度一致。通过文件同步和开发镜像的结合,Nocalhost能够实现实时的代码修改和同步,大大缩短了开发的反馈循环,从原来的几分钟降低到...
Scrum敏捷软件项目管理是一种应对快速需求变更、缩短工期和提高开发效率的软件开发模式。其核心思想是利用短周期迭代的方式,将大型项目分解为一系列小项目,每个小项目都能在较短时间内交付可以运行的软件增量,...
敏捷管理方法中Scrum框架是目前比较流行的一种模式,尤其适用于产品开发流程。Scrum框架主要由三部分组成:角色、工件和活动(仪式)。它强调了透明性、检视和调整的原则,以实现迭代开发和持续改进。下面详细解释...
传统应用开发模式可能不包括敏捷开发,而SOA(Service-Oriented Architecture)是一种面向服务的架构。 IaaS(Infrastructure as a Service)是云计算三层模型中的一层,提供计算和存储资源,通过虚拟化技术自动...
- **瀑布模型**:一种传统的线性开发模式,每个阶段完成后才能进入下一阶段,适用于需求明确且不易变更的项目。 - **敏捷开发模型**:强调快速迭代、持续反馈与灵活应变,更适合需求不确定或易变的项目。 **软件...