精华内容
下载资源
问答
  • Scrum 是一个用于开发和维护复杂产品的框架 ,是一个增量的、迭代的开发过程。在这个框架中,整个开发过程由若干个短的迭代周期组成,一个短的迭代周期称为一个Sprint,每个Sprint的建议长度是2到4周(互联网产品研发...

    Scrum 是一个用于开发和维护复杂产品的框架 ,是一个增量的、迭代的开发过程。在这个框架中,整个开发过程由若干个短的迭代周期组成,一个短的迭代周期称为一个Sprint,每个Sprint的建议长度是2到4周(互联网产品研发可以使用1周的Sprint)。在Scrum中,使用产品Backlog来管理产品的需求,产品backlog是一个按照商业价值排序的需求列表,列表条目的体现形式通常为用户故事。Scrum团队总是先开发对客户具有较高价值的需求。在Sprint中,Scrum团队从产品Backlog中挑选最高优先级的需求进行开发。挑选的需求在Sprint计划会议上经过讨论、分析和估算得到相应的任务列表,我们称它为Sprint backlog。在每个迭代结束时,Scrum团队将递交潜在可交付的产品增量。 Scrum起源于软件开发项目,但它适用于任何复杂的或是创新性的项目。

    Scrum流程如下图:

    Scrum流程

    SCRUM框架包括3个角色、3个工件、5个事件、5个价值

    3个角色

    1. 产品负责人(Product Owner)
    2. Scrum Master
    3. 开发团队

    3个工件

    1. 产品Backlog(Product Backlog)
    2. SprintBacklog
    3. 产品增量(Increment)

    5个事件

    1. Sprint(Sprint本身是一个事件,包括了如下4个事件)
    2. Sprint计划会议(Sprint Planning Meeting)
    3. 每日站会(Daily Scrum Meeting)
    4. Sprint评审会议(Sprint Review Meeting)
    5. Sprint回顾会议(Sprint Retrospective Meeting)

    5个价值

    1. 承诺 – 愿意对目标做出承诺
    2. 专注– 把你的心思和能力都用到你承诺的工作上去
    3. 开放– Scrum 把项目中的一切开放给每个人看
    4. 尊重– 每个人都有他独特的背景和经验
    5. 勇气– 有勇气做出承诺,履行承诺,接受别人的尊重

    SCRUM理论基础

    Scrum以经验性过程控制理论(经验主义)做为理论基础的过程。经验主义主张知识源于经验, 以及基于已知的东西做决定。Scrum 采用迭代、增量的方法来优化可预见性并控制风险。

    Scrum 的三大支柱支撑起每个经验性过程控制的实现:透明性、检验和适应。Scrum的三大支柱如下:

    第一:透明性(Transparency)

    透明度是指,在软件开发过程的各个环节保持高度的可见性,影响交付成果的各个方面对于参与交付的所有人、管理生产结果的人保持透明。管理生产成果的人不仅要能够看到过程的这些方面,而且必须理解他们看到的内容。也就是说,当某个人在检验一个过程,并确信某一个任务已经完成时,这个完成必须等同于他们对完成的定义。

    第二:检验(Inspection)

    开发过程中的各方面必须做到足够频繁地检验,确保能够及时发现过程中的重大偏差。在确定检验频率时,需要考虑到检验会引起所有过程发生变化。当规定的检验频率超出了过程检验所能容许的程度,那么就会出现问题。幸运的是,软件开发并不会出现这种情况。另一个因素就是检验工作成果人员的技能水平和积极性。

    第三:适应(Adaptation)

    如果检验人员检验的时候发现过程中的一个或多个方面不满足验收标准,并且最终产品是不合格的,那么便需要对过程或是材料进行调整。调整工作必须尽快实施,以减少进一步的偏差。

    Scrum中通过三个活动进行检验和适应:每日例会检验Sprint目标的进展,做出调整,从而优化次日的工作价值;Sprint评审和计划会议检验发布目标的进展,做出调整,从而优化下一个Sprint的工作价值;Sprint回顾会议是用来回顾已经完成的Sprint,并且确定做出什么样的改善可以使接下来的Sprint更加高效、更加令人满意,并且工作更快乐。

    转载于:https://my.oschina.net/hfq/blog/1813497

    展开全文
  • 增量交付开发 敏捷开发 当操纵金属和塑料而不是一和零时,是否有可能进行敏捷开发过程? 还是敏捷开发硬件的想法是错误的? 事实是,越来越多的组织给了瀑布式的支持,并转向基于scrum , lean和看板的模型,因为...

    增量交付开发 敏捷开发

    当操纵金属和塑料而不是一和零时,是否有可能进行敏捷开发过程? 还是敏捷开发硬件的想法是错误的?

    事实是,越来越多的组织给了瀑布式的支持,并转向基于scrumlean看板的模型,因为它们使敏捷开发硬件成为现实。 快速原型制作,模块化设计和仿真测试相结合,使硬件开发的敏捷性成为现代技术制造的真正可能性。

    从敏捷软件到敏捷硬件

    在敏捷软件开发中,创新流程是框架的基石,而不断变化则是日常工作。 预计更改将连续发生。 相对而言,与软件的不断变化相关的成本很低,因为它仅需要时间,知识和键入某些代码的能力。 但是,物理世界并不像数字世界那样容易改变。 硬件变更会带来高成本和巨大的阻力。

    但是,根据UT Dallas的产品开发项目经理和客座讲师Curt Raschke的说法,用于硬件开发的敏捷并不是一个真正的新主意。 实际上,敏捷最初起源于制造业。 他说:“这些想法来自精益和增量产品开发。” 从这个意义上讲,这个概念已经形成了一个完整的圈子,而敏捷已经出现在硬件开发中也就不足为奇了。 只是需要重新审视现有的最佳实践。

    对于FusePLM(使用基于卡的方法进行开发的全云产品生命周期管理系统)的首席执行官Shreyas Bhat来说,问题不在于是否可以进行敏捷的硬件开发,而是如何进行 ? 他说:“硬件往往是自包含的,并且有太多依赖关系。” “如何将其分为可交付使用的部分? 您需要能够对项目进行分区,并为客户提出里程碑。”

    原型设计和敏捷硬件开发

    快速原型是如何解决问题的一部分。 Bhat说:“如今,您可以廉价而又早地构建原型,以使客户对最终的功能有所了解。” “借助3D打印 ,原型制作的成本已大大降低。” 在成本始终是驱动因素的行业中,合同制造商已将原型变成商品。 能够求助于原型供应商进行快速,廉价的建模,可以为以后的实际制造商节省时间和金钱。

    如Bhat所述,由于更换工具会增加成本,因此对硬件的要求必须稳定。 原型设计有助于尽早确定合适的工具。 “您对生产需要什么有了更好的了解。 这样一来,您就可以为生产线预先获得正确的工具,而不必在途中进行重新配置。”

    但这并不意味着原型可以解决所有问题。 Raschke解释了主要限制之一。 他说:“从外形角度来看,它可用于产品开发。” “您可以使用它来提前获取外观方面的反馈。 但是,不能将3D打印单独用于带有需要组装的活动部件的东西。”

    敏捷硬件设计中的实践思维

    设计本身的性质是对用于硬件开发的敏捷问题的一种答案。 项目的模块化程度越高,任何给定组件中涉及的依赖关系越少,进行更改的难度就越大。 同样,选择尽可能少的材料类型来完成工作也是使硬件朝着更加灵活的方向发展的关键方面。 同样,这些都是制造业中的知名实践,非常适合在敏捷框架内实施。

    仿真或其他类型的迭代硬件评估是该过程的一部分时,明智的选择是在进行测试时进行设计。 只要知道模拟环境的局限性和功能,就可以将测试驱动开发(TDD)轻松地合并到硬件中。 跨功能团队最适合以这种方式开发硬件,并着眼于通过迭代测试来验证设计功能。

    实际上,Raschke透露这是与敏捷性相关的硬件面临的主要挑战之一,特别是在预测试和系统集成方面。 他说:“设计,开发和交付并不总是由同一团队来完成。” “即使可以由同一团队开发作品,他们也是不同的主题专家。 在硬件产品中,有电气,机械和软件工程师以及固件专家,等等。” 为了创建更快,更迭代的硬件开发方法,必须将这些不同的专家聚集在一起。 对于任何Scrum Master来说,这都是一个壮举。

    敏捷开发硬件的未来

    初创公司和快速发展的公司具有出色的构想,它们准备好应对敏捷开发方面的挑战。 尽管这可能有风险,但仍有可能获得高额回报。 在巴特看来,“有创新的​​地方就存在不确定性。 那是敏捷的最佳选择。 您可以做很多“假设”场景来尝试点子并Swift将其发布给客户。”

    但是,敏捷确实具有Raschke所解决的一个明显局限性。 他解释说:“硬件产品是逐步开发的,但不能以这种方式发布。” 确实是这样。 鉴于大量客户无视工厂召回和日常消费品的升级,因此很难想象他们对不断更新硬件的需求感到满意,特别是涉及到本地供应商的旅行或在安装过程中收到的套件的安装时。邮件。 因此,尽管用于硬件开发和设计的敏捷在行业中可能扮演着越来越重要的角色,但交付仍将是一个固定的点,几乎没有反复试验的余地。

    翻译自: https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/Using-Agile-for-hardware-development-to-deliver-products-faster

    增量交付开发 敏捷开发

    展开全文
  • Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。Scrum在英语的意思是橄榄球里的争球。虽然Scrum是为管理软件开发项目而开发的,它同样可以用于运行软件维护团队,或者作为计划管理方法:Scrum ofScrums....
  • 现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP...为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自己的话来讲述Scrum中的各个环节,主要目的有...

    现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP...为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自己的话来讲述Scrum中的各个环节,主要目的有两个,一个是进行知识的总结,另外一个是觉得网上很多学习资料的讲述方式让初学者不太容易理解;所以我决定写一篇扫盲性的博文,同时试着也与园内的朋友一起分享交流一下,希望对初学者有帮助。

     什么是敏捷开发?

    敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。

    怎么理解呢?首先,我们要理解它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一步完成项目的开发;而这种开发方式的主要驱动核心是人;它采用的是迭代式开发;

     

    为什么说是以人为核心?

    我们大部分人都学过瀑布开发模型,它是以文档为驱动的,为什么呢?因为在瀑布的整个开发过程中,要写大量的文档,把需求文档写出来后,开发人员都是根据文档进行开发的,一切以文档为依据;而敏捷开发它只写有必要的文档,或尽量少写文档,敏捷开发注重的是人与人之间,面对面的交流,所以它强调以人为核心。

     

    什么是迭代?

    迭代是指把一个复杂且开发周期很长的开发任务,分解为很多小周期可完成的任务,这样的一个周期就是一次迭代的过程;同时每一次迭代都可以生产或开发出一个可以交付的软件产品。

     

    关于Scrum和XP

    前面说了敏捷它是一种指导思想或开发方式,但是它没有明确告诉我们到底采用什么样的流程进行开发,而Scrum和XP就是敏捷开发的具体方式了,你可以采用Scrum方式也可以采用XP方式;Scrum和XP的区别是,Scrum偏重于过程,XP则偏重于实践,但是实际中,两者是结合一起应用的,这里我主要讲Scrum。

     

    什么是Scrum?

    Scrum的英文意思是橄榄球运动的一个专业术语,表示“争球”的动作;把一个开发流程的名字取名为Scrum,我想你一定能想象出你的开发团队在开发一个项目时,大家像打橄榄球一样迅速、富有战斗激情、人人你争我抢地完成它,你一定会感到非常兴奋的。

    而Scrum就是这样的一个开发流程,运用该流程,你就能看到你团队高效的工作。

     

    【Scrum开发流程中的三大角色】

    产品负责人(Product Owner)

    主要负责确定产品的功能和达到要求的标准,指定软件的发布日期和交付的内容,同时有权力接受或拒绝开发团队的工作成果。

     

    流程管理员(Scrum Master)

    主要负责整个Scrum流程在项目中的顺利实施和进行,以及清除挡在客户和开发工作之间的沟通障碍,使得客户可以直接驱动开发。

     

    开发团队(Scrum Team)

    主要负责软件产品在Scrum规定流程下进行开发工作,人数控制在5~10人左右,每个成员可能负责不同的技术方面,但要求每成员必须要有很强的自我管理能力,同时具有一定的表达能力;成员可以采用任何工作方式,只要能达到Sprint的目标。

     

     

    Scrum流程图

     

    //------------------------

    下面,我们开始讲具体实施流程,但是在讲之前,我还要对一个英文单词进行讲解。

    什么是Sprint?

    Sprint是短距离赛跑的意思,这里面指的是一次迭代,而一次迭代的周期是1个月时间(即4个星期),也就是我们要把一次迭代的开发内容以最快的速度完成它,这个过程我们称它为Sprint。

     

    如何进行Scrum开发?

    1、我们首先需要确定一个Product Backlog(按优先顺序排列的一个产品需求列表),这个是由Product Owner 负责的;

    2、Scrum Team根据Product Backlog列表,做工作量的预估和安排;

    3、有了Product Backlog列表,我们需要通过 Sprint Planning Meeting(Sprint计划会议) 来从中挑选出一个Story作为本次迭代完成的目标,这个目标的时间周期是1~4个星期,然后把这个Story进行细化,形成一个Sprint Backlog;

    4、Sprint Backlog是由Scrum Team去完成的,每个成员根据Sprint Backlog再细化成更小的任务(细到每个任务的工作量在2天内能完成);

    5、在Scrum Team完成计划会议上选出的Sprint Backlog过程中,需要进行 Daily Scrum Meeting(每日站立会议),每次会议控制在15分钟左右,每个人都必须发言,并且要向所有成员当面汇报你昨天完成了什么,并且向所有成员承诺你今天要完成什么,同时遇到不能解决的问题也可以提出,每个人回答完成后,要走到黑板前更新自己的 Sprint burn down(Sprint燃尽图);

    6、做到每日集成,也就是每天都要有一个可以成功编译、并且可以演示的版本;很多人可能还没有用过自动化的每日集成,其实TFS就有这个功能,它可以支持每次有成员进行签入操作的时候,在服务器上自动获取最新版本,然后在服务器中编译,如果通过则马上再执行单元测试代码,如果也全部通过,则将该版本发布,这时一次正式的签入操作才保存到TFS中,中间有任何失败,都会用邮件通知项目管理人员;

    7、当一个Story完成,也就是Sprint Backlog被完成,也就表示一次Sprint完成,这时,我们要进行 Srpint Review Meeting(演示会议),也称为评审会议,产品负责人和客户都要参加(最好本公司老板也参加),每一个Scrum Team的成员都要向他们演示自己完成的软件产品(这个会议非常重要,一定不能取消);

    8、最后就是 Sprint Retrospective Meeting(回顾会议),也称为总结会议,以轮流发言方式进行,每个人都要发言,总结并讨论改进的地方,放入下一轮Sprint的产品需求中;

     

     

    下面是运用Scrum开发流程中的一些场景图:

    上图是一个 Product Backlog 的示例。

     

    上图就是每日的站立会议了,参会人员可以随意姿势站立,任务看板要保证让每个人看到,当每个人发言完后,要走到任务版前更新自己的燃尽图。



    任务看版包含 未完成、正在做、已完成 的工作状态,假设你今天把一个未完成的工作已经完成,那么你要把小卡片从未完成区域贴到已完成区域。


     

    每个人的工作进度和完成情况都是公开的,如果有一个人的工作任务在某一个位置放了好几天,大家都能发现他的工作进度出现了什么问题(成员人数最好是5~7个,这样每人可以使用一种专用颜色的标签纸,一眼就可以从任务版看出谁的工作进度快,谁的工作进度慢)

     

     

     上图可不是扑克牌,它是计划纸牌,它的作用是防止项目在开发过程中,被某些人所领导。

    怎么用的呢?比如A程序员开发一个功能,需要5个小时,B程序员认为只需要半小时,那他们各自取相应的牌,藏在手中,最后摊牌,如果时间差距很大,那么A和B就可以讨论A为什么要5个小时...

     最后呢给大家推荐一本书:硝烟中的scrum和xp

    敏捷开发的4句宣言

    个体与交互 胜过 过程与工具

    可以工作的软件 胜过 面面俱到的文挡

    客户协作 胜过 合同谈判

    响应变化 胜过 遵循计划

    原文转自:博客园博文 http://www.cnblogs.com/taven/archive/2010/10/17/1853386.html
    展开全文
  • 敏捷开发与传统螺旋、增量模型区别 共同点:增量 不同点 1.应用场景不同 螺旋模型适合 "复杂度高, 风险大, 规模大"的项目 增量迭代模型适合 “大型历时长”的项目 敏捷开发更适用于小型团队 2.针对点不同 敏捷开发 =...

    敏捷开发与传统螺旋、增量模型区别

    共同点:增量

    不同点
    1.应用场景不同
    螺旋模型适合 "复杂度高, 风险大, 规模大"的项目
    增量迭代模型适合 “大型历时长”的项目
    敏捷开发更适用于小型且紧凑的自我组织型团队

    2.针对点不同
    敏捷开发 = 增量 + 迭代;程序员团队和业务专家之间联系紧密,频繁交付新的软件版本,可在迭代过程中提出新的变化需求。
    迭代式的增量开发,与敏捷开发均在较短的开发周期提交软件。一般会在一个比较长的一个迭代周期频率下不断交付,迭代中不允许有变化的需求,需要项目最初就做好估算,不能轻易更改。相比较,敏捷方法的周期可能更短,并且更加强调队伍中的高度协作。所以,像我们软件构造的实验来讲,更像是增量迭代式开发,如果实验验收密切,每次助教都提出新要求,就更像敏捷开发。
    螺旋模型强调的是风险,要根据需求,制定计划,风险分析,设计原型,客户评估,这四个阶段不断重复。不断地增量发布,针对每次的原型或者产品不断的进行风险评估,及时调整方案、需求、设计,以此迭代方式,最终完成产品。

    参考文档:
    迭代、原型、螺旋、敏捷模型之间的区别
    传统开发模型与敏捷开发模型的区别
    软件开发生命周期模型 瀑布模型、增量模型、原型模型、螺旋模型、喷泉模型、RUP(Rational Unified Process 统一软件开发过程)、敏捷开发(开发方法,不是周期模型)
    传统开发模型vs敏捷开发模型——过程模型的变革

    展开全文
  • 敏捷开发

    2020-04-12 18:31:01
    敏捷开发 目录 前言 迭代开发 增量开发 敏捷开发的好处 早期交付 降低风险 如何进行每一次迭代 敏捷开发的价值观 十二条原则 前言 迭代开发 敏捷开发的核心是迭代开发(iterative development)。敏捷...
  • Scrum ...   ...敏捷软件开发模型--SCRUM...Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括同项目经理类似的Scrum主管角色负责维护过程和
  • Scrum (英式橄榄球争球队), 软件开发模型是敏捷开发的一种,在最近的一两年内逐渐流行起来。 Scrum是一种迭代式增量软件开发过程。 Scrum的基本假设是:开发软件就像开发新产品,无法一开始就能定义软件产品最终的...
  • 迭代 增量 敏捷 当我教培训课程时(就像我本周在Skills Matter上一样 )或在软件开发的需求方面为客户提供建议(我现在正在做很多事情)时,我谈论的模型是“ 3种敏捷风格” ”。 令人难以置信的是,尽管该模型多年...
  • 软件生命周期,又称为 软件生存周期 或 系统开发生命周期,是软件的产生直到报废的生命周期,周期内有以下八个阶段: 问题定义 可行性研究 需求分析 概要设计(总体设计) 详细设计 编码与单元测试 综合测试 软件...
  • 很久以前Ken Shweber在到...他问有没有一些需求是明确的而且不需要那台测试服务器,大家回答有,但是只够1个月开发的。他说好,那就先干一个月,然后给客户看看再说……项目于是就开工了。后来的事情大家都知道,这种方
  • 一、敏捷开发 “敏捷”是一种思想,与”瀑布“式(即传统开发模式)相比,敏捷开发有如下宣言 个体和互动高于流程和工具:意思是敏捷开发中每个人都可以提出自己的见解,而不必按照”流程“逐个向上级反应。目的是...
  • Scrum敏捷开发

    2019-11-12 15:21:38
    Scrum是敏捷开发的一种,是一种以人为本,迭代式增量软件开发的过程,以英式橄榄球争球队形(Scrum)为名,因此可以想象,整个团队是高效而富有激情的。以人为本,即Scrum开发特别强调沟通,要求团队所有人员都坐着...
  • 敏捷开发经验之谈

    2016-01-04 15:30:28
    敏捷开发相对传统软件开发模式,它主要是针对快速变化的需求,是一种增量式的软件开发过程,早交付、频交付。
  • 敏捷开发实践(一)--谈谈我对敏捷开发的理解

    万次阅读 热门讨论 2015-05-31 08:16:30
    随着敏捷开发越来越流行,人人都在谈敏捷,人人也都在学习scrum等敏捷开发方法。。。当然,自己也是敏捷开发的实施者和受益者。
  • 敏捷开发:cmmi

    2019-09-06 17:16:11
    敏捷开发 前言 迭代开发 增量开发 敏捷开发的好处 早期交付 降低风险 如何进行每一次迭代 敏捷开发的价值观 十二条原则 前言    迭代开发   敏捷开发的核心是迭代开发(iterative development...
  • 敏捷开发 开发方法 开发模式 快速提高开发效率 节约开发时间 新技术
  • 敏捷开发入门

    2019-10-05 19:47:08
    敏捷开发(agile development)是非常流行的软件开发方法。据统计,2018年90%的软件开发采用敏捷开发。 但是,到底什么是敏捷开发,能说清的人却不多。本文尝试用简洁易懂的语言,解释敏捷开发。 一、迭代开发 ...
  • ylbtech-开发模式-敏捷开发:什么是敏捷开发 1.返回顶部 1、 0、先来一张导图 1、概念 简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,217
精华内容 5,286
关键字:

增量敏捷开发