• 正在加载中...
  • 敏捷软件开发

    敏捷软件开发AgileSoftwareDevelopmentASD2001年2月在美国犹他州的雪鸟城成立了敏捷软件开发联盟(TheManifestooftheAgileAlliance),发布了17人宣言,提出了敏捷软件开发方法。敏捷是动态的适应于具体情况的、迎合变化的和自我完善的。不仅在于提高效率、降低成本,还在于提高竞争力。重点交流了敏捷软件开发方法论,认同了四个观点:正确处理规格化的文档和通过良好交互实现可运行软件设计的关系;对文档采取充分必要原则,同时重视开发生命期整个阶段的所有可度量信息;加强用户和开发方沟通和合作,响应需求变化,实现敏捷开发;既要制定计划,又要有应付大量变化的响应机制。

    编辑摘要

    目录

    版权信息/敏捷软件开发 编辑

       作 者:(美国)(AlistairCockburn)库克伯恩
       出版社机械工业出版社
       出版时间: 2008
       ISBN: 9787111231660
       开本: 16
       定价: 52.00 元
       又名: Agile Software Development: Principles, Patterns, and Practices

    作者简介/敏捷软件开发 编辑

      AlistairCockburn,国际知名 软件项目管理方面的专家,用例技术,对象技术和敏捷方法大师,于2001年和2002年两次获得Jolt生产力奖。他是HumansandTechnology公司的资深顾问,负责帮助客户成功地进行 面向对象项目。他在软硬件开发方面有20多年的项目管理经验,所涉及的领域有保险业,零售业,电子商务公司,并曾在大公司(如 挪威中心银行和IBM)中任职。除本书外,他还著有《编写有效用例》(本书中文版已由机械工业出版社出版)、《OO项目求生法则》和《CrystalClear:小团队的 敏捷开发方法》。

    内容简介/敏捷软件开发 编辑

      在这本书中,享誉全球的 软件开发专家和软件工程大师Robert C.Martin将向您展示如何解决软件开发人员、项目经理及软件项目领导们所面临的最棘手的问题。这本综合性、实用性的敏捷开发和 极限编程方面的指南,是由敏捷开发的创始人之一所撰写的。
      ·讲述在预算和实践要求下,软件开发人员和项目经理如何使用敏捷开发完成项目;
      ·使用真实案例讲解如何用极限编程来设计、测试、重构和绝对编程;
      ·包含了极具价值的可多次使用的C++和JAVA 源代码
      ·重点讲述了如何使用UML和设计模式解决面向客户系统的问题。

    目录/敏捷软件开发 编辑

      译者序
      第2版前言
      第1版前言
      第0章不可知和不可说
      0.1和解析体验相关的问题
      0.1.1解析模式的冲突
      0.1.2检测解析模式
      0.1.3思考不准确的思想
      0.2沟通的不可能性
      0.2.1内部重新组织
      0.2.2触及共享体验
      0.2.3管理不完美的沟通
      0.3聆听的三个层次
      0.3.1三个层次和方法集
      0.3.2三个层次与本书
      0.3.3守-破-离
      0.4那么,明天我做什么
      第0A章不可知和不可说:演进
      0A.1沟通和共享的体验
      0A.2守-破-离
      第1章创造和沟通的 合作博弈
      1.1软件和诗歌
      1.2软件与博弈
      1.2.1博弈的类型
      1.2.2软件与攀岩
      1.2.3创造和沟通的博弈
      1.2.4软件与工程化
      1.2.5软件与模型构建
      1.3再论合作博弈
      1.3.1程序员成为沟通专家
      1.3.2更快地博弈
      1.3.3标识物和道具
      1.3.4减少回报
      1.3.5对于首要目标的充分度
      1.3.6对于积淀的充分度
      1.3.7博弈中的博弈
      1.3.8开放源码开发
      1.4这对我意味着什么
      第1A章创造和沟通的合作博弈:演进
      1A.1沼泽游戏
      1A.2合作中的竞争
      1A.3其他领域的合作博弈
      1A.4软件工程的重建
      1A.4.1这一词汇从哪里来
      1A.4.2我们从哪里走错了
      1A.4.3重建软件工程
      1A.4.4技艺
      1A.4.5合作博弈
      1A.4.6精益制造
      1A.4.7重建后的软件工程
      1A.4.8其他工程化中的协作
      第2章个人
      2.1人是古怪的
      2.1.1寻找特征函数
      2.1.2古怪性格的元素
      2.1.3不可避免的多样性
      2.1.4技术的作用
      2.1.5相互冲突的共同点
      2.2克服失败模式
      2.2.1犯错误
      2.2.2宁可失败也要选择保守
      2.2.3创新而不研究
      2.2.4不能始终如一的习惯动物
      2.2.5使用纪律和容忍来应对
      2.3以一些更好的方式工作
      2.3.1具体化
      2.3.2实物
      2.3.3在某些东西的基础上进行修改
      2.3.4观察和聆听
      2.3.5支持专注和沟通
      2.3.6工作分配要与个性相匹配
      2.3.7天赋
      2.3.8奖励要能保留乐趣
      2.3.9组合奖励
      2.3.10反馈
      2.4利用成功模式
      2.4.1善于四处寻找
      2.4.2人们学习
      2.4.3可塑性
      2.4.4贡献和采取主动
      2.4.5组合成功模式
      2.4.6英雄也是普通人
      2.5明天我该做什么
      第2A章个人:演进
      2A.1策略平衡
      第3章团队的沟通与合作
      3.1信息的对流
      3.1.1延迟和机会损失成本
      3.1.2尔格-秒
      3.1.3渗透式沟通
      3.1.4穿堂风
      3.1.5信息辐射源
      3.1.6热空气理论的应用
      3.2跨越沟通的鸿沟
      3.2.1沟通的形态
      3.2.2去掉某些形态所产生的影响
      3.2.3利用各种形态
      3.2.4黏度与跨越空间的鸿沟
      3.3团队就是集体
      3.3.1友善和冲突
      3.3.2工作时间的公民意识
      3.3.3敌意的XP与友善的XP
      3.3.4使用胜利来建立“团队”
      3.3.5团队文化与亚文化
      3.4团队就是生态系统
      3.5我明天该做什么
      第3A章团队:演进
      3A.1一个修订后的办公室布局样本
      第4章方法集
      4.1一个交付软件的生态系统
      4.2方法集中的概念
      4.2.1结构术语
      4.2.2范围
      4.2.3概念术语
      4.2.4发布一个方法集
      4.3方法集的设计原则
      4.3.1常见设计错误
      4.3.2在方法集上成功的项目
      4.3.3与作者的相关性
      4.3.4七条原则
      4.4细看XP
      4.4.1XP简介
      4.4.2剖析XP
      4.4.3调整XP
      4.5到底为什么使用方法集
      4.5.1方法集解决什么问题
      4.5.2如何评估一个方法集
      4.6明天我应该做什么
      第4A章方法集:演进
      4A.1方法集与策略
      4A.2组织级的方法集
      4A.3过程就是循环
      4A.4更简单地描述方法集
      第5章敏捷与自适应
      5.1轻但足够
      5.1.1刚好足够
      5.1.2对于编制文档的建议
      5.2敏捷
      5.2.1 最佳击球点
      5.2.2 虚拟团队的麻烦
      5.3变得自适应
      5.3.1不厌其烦地进行反思
      5.3.2方法集成长技术
      5.3.3反思研讨会技术
      5.4明天我该做什么
      第5A章敏捷与自适应:演进
      5A.1对于寓意的误解
      5A.1.1迭代必须简短
      5A.1.2敏捷团队必须驻扎在一起
      5A.1.3敏捷团队不需要计划
      5A.1.4架构已死;重构是你全部所需要的
      5A.1.5我们不需要什么经理
      5A.1.6敏捷开发在纪律上要求很低
      5A.1.7敏捷只适合最优秀的开发人员
      5A.1.8敏捷是既老又新的、失败的、没有尝试过的
      5A.2敏捷方法集的演进
      5A.2.1XP第2版
      5A.2.2Scrum
      5A.2.3实用主义和无名的
      5A.2.4可预测、计划驱动和其他中心调整
      5A.2.5约束理论
      5A.2.6精益开发
      5A.3新的方法集话题
      5A.3.1 敏捷项目管理
      5A.3.2测试
      5A.3.3 用户体验设计
      5A.3.4规划管控、Burn图和系统工程
      5A.3.5用例和用户故事
      5A.4经久不绝的问题
      5A.4.1最佳击球点和下降
      5A.4.2固定价格、固定范围的合同
      5A.4.3敏捷、CMMI和ISO9001
      5A.4.4何时停止 建模
      5A.4.5高科技/高接触的 工具箱
      5A.4.6敏捷的中心
      5A.4.7你有多敏捷
      5A.4.8引入敏捷
      5A.5软件开发之外的敏捷
      5A.5.1 项目组合管理
      5A.5.2客户关系
      5A.5.3合同
      5A.5.4将变更引入组织
      5A.5.5程序员读哈佛商业周刊
      5A.5.6建造房屋
      5A.5.7机场建设
      5A.5.8图书出版
      5A.5.9会议组织和敏捷模型的限制
      第6章Crystal方法集
      6.1对Crystal家族塑形
      6.1.1核心Crystal元素
      6.2CrystalClear
      6.2.1CrystalClear的简要描述
      6.2.2CrystalClear的反思
      6.3CrystalOrange
      6.3.1CrystalOrange的简要描述
      6.3.2CrystalOrange的反思
      6.4CrystalOrangeWeb
      6.4.1CrystalOrangeWeb的简要描述
      6.4.2CrystalOrangeWeb的反思
      6.5明天我该做什么
      第6A章Crystal方法集:演进
      6A.1Crystal基因代码
      6A.1.1合作博弈的理念
      6A.1.2方法集的重点
      6A.1.3方法集设计原则
      6A.1.4高度成功的项目的7个特性
      6A.1.5技术与选择
      6A.1.6样本方法集设计
      6A.2CrystalClear
      6A.3把CrystalClear扩展到Yellow
      附录A敏捷软件开发宣言
      附录Aa敏捷软件开发宣言和相互依赖声明
      附录BNaur、Ehn、 宫本武藏
      附录BaNaur、Ehn、宫本武藏:演进
      附录C后记
      参考文献
      ……
      ----------------------------------------------------

    敏捷软件开发又称敏捷开发/敏捷软件开发 编辑

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

    词源/敏捷软件开发 编辑

      敏捷一词来源于2001年初 美国犹他州雪鸟滑雪胜地的一次敏捷方法发起者和实践者(他们发起组成了敏捷联盟)的聚会。
       极限编程

    价值观/敏捷软件开发 编辑

      雪鸟会议共同起草了敏捷软件开发宣言。其中最重要的部分就是对一些与会者一致同意的软件开发价值观的表述:
      人和交互重于过程和工具。可以工作的软件重于求全责备的文档。客户协作重于合同谈判。随时应对变化重于循规蹈矩。其中位于右边的内容虽然也有其价值,但是左边的内容最为重要。

    原则/敏捷软件开发 编辑

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

    对比其他的方法/敏捷软件开发 编辑

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

    对比迭代方法

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

    对比瀑布式开发

      两者没有很多的共同点,瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求、分析、设计、编码、测试的步骤顺序进行。步骤成果作为衡量进度的方法,例如需求规格,设计文档, 测试计划和代码审阅等等。
      瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变化难以调整,代价高昂。瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。
      相对来讲,敏捷方法则在几周或者几个月的时间内完成相对较小的功能,强调的是能将尽早将尽量小的可用的功能交付使用,并在整个项目周期中持续改善和增强。
      有人可能在这样小规模的范围内的每次迭代中使用瀑布式方法,另外的人可能将选择各种工作并行进行,例如

    敏捷方法的适用性/敏捷软件开发 编辑

      在敏捷方法其独特之处以外,他和其他的方法也有很多共同之处,比如迭代开发,关注互动沟通,减少中介过程的无谓资源消耗。通常可以在以下方面衡量敏捷方法的适用性:从产品角度看,敏捷方法适用于需求萌动并且快速改变的情况,如系统有比较高的关键性、可靠性、安全性方面的要求,则可能不完全适合;从组织结构的角度看,组织结构的文化、人员、沟通则决定了敏捷方法是否适用。跟这些相关联的关键成功因素有:
      组织文化必须支持谈判人员彼此信任,人少但是精干,开发人员所作决定得到认可,环境设施满足成员间快速沟通之需,要最重要的因素恐怕是项目的规模。规模增长,面对面的沟通就愈加困难,因此敏捷方法更适用于较小的队伍,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 DevelopmentScrum 测试驱动开发,TDD/Test-Driven DevelopmentXBreed极限编程,en:XP/en:Extreme Programming

    外部链接/敏捷软件开发 编辑

      敏捷联盟 (英语,Agile Alliance)

    添加视频 | 添加图册相关影像

    开放分类 我来补充
    软件工程敏捷开发

    互动百科的词条(含所附图片)系由网友上传,如果涉嫌侵权,请与客服联系,我们将按照法律之相关规定及时进行处理。未经许可,禁止商业网站等复制、抓取本站内容;合理使用者,请注明来源于www.baike.com。

    登录后使用互动百科的服务,将会得到个性化的提示和帮助,还有机会和专业认证智愿者沟通。

    互动百科用户登录注册
    此词条还可添加  信息模块

    WIKI热度

    1. 编辑次数:8次 历史版本
    2. 参与编辑人数:7
    3. 最近更新时间:2014-12-27 12:11:54
    立即申请荣誉共建机构 申请可获得以下专属权利:

    精准流量

    独家入口

    品牌增值

    广告

    相关词条

    编辑