敏捷开发

简介:

敏捷软件开发又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重做为软件开发中人的作用。

价值观 
借着亲自并协助他人进行软体开发,我们正致力于发掘更优良的软体开发方法透过这样的努力,我们已建立以下价值观: 
人和交互 重于 过程和工具。 
可以工作的软件 重于求全责备的文档。 
客户协作重于合同谈判。 
随时应对变化重于循规蹈矩。 
其中位于右边的内容虽然也有其价值,但是左边的内容最为重要。

对我们而言,最重要的是通过尽早和不断交付有价值的软件满足客户需要。 
我们欢迎需求的变化,即使在开发后期。敏捷过程能够驾驭变化,保持客户的竞争优势。 
经常交付可以工作的软件,从几星期到几个月,时间尺度越短越好。 
业务人员和开发者应该在整个项目过程中始终朝夕在一起工作。 
围绕斗志高昂的人进行软件开发,给开发者提供适宜的环境,满足他们的需要,并相信他们能够完成任务。 
在开发小组中最有效率也最有效果的信息传达方式是面对面的交谈。 
可以工作的软件是进度的主要度量标准。 
敏捷过程提倡可持续开发。出资人、开发人员和用户应该总是维持不变的节奏。 
对卓越技术与良好设计的不断追求将有助于提高敏捷性。 
简单——尽可能减少工作量的艺术至关重要。 
最好的架构、需求和设计都源自自我组织的团队。 
每隔一定时间,团队都要总结如何更有效率,然后相应地调整自己的行为。

过短的迭代可能会没办法增加足够的功能,导致在到达最后的迭代前专案产生明显的延迟。敏捷强调即时通讯(最好是面对面),但在大型多团队分布式系统开发的情况下,如何达成这点反而是个问题。敏捷方法过程中产生很少的已撰写文件,因而需要大量的专案后文件

对比其他的方法敏捷方法有时候被误认为是无计划性和纪律性的方法,实际上更确切的说法是敏捷方法强调适应性而非预见性。 
适应性的方法集中在快速适应现实的变化。当项目的需求起了变化,团队应该迅速适应。这个团队可能很难确切描述未来将会如何变化.

相比迭代式开发两者都强调在较短的开发周期提交软件,敏捷方法的周期可能更短,并且更加强调队伍中的高度协作。

对比瀑布式开发两者没有很多的共同点,瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求、分析、设计、编码、测试的步骤顺序进行。步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等。

瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变化难以调整,代价高昂。瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。

相对来讲,敏捷方法则在几周或者几个月的时间内完成相对较小的功能,强调的是能将尽早将尽量小的可用的功能交付使用,并在整个项目周期中持续改善和增强。

有人可能在这样小规模的范围内的每次迭代中使用瀑布式方法,另外的人可能将选择各种工作并行进行,例如极限编程。

敏捷方法的适用性 
敏捷方法和其他的方法也有很多共同之处,比如迭代开发,关注互动沟通,减少中介过程的无谓资源消耗。通常可以在以下方面衡量敏捷方法的适用性:从产品角度看,敏捷方法适用于需求萌动并且快速改变的情况,如系统有比较高的关键性、可靠性、安全性方面的要求,则可能不完全适合;从组织结构的角度看,组织结构的文化、人员、沟通则决定了敏捷方法是否适用。跟这些相关联的关键成功因素有:

组织文化必须支持谈判 
人员彼此信任 
人少但是精干 
开发人员所作决定得到认可 
环境设施满足成员间快速沟通之需要 
最重要的因素恐怕是项目的规模。规模增长,面对面的沟通就愈加困难,因此敏捷方法更适用于较小的队伍,20、40人或者更少。大规模的敏捷软件开发尚处于积极研究的领域。

另外的问题是项目初期的大量假定或者快速收集需求可能导致项目走入误区,特别是客户对其自身需要毫无概念的情况下。与之类似,人之天性很容易造成某个人成为主导并将项目目标和设计引入错误方向的境况。开发者经常能把不恰当的方案授予客户,并且直到最后发现问题前都能获得客户认同。虽然理论上快速交互的过程可以限制这些错误的发生,但前提是有效的负反馈,否则错误会迅速膨胀。

目前列入敏捷方法的有:

软件开发节奏,Software Development Rhythms 
敏捷数据库技术,AD/Agile Database Techniques 
敏捷建模,AM/Agile Modeling 
自适应软件开发,ASD/Adaptive Software Development 
水晶方法,Crystal 
特性驱动开发,FDD/Feature Driven Development 
动态系统开发方法,DSDM/Dynamic Systems Development Method 
精益软件开发,Lean Software Development 
AUP(Agile Unified Process) 
Scrum 
XBreed 
极限编程,XP Extreme Programming 
探索性测试

敏捷技术 
测试驱动开发,TDD/Test-Driven Development 
行为驱动开发,BDD/Bahavior-Driven Development 
Scrum 
http://zh.wikipedia.org/wiki/%E6%95%8F%E6%8D%B7%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91














本文转自cnn23711151CTO博客,原文链接:http://blog.51cto.com/cnn237111/568530 ,如需转载请自行联系原作者





相关文章
|
1天前
|
数据采集 人工智能 安全
|
10天前
|
云安全 监控 安全
|
2天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
912 150
|
15天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1647 8
|
6天前
|
人工智能 前端开发 文件存储
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择
星哥带你玩转飞牛NAS,部署开源笔记TriliumNext!支持树状知识库、多端同步、AI摘要与代码高亮,数据自主可控,打造个人“第二大脑”。高效玩家的新选择,轻松搭建专属知识管理体系。
366 152
|
7天前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
607 152
|
9天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
572 13
|
2天前
|
编解码 人工智能 机器人
通义万相2.6,模型使用指南
智能分镜 | 多镜头叙事 | 支持15秒视频生成 | 高品质声音生成 | 多人稳定对话