精华内容
参与话题
问答
  • 敏捷开发

    千次阅读 多人点赞 2019-08-12 20:39:23
    敏捷开发前言迭代开发增量开发敏捷开发的好处早期交付降低风险如何进行每一次迭代敏捷开发价值观十二条原则 前言    迭代开发   敏捷开发的核心是迭代开发(iterative development)。敏捷一定是采用迭代开发...

    前言

      

    迭代开发

      敏捷开发的核心是迭代开发(iterative development)。敏捷一定是采用迭代开发的方式。那么什么是"迭代开发"呢?迭代的英文是 iterative,直译为"重复",迭代开发其实就是"重复开发"。
      对于大型软件项目,传统的开发方式是采用一个大周期(比如半年)进行开发,整个过程就是一次"大开发";迭代开发的方式则不一样,它将开发过程拆分成多个小周期,即一次"大开发"变成多次"小开发",每次小开发都是同样的流程,所以看上去就好像重复在做同样的步骤。
      举例来说,SpaceX 公司想造一个大推力火箭,将人类送到火星。但是,它不是一开始就造大火箭,而是先造一个最简陋的小火箭 Falcon 1。结果,第一次发射就爆炸了,直到第四次发射,才成功进入轨道。然后,开发了中型火箭 Falcon 9,九年中发射了70次。最后,才开发 Falcon 重型火箭。如果 SpaceX 不采用迭代开发,它可能直到现在还无法上天。
      迭代开发将一个大任务,分解成多次连续的开发,本质就是逐步改进。开发者先快速发布一个有效但不完美的最简版本,然后不断迭代。每一次迭代都包含规划、设计、编码、测试、评估五个步骤,不断改进产品,添加新功能。通过频繁的发布,以及跟踪对前一次迭代的反馈,最终接近较完善的产品形态。

    增量开发

      迭代开发只是要求将开发分成多个迭代,并没有回答一个重要的问题:怎么划分迭代,哪个任务在这个迭代,哪个任务在下个迭代?这时,一般采用"增量开发"(incremental development)划分迭代。
      所谓的"增量开发",指的是软件的每个版本,都会新增一个用户可以感知的完整功能。也就是说,按照新增功能来划分迭代。
      举例来说,房地产公司开发一个10栋楼的小区。如果采用增量开发的模式,该公司第一个迭代就是交付一号楼,第二个迭代交付二号楼…每个迭代都是完成一栋完整的楼。而不是第一个迭代挖好10栋楼的地基,第二个迭代建好每栋楼的骨架,第三个迭代架设屋顶…
    增量开发加上迭代开发,才算是真正的敏捷开发。

    敏捷开发的好处

    早期交付

      敏捷开发的第一个好处,就是早期交付,从而大大降低成本。
      还是房地产公司为例,如果按照传统的"瀑布开发模式",先挖10栋楼的地基、再盖骨架、然后架设屋顶,每个阶段都等到前一个阶段完成后开始,可能需要两年才能一次性交付10栋楼。也就是说,如果不考虑预售,该项目必须等到两年后才能回款。
      敏捷开发是六个月后交付一号楼,后面每两个月交付一栋楼。因此,半年就能回款10%,后面每个月都会有现金流,资金压力就大大减轻了。

    降低风险

      敏捷开发的第二个好处是,及时了解市场需求,降低产品不适用的风险。
      请想一想,哪一种情况损失比较小:10栋楼都造好以后,才发现卖不出去,还是造好第一栋楼,就发现卖不出去,从而改进或停建后面9栋楼?
      对于软件项目来说,先有一个原型产品,了解市场的接受程度,往往是项目成功的关键。有一本书叫做《梦断代码》,副标题就是"20+个程序员,三年时间,4732个bug,100+万美元,最后失败的故事",这就是没有采用敏捷开发的结果。相反的,Instagram 最初是一个地理位置打卡 App,后来发现用户不怎么在乎地理位置,更喜欢上传照片,就改做照片上传软件,结果成了独角兽。
      由于敏捷开发可以不断试错,找出对业务最重要的功能,然后通过迭代,调整软件方向。相比传统方式,大大增加了产品成功的可能性。如果市场需求不确定,或者你对该领域不熟悉,那么敏捷开发几乎是唯一可行的应对方式。

    如何进行每一次迭代

      虽然敏捷开发将软件开发分成多个迭代,但是也要求,每次迭代都是一个完整的软件开发周期,必须按照软件工程的方法论,进行正规的流程管理。

     &emssp;具体来说,每次迭代都必须依次完成以下五个步骤。

    • 需求分析(requirements analysis)
    • 设计(design)
    • 编码(coding)
    • 测试(testing)
    • 部署和评估(deployment / evaluation)
      每个迭代大约持续2~6周。

    敏捷开发的价值观

    《敏捷软件开发宣言》里面提到四个价值观。

    • 程序员的主观能动性,以及程序员之间的互动,优于既定流程和工具。
    • 软件能够运行,优于详尽的文档。
    • 跟客户的密切协作,优于合同和谈判。
    • 能够响应变化,优于遵循计划。

    十二条原则

    该宣言还提出十二条敏捷开发的原则。

    • 通过早期和持续交付有价值的软件,实现客户满意度。
    • 欢迎不断变化的需求,即使是在项目开发的后期。要善于利用需求变更,帮助客户获得竞争优势。
    • 不断交付可用的软件,周期通常是几周,越短越好。
    • 项目过程中,业务人员与开发人员必须在一起工作。
    • 项目必须围绕那些有内在动力的个人而建立,他们应该受到信任。
    • 面对面交谈是最好的沟通方式。
    • 可用性是衡量进度的主要指标。
    • 提倡可持续的开发,保持稳定的进展速度。
    • 不断关注技术是否优秀,设计是否良好。
    • 简单性至关重要,尽最大可能减少不必要的工作。
    • 最好的架构、要求和设计,来自团队内部自发的认识。
    • 团队要定期反思如何更有效,并相应地进行调整。
    展开全文
  • 敏捷开发价值观

    2019-10-31 09:25:07
    把这四则价值观称为“敏捷软件开发宣言”(Manifesto for Agile Software Development)。 • 个体和互动高于流程和工具 • 可工作的软件高于详尽的文档 • 客户协作高于合同谈判 • 响应变化高于遵循计划 ...

    敏捷的故事始于一小群创新者,他们聚在一起试图找到解决这些问题的新方法。他们一开
    始就对以下这四则价值观达成了一致,认为这些是成功团队和成功项目共有的特质。他们
    把这四则价值观称为“敏捷软件开发宣言”(Manifesto for Agile Software Development)。
    • 个体和互动高于流程和工具
    • 可工作的软件高于详尽的文档
    • 客户协作高于合同谈判
    • 响应变化高于遵循计划

    展开全文
  • 敏捷开发4大价值观 个体与交互胜于流程与工具 可工作的软件胜于面面俱到的文档 客户协作胜于合同谈判 响应变化胜于遵循计划

    本人博客文章网址:https://www.peretang.com/agile-session-agile-values/


    前言

    敏捷开发4大价值观

    个体与交互胜于流程与工具

    可工作的软件胜于面面俱到的文档

    客户协作胜于合同谈判

    响应变化胜于遵循计划

     

    个体与交互胜于流程与工具

    我们需要团队成员紧密合作, 不断交流, 共同协作.

    在团队内要经常面对面交流沟通, 通过缩减不必要的流程来适应变化.

     

    可工作的软件胜于面面俱到的文档

    编制众多的文档需要花费大量的时间, 并且要使这些文档和代码保持同步, 就要花费更多的时间.

    针对团队内部, 可以减少不必要的文档, 仅留下包括系统核心原理, 架构等内容的精简文档, 其余详细的由可工作的软件代替.

    因为代码可以真实地表达了它所做的事情, 新加入的队员亦可以通过代码, 程序快速学习项目相关内容

     

    客户协作胜于合同谈判

    和客户一起沟通合作, 可以尽早发现问题尽早处理, 实时得知客户意见和需求的改变.

     

    响应变化胜于遵循计划

    首先敏捷软件开发方法本身的诞生, 就是因为传统的开发模型无法适应快速变化的环境和需求, 所以响应变化是敏捷开发的根本.

    虽然遵循计划是每个团队成员都应该做到的事情, 但是计划本身, 应该能够随着情况的变化而及时做出调整.

     

    Keep outstanding.

    Pere Tang

    展开全文
  • 敏捷开发价值观: 个体和交互 胜过 过程和工具可以工作的软件 胜过 面面俱到的文档客户合作 胜过 合同谈判响应变化 胜过 遵循计划 原则 : 我们最优先要做的是通过尽早、持续的交付有价值的软件来使...
    敏捷开发价值观:
    • 个体和交互   胜过 过程和工具
    • 可以工作的软件 胜过 面面俱到的文档
    • 客户合作 胜过 合同谈判
    • 响应变化 胜过  遵循计划
    原则 :
    1. 我们最优先要做的是通过尽早、持续的交付有价值的软件来使客户满意
    2. 即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势
    3. 经常性地交付可以工作的软件,交付时间间隔越短越好
    4. 在整个项目开发期间,业务人员和开发人员必须天天在一起
    5. 围绕被激励起来的个人来构建项目。给他们提供需要的环境和支持,并且信任他们能够完成工作
    6. 在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈
    7. 工作的软件是首要的进度度量标准
    8. 敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度
    9. 不断地关注优秀的技能和好的设计会增强敏捷能力
    10. 简单--使未完成的工作最大化的艺术-----是根本的
    11. 最好的构架、需求和设计出自于组织的团队
    12. 每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整
    展开全文
  • 敏捷建模(Agile Modeling,AM)的价值观包括了XP的四个价值观:沟通、简单、反馈、勇气,此外,还扩展了第五个价值观:谦逊。  敏捷开发是针对传统的瀑布开发模式的弊端而产生的一种新的开发模式,目标是提高开发...
  • 1, Individuals and interactions over processes and tools(人和交互重于过程和工具) 2,Working software over comprehensive documentation(可以工作的软件重于易于理解的文档) 3,Customer collaboration...
  • 文章目录0. 软件的生命周期1. 瀑布模型2. 螺旋模型3. 迭代模型4. 增量模型5....  瀑布模型是最早出现的软件开发模型,是所有其他软件开发模型的基础框架。与软件的生命周期不同的是,它缺少了软...
  •  一直不明白为什么勇气会成为敏捷软件开发的核心价值观之一。勇气更多的是一个人与生俱来气质,而不太像一个人应该信仰的东西。想想其它的几个价值观:“尊重”和“沟通”关注人性,“反馈”应对变化的核心,“简单...
  • 敏捷开发价值观与十二条原则

    万次阅读 2017-02-26 18:10:34
    敏捷不是某一种方法论、过程或框架,更不是字面意义上的敏捷,而是一组价值观与原则。
  • 敏捷价值观 个体和互动 高于 流程和工具 工作的软件 高于 详尽的文档 客服合作 高于 合同谈判 响应变化 高于 遵循计划 敏捷的原则 1.我们最重要的目的,是通过持续不断地及早交付有价值的软件使客户满意。 2....
  • 铜火锅涮羊肉与敏捷价值观

    千次阅读 2013-11-06 18:38:38
    想象大冬天一群人围坐吃着铜火锅,似乎也能体现敏捷价值观。 开放:荤的,素的,都可以涮。爱吃辣的,爱吃韭菜花,各取所需。 勇气:挺烫的肉,出锅直接就往嘴里送啊,就是要享受肉片在嘴里融化的感觉。 专注:...
  • 敏捷与沟通(Think Customer)沟通定义:交换意思或信息使互相了解或理解。 在团队软件开发中最要紧的是沟通……每当你遇到一个问题,首先问自己这个问题是不是由于缺乏沟通引起的……(《拥抱变化 2版》) 沟通为...
  • 敏捷与反馈(应对变化的本质) 反馈的定义:在信息的传播中,指接受者对传播者发出信息的放映。反馈的很重要一个属性就是时间...(摘自《拥抱变化 2版》)下面我举一些例子来说明反馈在敏捷软件开发中的重要性。 ID
  • 敏捷与尊重(核心中的核心) XP是我在自己的软件开发实践中协调人性和生产率并共享这一协调的一种尝试。我已经开始注意到,我越是有人情味地对待我自己和别人,我们大家的生产率就越高。成功的关键不在于自我禁欲,...
  • 敏捷与简单(当今世界永恒的话题) 简单是XP价值观中智力色彩最强烈的。――《拥抱变化 2版》 简单是当今世界永恒的话题:电视、电话、手机、互联网、报纸、杂志……媒体在爆炸雪花、青岛、苦瓜、燕京、百威、纯生...
  • 敏捷宣言 1 个体和沟通胜过流程和工具
 2 可以工作的软件胜过详尽的文档
 3 与客户合作胜过合同谈判
 ...2 欣然面对需求变化,即使在开发后期也一样。善于掌控变化,帮助客户获得竞争优势。 3 经常...
  • 敏捷价值观如下:  个体和交互 胜过 过程和工具  可以工作的软件 胜过 面面俱到的文档  客户合作 胜过 合同谈判  响应变化 胜过 遵循计划 很多人在不理解敏捷的情况下,简单的从字面去曲解和批驳敏捷...
  • 敏捷宣言也称敏捷软件开发宣言,软件开发业的先辈们对以下四则价值观达成了一致: 个体和互动高于流程和工具 可工作的软件高于详尽的文档 客户协作高于合同谈判 响应变化高于遵循计划 **注:**下面是这份宣言的...
  • 【什么是敏捷开发?】资深程序员之路(5)--agile开发 敏捷开发(scrum, agile)相对于瀑布流开发(waterfull)更适合现在快节奏的商业模式需求,它将一整个项目拆分为相互独立的小块,我们成为sprint(冲刺),每个...
  • Git入门基础

    万人学习 2015-07-18 08:43:08
    Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。如今,越来越多的项目采用 Git 来管理项目开发,可见Git软件学习的重要性。但是,在学习的过程中,我们会发现初学者很难找到一个...
  • 一、敏捷开发 “敏捷”是一种思想,与”瀑布“式(即传统开发模式)相比,敏捷开发有如下宣言 个体和互动高于流程和工具:意思是敏捷开发中每个人都可以提出自己的见解,而不必按照”流程“逐个向上级反应。目的是...
  • 敏捷软件开发之何为敏捷开发

    千次阅读 2010-08-23 09:26:00
    追究敏捷的历史,就必须要提到著名的敏捷开发宣言,2001年,17位业界专家(其中包括我们非常熟悉的Martin, Martin Fowler)组成了一个敏捷联盟,并且创建了一份敏捷联盟宣言,宣扬了4条核心价值观:  ...
  • 敏捷开发智慧敏捷系列

    千次阅读 2012-02-07 16:29:59
    敏捷开发智慧敏捷系列之一:序言 这是智慧敏捷系列的第一篇。(之一,之二,之三,之四,之五) 本文将解决各种敏捷中需要辩证思考的问题,包括:写文档还是不写文档?拥抱变更还是迭代期内无变更?持续交付的产品...
  • 因为看上去,敏捷宣言中既有体现价值观的内容,也有直接的操作层面上的内容。大家请看(前后删除了一些): 个体与互动 胜于 过程与工具 可工作软件 胜于 复杂文档 用户协作 胜于 合同谈判 响应变化 胜于 遵循...

空空如也

1 2 3 4 5 ... 20
收藏数 29,608
精华内容 11,843
关键字:

敏捷价值观