精华内容
下载资源
问答
  • 敏捷开发原则

    2019-10-05 23:00:57
    的一个作业, 我要求同学们把 英文的敏捷开发原则 翻译成中文并解释。 大部分同学都提供了持续重构, 不断提高的版本。 技术翻译专家余晟老师也对其中较难翻译的三条原则提了很好的建议。 下面是我的尝试, 翻译要做到...

    作为 <现代软件工程> 的一个作业,  我要求同学们把 英文的敏捷开发原则 翻译成中文并解释。 大部分同学都提供了持续重构, 不断提高的版本。 技术翻译专家余晟老师也对其中较难翻译的三条原则提了很好的建议。 下面是我的尝试, 翻译要做到 信, 达, 雅, 很难,  而且中国的软件工程实践有自己的特色, 别家的格言警句有时候未必能引起共鸣。不管如何, 我们先得有一个靶子, 然后大家才能拍砖, 是不是?  欢迎提意见。

     

    1: Our highest priority is to satisfy the customer through early and continuous delivery of valuable software

    翻译:尽早并持续地交付有价值的软件以满足顾客需求。

     

    2: Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage

    翻译:敏捷流程欢迎需求的变化, 并利用这种变化来提高用户的竞争优势。

     

    3: Deliver working software frequently, from a couple of weeks to a couple of months, with a preference for the shorter timescale

    翻译:经常发布可用的软件,发布间隔可以从几周到几个月,能短则短。

     

    (Team1 MicroTeam 的翻译)

     

    4: Business people and developers must work together daily throughout the project. 

    翻译:业务人员和开发人员在项目开发过程中应该每天共同工作。

     

    5: Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. 

    翻译:以有进取心的人为项目核心,充分支持信任他们

     

    6: The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

    翻译:无论团队内外,面对面的交流始终是最有效的沟通方式

     

    (Team2 ASE 的翻译)

     

    7: Working software is the primary measure of progress.

    翻译: 可用的软件是衡量项目进展的主要指标

     

    8: Agile processes promote sustainable development.  The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

    翻译: 敏捷流程应能保持可持续的发展。 领导, 团队和用户应该能按照目前步调持续合作下去。

     

    9: Continuous attention to technical excellence and good design enhances agility.

    翻译: 只有不断关注技术和设计才能越来越敏捷.

     

    (由于某种尚未明了的原因, Team3 没有翻译这一段, 他们翻译了4-6, 10-12, 但是就是没有翻译 7-9).

     

    10: Simplicity--the art of maximizing the amount of work not done--is essential.

    翻译: 保持简明 - 尽可能简化工作量的技艺 - 极为重要。英文说 maximizing the amount of work not done.  我的理解是 - 任何还没有明确的工作都会花不可知的时间,因此要 maximize,  不要把那些还没有做的工作和正在做的工作混起来。      

          

    11: The best architectures, requirements, and designs emerge from self-organizing teams.

    翻译: 只有能自我管理的团队才能创造优秀的架构, 需求和设计.

     

    12: At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

    翻译: 时时总结如何提高团队效率, 并付诸行动。

    (Team4 CodingCrazy 的翻译)

    转载于:https://www.cnblogs.com/xinz/archive/2010/12/10/1902725.html

    展开全文
  • 敏捷开发原则

    2007-02-28 20:58:00
    敏捷开发原则 1. 我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。2. 即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。3. 经常性地交付可以工作的软件,交付的...

    敏捷开发原则

     

    1. 我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。

    2. 即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。

    3. 经常性地交付可以工作的软件,交付的间隔可以从几周到几个月,交付的时间间隔越短越好。

    4. 在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。

    5. 围绕被激励起来的个人来构建项目。给他们提供所需要的环境和支持,并且信任他们能够完成工作。

    6. 在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈。

    7. 工作的软件是首要的进度度量标准。

    8. 敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。

    9. 不断地关注优秀的技能和好的设计会增强敏捷能力。

    10. 简单——视为完成的工作最大化的艺术——是根本的。

    11. 最好的构架、需求和设计出自于自组织的团队。

    12. 每隔一段时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。

     
    展开全文
  • 敏捷开发原则及方法

    2020-03-10 11:41:28
    敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。...敏捷开发原则包括: ①最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。 ②即使到了开发的后期,也欢迎改变需求。敏捷过...

    敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。敏捷开发的原则包括:

    ①最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。

    ②即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。

    ③经常性的交付可以工作的软件,交付的间隔可以从几周到几个月,交付的时间间隔越短越好。但不要求每次交付的都是系统的完整功能。

    ④在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。

    ⑤围绕被激励起来的人来构建项目。给他们提供所需要的环境和支持,并且信任他们能够完成工作。

    ⑥在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈。

    ⑦工作的软件是首要进度度量标准。

    ⑧敏捷过程提供持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。

    ⑨不断地关注优秀的技能和好的设计会增强敏捷能力。

    ⑩简单——使未完成的工作最大化的艺术——是根本的。

    ⑪最好的构架、需求和设计出自于团队内部。

    ⑫每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。

    敏捷开发包括一系列的方法,主流的有如下7种:

    ①XP。XP (极限编程)的思想源自Kent Beck和Ward Cunningham在软件项目中的合作经历。XP注重的核心是沟通、简明、反馈和勇气。因为知道计划永远赶不上变化,XP无需开发人员在软件开始初期做出很多的文档。XP提倡测试先行,为了将以后出现bug的几率降到最低。

    ②SCRUM。SCRUM是一种迭代的增量化过程,用于产品开发或工作管理。它是 一种可以集合各种开发实践的经验化过程框架。SCRUM中发布产品的重要性高于一切。 该方法由KenSchwaber和Jeff Sutherland提出,是旨在寻求充分发挥面向对象和构件技术的开发方法,是对迭代式面向对象方法的改进。

    ③ Crystal Methods。Crystal Methods (水晶方法族)由 Alistair Cockbum 在20世纪90年代末提出。之所以是个系列,是因为他相信不同类型的项目需要不同的方法。虽然水晶系列不如XP的产出效率高,但有更多的人能够接受并遵循它。

    ④ FDD。FDD (特性驱动开发)由 PeterCoad、Jeff de Luca 和 Eric Lefebvre 共同开发,是一套针对中小型软件开发项目的开发模式。此外,FDD是一个模型驱动的快速迭代开发过程,它强调的是简化、实用、易于被开发团队接受,适用于需求经常变动的项目。

    ⑤ASD。ASD (自适应软件开发)由Jim Highsmith在1999年正式提出。ASD强调开发方法的适应性,这一思想来源于复杂系统的混纯理论。ASD不像其他方法那样有很多具体的实践做法,它更侧重为ASD的重要性提供最根本的基础,并从更高的组织和管理层次来阐述开发方法为什么要具备适应性。

    ⑥DSDM。DSDM (动态系统开发方法)是众多敏捷开发方法中的一种,它倡导以业务为核心,快速而有效地进行系统开发。实践证明DSDM是成功的敏捷开发方法之一。在英国,由于其在各种规模的软件组织中的成功,它已成为应用最为广泛的快速应用开发方法。DSDM不但遵循了敏捷方法的原禅,且也适合那些成熟的传统开发方法有坚实基础的软件组织。

    ⑦轻量型RHRUP其实是个过程的框架,它可以包容许多不同类型的过程,Craig Lannan极力主张以敏捷型方式来使用RUP。他的观点是:目前如此众多的努力以推进敏捷型方法,只不过是在接受能被视为RUP的主流00开发方法而已。

    展开全文
  • [探讨]敏捷开发原则

    2012-07-17 11:38:55
    [探讨]敏捷开发原则 最近,“敏捷”、“敏捷开发”这类词常常围绕在我们耳边。对于它的含义,我们是否真正了解?它是如何让开发变的有趣和高效?如何使用“敏捷”来进行商务沟通,并且使这种沟通更容易和更有...

    [探讨]敏捷开发原则

    最近,“敏捷”、“敏捷开发”这类词常常围绕在我们耳边。对于它的含义,我们是否真正了解?它是如何让开发变的有趣和高效?如何使用“敏捷”来进行商务沟通,并且使这种沟通更容易和更有建设性?

    什么是敏捷开发?

    一群开发经验丰富和才华横溢的开发人员通过关注其他公司和别的开发团队并且结合自身的项目经验,创建了敏捷开发宣言,让软件开发工作变的更容易更轻松:

    1. 个人和交互重于流程和工具
    2. 有效的软件重于全面的文档
    3. 客户合作重于合同谈判
    4. 因时制宜重于按步就班

    下面本文将会介绍12条敏捷开发原则,对于开创新的软件开发过程,这仅仅是第一步。

    客户满意度

    通过早期和持续不断的交互有价值的产品,来提升客户的满意度,这并不表示我们的软件会变成全能的。但在开发和每次迭代的时候都要考虑这一特征。

    如果我们要开发一个博客引擎,也许会按照下面的步骤进行:                        

    1. 创建博客展示页面,交付给客户。
    2. 创建用户管理中心和会员制度,交付给客户。
    3. 添加评论管理功能,交付给客户。
    4. 等等,交付给客户。

    上面只是一些简单方法,但是客户会看到软件产品设计的每一步并且在每个新特征上做出反馈。它可能已经很好或者需要做出调整,但是你能迅速做调整,打造一个双赢的局面。

    拥抱变化

    即使在开发后期,为了提高客户的竞争优势,敏捷开发也允许根据变化做出相应调整。

    客户希望很快完成并且尽可能与他们所想的设计相接近。通过倾听和做好随时调整的准备,实现这个就比较简单。如果能够根据需求的变化快速做出响应,那么,我们可能就是客户最好的选择了。敏捷的核心就是关于沟通和改变,从客户那里得到什么,就迅速的实现,因为我们开发软件的每个子项目都可以根据需求进行调整,并不会对其他子项目产生不好的影响,反而会使开发变的快速高效。

    频繁交付

    从几周到几个月就应该交付更新,间隔越短,越好!

     customers feel more confident in us and our product as it is updated。

    根据多年的开发经验,你可能会发现,客户对每次的产品更新都很有信心,通过这样来维系好客户关系也是很重要的,另外通过客户每次回馈给我们的信息,做出相应的调整,比如需要改变类、功能、模块或者是架构等让软件更加贴近用户。但在实际操作中,我们很难会意识到这些,往往都是出现错误的时候,才会注意到,下面让我们来看下面的情形:

    在一个文本管理器中,你需要创建一个模块来显示一些简单的文本,突然,你必须添加一个form,根据配置里面的地址发送邮件。此外,form要求可定制,用户可以在里面添加新的字段和验证器。所以你基本上要忘记最初的简单文本要求,对于突然的这些变化,你会花多长时间?如果你工作在一个与客户经常打交道,并且项目频繁交付的环境中,对你来说,这些变化都会变的很简单。

    常常一起工作

    如果你一直采用古老的瀑布软件开发模式,那么要想适应这条原则可能会很困难。作为开发人员,不要采用单一的方式和客户沟通,在我看来,最好的方式之一就是用讲故事的方式进行沟通,告诉他们这个是干什么的?为什么要做?这样会让我们做起来更加简单轻松。另一个比较好的方法就是行为驱动开发(BDD)。

    拥抱团队,善待个人

    提供和你一起工作的伙伴们需要的环境和技术,然后相信他们能胜任。

    一个轻松愉悦的氛围和所有工具都齐全的工作环境对于开发出好的软件是非常重要的。好的员工从公司流失掉,大多数都是因为公司没有真正关心过他们。开发人员使用FTP客户端在一些服务器上面写,测试和部署软件并且对一些需要补充的产品文挡进行编辑,如果你对这种古老的模式没有一点谴责的话,最好现在就开始。

    留住好员工还有一个好处就是可以更高效的开发一个好而且大的软件。想想:编写可重用的代码、自动化测试和在服务器上部署(或者在其他东西中)这些都是要花费时间才能完成的。当项目被延迟的时候,会把一些原因归结在学习如何使用有用的工具上。例如Jenkins,GIT,SVN,Gerrit,Behat等。坦白地说,有些工具和概念在以后的项目中是可以重用的。

    面对面沟通

    把信息传达给客户和开发团队,采用面对面的沟通是最行之有效的方式。

    在邮箱里面看到6,255,384份邮件,我想谁都会有点不知所措或者是愤怒吧?因为你们公司的所有沟通都是“表面化”的。面对面的交流会让沟通更方便而且更顺利,得到的信息也会更丰富。队员可以用语言的或者非语言的形式把他们的想法表达出来,这个明显比用邮件更快。

    除了上面陈述的,更重要的是要彼此信任,在一个互相信任的环境里,更应该鼓励面面对面沟通。

    使用软件来衡量进展

    根据自己的软件开发进度可以让工作更自由,软件开发人员不同于其他员工,所以很自然地,他们应该有个不一样的待遇。开发人员并不想让自己做出来的软件很糟糕,而且他们也不会根据自己的喜好来工作。只要他们能够按照团队的进度准时完成项目即可。并且客户只会关心结果,不会去注重过程。

    维持一种不变的步伐

    敏捷的突出优点如可以随时接受变化,快速做出回馈等,但最好的优点应该是能够精确地确定项目时间或者功能消耗。经过几次交付后,开发团队会产生最有价值的商业编号:容量。容量是指团队在一次迭代中的工作量。在几次迭代后,容量编号仍然是稳定的,并且我们可以避免不合理的截止日期和实验时间,就像“仍一顶帽子出去”当把公司产品提供给客户的时候。 

    关注工业发展

    关注工业领域会提高敏捷性。

     

    我们希望发展和进步,每天都应该继续学习,因为这个行业增长速度是如此的快速。为了硬件和软件都变的更好,必须时刻保持最新的状态;否则,我们会发现自己迷失在“sea of new”里面,并且很难回到正轨。

    重构可以解决大多数问题。通过不断地重构(在需要时),我们可以很容易地应用新技术和更好的我们的软件架构。

    简单至关重要

    比尔·盖茨曾说过:

     If I have some complicated work to do, I will give it to the laziest person I have, because they will find the simplest way to do it.

    简单是一个黄金法则。这也并不意味着你很懒,但也说明开发人员很多时候都把工作复杂化,如果你只关心和只做客户想要的,而不去添加额外的功能和改进,那么你的工作就会轻松很多,并且会很快达成目标。从根本上说,客户也只关心这个。

    自我组织

    最佳的架构、需求和设计往往都是产生于自己的组织团队里。

    你是否曾开发过一个大而且费时的应用项目,而且在花了无数个小时候在屏幕前编写代码、阅读文档和查阅资料,你坐下来看那些不好(但是可以工作)的代码时,你会发现,我可以用更好的代码实现。

    有这样的一个团队,遵循TDD(Test Driven Development)开发原则,并且重构也是其中的一部分。他们的软件以一种很神奇的方式去开发,并且是有用的、美丽的、易读易写、测试以及可以快速的创建。他们只是一群人,并不会去预知一切。

    反映&调整

    每隔一段时间,开发团队都会总结怎样让软件更高效并因此进行调整。

    这可能花费几个开发周期,但是团队开发将会更和谐,即使是有新成员加入。敏捷开发团队会很快把工作完成,如果在一个友好的环境中,他们也会发现有“旋律的工作”,你也会看到如何快速开发软件。

    下面介绍几个敏捷开发方法这里有一些方法是源自并建立在敏捷开发原则上面的。在下面中,会介绍几个有名的方法。请记住:方法并不控制一切,你需要结合自己的实际,来选择适合你的或者通过配置一些方法来满足你的需求。

    SCRUM

    Scrum是一种迭代式增量软件开发过程。Scrum在英语的意思是橄榄球里的争球。

    SCRUM是由Schwaber和Jeff Sutherland创建的,SCRUM是一个面向业务的框架来管理你的软件开发流程。有许多不同类型的SCRUM,需要记住的是主要目标是有效的进行工作并且不需要遵守规则。

    Extreme Programing (XP)

    该方法是由Kent Back创建的,XP是最佳实践列表,当进行程序开发的时候,程序员需要遵循的。该方法有时也会被称作“扩展的SCRUM”。创建这种方法的原因是为了解决SCRUM不面向业务这一特点。

    Lean Software Development

    精益开发的两个主要原则是:DALAP(Decide As Late As Possible)和DAFAP(Deliver As Fast As Possible)。这个方法也非常有用。

    在敏捷家族里面有许多方法,上面只是简单的介绍最流行的三个方法,如果你决定在你的项目里面采用敏捷开发,你最好多了解一些开发方法,找到最适合你的。

    本文只是作者结合自己的工作经验总结的12个敏捷开发原则和3个方法,如果你有更好的实践经验和方法,欢迎留言与大家一起探讨!


    展开全文
  • 2.3 规范敏捷开发原则 为了帮助人们更好地理解敏捷软件开发的真正含义,敏捷开发联盟的成员们将他们宣言中的主要观点精炼为12条原则。我们改动了其中一些(改动之处用楷体显示),并且新加入了三条。这15条规范敏捷...
  • 敏捷开发原则(转)

    2011-05-14 11:27:00
    敏捷开发原则作为 <现代软件工程> 的一个作业, 我要求同学们把 英文的敏捷开发原则 翻译成中文并解释。 大部分同学都提供了持续重构, 不断提高的版本。 技术翻译专家余晟老师也对其中较难翻译的三条原则提了很好的...
  • 创建正确的抽象是要花费开发时间和精力的,同时,那些抽象也增加了软件设计的复杂性。 遵循这个原则可以带来面向对象技术所声称的巨大好处(灵活性、可重用性以及可维护性) 对于应用程序中的每个部分都肆意地进行...
  • Rocket程序员Jasmine Adamson在文中表达了敏捷开发原则是废话的观点,他觉得现实生活中没有什么人会推崇这些原则来工作,不过他们仍然在说其所做的是敏捷,这是非常让人沮丧的。 以下为译文: 敏捷开发以用户的...
  • 初识敏捷开发原则

    千次阅读 热门讨论 2014-02-15 16:19:20
    在软件开发中,我们经常会遇到类似这样的问题    我们所理解的东西无法和用户想要的达成一致,所以用户提出的要求,经过项目经理、分析师,最后到程序员的就已经被篡改的面目全非,所以,经过程序员们日以继日的...
  • 四叶草读完需要2分钟速读仅需 1 分钟/ 敏捷原则: /以人为本激发个体的斗志, 以团队为核心搭建项目, 提供所需的环境和支持, 辅以信任, 从而达成目标。成果导向可工作的软件是进度的首...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,005
精华内容 1,202
关键字:

敏捷开发原则