敏捷软件指南
在过去的十年敏捷软件开发已经从一个邪教技术主流的增加部分移动。我很幸运地成为这个故事的开始,早期经验上的“诞生计划”极限编程和的合着者宣言敏捷软件开发。ThoughtWorks的在2000年开始使用敏捷技术,我们已经成功地从他们使用我们的项目世界各地。我们已经学到了很多关于使用敏捷企业的设置方法,并致力于分享这个学习,以帮助促进他们的智能采纳。
的指南材料上www.hdxh168.com关于敏捷软件开发。
敏捷软件开发的本质
自从敏捷方法的开发人员第一次谈论他们的方法以来,已经有十多年的时间了。在这段时间里,敏捷思维已经从一种利基活动转变为一种被广泛使用的方法。然而,像任何流行的技术一样,敏捷软件开发也受到了影响语义扩散,这么多的东西,我们敏捷的名义下看不承担太多的相似之处是什么早期开拓者在干什么。所以我觉得重温思维敏捷的基本要素是非常重要的。
我始终认为,思维敏捷休息的本质上的两个对比与传统的计划驱动软件工程:
敏捷发展
- 是自适应而不是预测
- 是以人为本而不是面向流程的
计划驱动的工程预计我们能够拿出一个预测计划先于发展。该计划提出了在人才,资源和时间用于整个项目。软件设计也做的前期bet188足球,以实现预期的这种设计保持一致。成功根据测得的以及怎样发展遵循这个计划。
敏捷计划是我们用来帮助我们控制变化的基线。敏捷团队的精心策划,就像传统强队,但计划在不断修改反映我们在项目中所学到的东西。成功是基于价值传递的软件。
计划驱动的工程寻求一种方法,它提供了足够的结构减少个体差异渺小。这样的工业流程更容易预测,在人员调动时能更好地应对,也更容易定义技能和职业道路。
敏捷工程认为软件开发作为主要是人类活动,这里的人参与,以及他们如何债券作为一个团队是成功背后的主要驱动力。流程(工具),可以提高团队的效率,但总是二阶影响。
新方法
在我与至尊在90年代编程积极的经验,我开始好奇发音相似的方法,如Scrum的,水晶,和DSDM。挖掘到他们,我提炼这些新方法的共同特点是:宁愿自适应规划,预测规划,待人以成功不是使用了什么过程更重要。随着时间的推移,这些方法敏捷软件开发的旗帜下聚集,(和我修改文章),但我还是发现本文中的观点一个很好的方式,了解敏捷的精髓。
宣言敏捷软件开发
它可能不是一切的开始,但宣言给了这个运动一个名字和一团初始的能量。十年后,它仍然抓住了敏捷方法的精髓。
谈话:敏捷本质和流畅性
自从我们为敏捷软件开发撰写宣言以来,已经过去了十多年,而敏捷迷因的成功程度超出了我们的预期。但就像任何成功一样,语义扩散的危险也时有发生。我试图通过描述敏捷软件开发的本质来对抗这种疾病:更喜欢自适应规划而不是预测规划,更喜欢人而不是过程。
然后我介绍了敏捷流畅的模型,我觉得思考敏捷团队如何成为精通的有效途径,而且您通常会经过的步骤,你变得敏捷技术更娴熟的用户。
敏捷流畅度模型
敏捷方法是扎实的主流,但普及并非没有问题。组织领导抱怨他们没有得到他们所期望的效益。本文提出了一种流畅的模型,这将有助于你得到最出敏捷的想法。通过四个不同的区域流利的发展,各有各的好处,需要熟练程度,以及关键指标。
技术实践
要使敏捷发挥作用,您需要坚实的技术实践。许多敏捷教育都没有强调这些,但是如果你在这一点上忽略了,你就不会获得敏捷开发所能给你的生产力和响应能力的好处(把你困在第一个区域)敏捷流利)。这是原因之一,我仍然认为,极限编程是被命名的敏捷方法中最有价值的核心和起点。
188足球比分直播重构的指导
188足球比分直播重构是重组的代码的现有体,改变其内部结构不改变其外部行为纪律技术。它的心脏是一系列小的行为保留转换。每一个变换(称为“重构”)做一点,但这些变化的序列可以产生显著188足球比分直播重组。由于每个重构是小,这是188足球比分直播不太可能出问题。该系统保持每个重构后完全正常工作,降低了机会,一个系统可以改制过程中得到严重损坏。188足球比分直播
高质量的软件物有所值吗?
在软件开发项目中,一个常见的争论是花时间改进软件质量还是集中精力发布更有价值的特性。通常,交付功能的压力主导着讨论,导致许多开发人员抱怨他们没有时间在架构和代码质量上工作。这场争论基于这样一个假设,即提高质量也会增加成本,这是我们的共同经验。但与直觉相反的事实是,内部软件质量消除了减缓开发新特性的束缚,从而降低了增强软件的成本。
持续交付指导
它是为软件开发者,他们的机器上工作写代码够硬。但是,即使这样做了,有一个从有到软件很长的旅程,真实生产价值 - 因为软件只产生价值时,它的生产。他我的理念,以软件交付的本质是建立软件,以便它总是在那里可以投产的状态。因为我们连续运行部署流水线是检验如果这个软件的状态交付我们称之为持续交付。
是设计bet188足球死了吗?
对于许多来简单地与极限编程的接触,似乎XP要求软件设计的死亡。bet188足球不仅仅是很多设计活动嘲笑为“大了前bet188足球面设计”,但这样的设计技术,如UML,灵活的框架,甚至图案是去强调或彻头彻尾的忽略。其实XP涉及到很多设计的,但它确实比建立软件过程的不同方式bet188足球。XP已重新焕发活力的进化设计与实践,使发展成为一个可行的设计策略的概念。bet188足球它还提供了新的挑战和技能,设计人员需要学习如何做一个简单的设计,如何使用重构来保持一个干净的bet188足球设计,以及如何使用模式在进化的风格。188足球比分直播
代码文档
敏捷方法的一个常见元素是,它们将编程提升为软件开发中的核心角色——这比软件工程社区通常扮演的角色要重要得多。其中一部分是将代码分类为软件系统的主要文档,如果不是主要文档的话。
协作
改进人类协作是敏捷思维的核心。交流和反馈是极限编程的两大价值,敏捷开发者希望在他们的项目中最大化这些价值
不仅仅是站立:每天站立会议的模式
每日站立会议已经成为很多球队的常见礼仪,尤其是在敏捷软件开发。不过,也有区分有效站稳起坐和时间的浪费很多微妙的细节。
在结对编程
许多今天谁在软件开发工作的人都听过结对编程的实践,但它仍然只是在行业修修补补采用。其变化的接受的原因之一是,它的好处是不会立即明显,更不负有心人,在中期和长期。而且这也并不是这么简单,“两个人在一台计算机工作”,让很多快驳回它时,它感到不舒服。然而,根据我们的经验,结对编程是一个协作团队和高质量的软件至关重要。
用户故事
用户故事是软件系统期望的行为块。它们在敏捷软件方法中被广泛使用,用于将大量的功能划分为更小的部分以进行规划。你也会听到同样的概念被称为a功能,但是术语“故事”或“用户故事”最近在敏捷界流行起来。
对话的故事
下面是关于敏捷方法一种常见的误解。它集中在通过开发活动中创建用户故事的方式和流程。的误解是,该产品所有者(或业务分析师)创建用户故事,然后把他们在开发商面前来实现。这个概念是,这是由产品所有者的开发流程,与产品所有者负责确定什么需要做的事情和开发商怎么样去做。
频率可以降低难度
我最喜欢的soundbites的是:如果疼,就多做。它看似荒谬的表面上,而是产生一些有价值意义的快乐属性,当你深入挖掘
指标的正确使用
管理层喜欢他们的度量标准。他们的想法大致是这样的:“我们需要一个数字来衡量我们做得如何。”数字让人们关注并帮助我们衡量成功。”虽然是出于好意,但数字管理并不直观地导致有问题的行为,并最终损害了更广泛的项目和组织目标。度量本质上不是一件坏事;只是经常不恰当地使用。这篇文章展示了许多由管理传统使用度量标准引起的问题,并提供了解决这些功能障碍的替代方案。
远程办公与异地办公
没有一个简单的二分法来区分远程工作和协同工作,相反,团队有几种分布模式,每一种都有不同的权衡和适合他们的有效技术。虽然不可能确定确凿的证据,但我的感觉是,大多数团队在同一地点工作时效率更高。但是您可以通过使用分布式工作模型来建立一个更高效的团队,因为它给您提供了一个更广阔的人才库。
使用具有离岸开发的敏捷软件过程
对于过去四年ThoughtWorks的工作已经在印度班加罗尔的实验室,以支持在北美和欧洲我们的软件开发项目。离岸发展的传统方法是基于计划驱动的方法,但是我们在敏捷阵营很牢。我在这里讨论我们的经验,在做离岸敏捷开发的经验教训。到目前为止,我们已经发现,我们可以把它的工作,虽然好处仍然值得商榷。(虽然该文章是在2006年最后一次更新,我参观了我们的离岸我们的工作在2011年发现的教训仍然是相关的,因此文章并不需要进一步的显著修订)。
客户亲和
当有人在寻找顶级企业软件开发人员的组成要素时,通常会谈到框架和语言的知识,或者理解复杂算法和数据结构的能力。对我来说,一个程序员,或者一个开发团队最重要的品质之一,就是我称之为客户亲和力的东西。这是开发人员对软件所解决的业务问题以及生活在该业务世界中的人们的兴趣和密切关系。
结果导向的
谁赞助的软件开发的人通常不是发展指标,如速度或部署到生产的频率非常感兴趣。他们更关心商业利益,该软件将提供诸如较低的手动工作,更好的销售转化率,提高客户满意度,即业务成果。注重成果的团队是那些授权和能力,实现业务价值,这样的团队才有人有能力进行所有必要的活动来实现的成果。通过对比,ActivityOriented工作队既没有装备也没有授权这样做。他们只能执行实现一个结果所需的几个活动中的一个。
问题
虽然敏捷的思维可以帮助很多团队更有效地交付软件,敏捷软件世界还很不自由的问题。与任何流行的做法语义扩散已设定,导致“敏捷”是有一点与促使我们写宣言的想法去做的名字被做了很多事情。
敏捷软件在2018年的国家
从表面上看,敏捷软件开发的世界是光明的,因为它是目前的主流。但实际情况是令人不安的,因为许多事情做是人造敏捷,敏捷忽视的价值观和原则。我们应着眼于三个主要的挑战是:战斗敏捷工业园区及其对团队实行过程中,提高技术卓越的重要性,并组织我们周围的产品团队(而不是项目)的习惯。尽管存在这些问题,社会各界的巨大优势是它的学习和适应,解决问题,我们原来的宣言的作者并没有想象的能力。
语义扩散
我有创造的习惯新词的使用描述我在软件开发中看到的东西。这是该领域作者的一个普遍习惯,因为软件开发仍然缺乏很多有用的术语。构建术语的一个问题是,在语义扩散的过程中,术语很容易失去其含义——使用另一个可能添加到我们的术语中的术语。
敏捷实施
根据敏捷联盟目前的董事会,敏捷方法已经“跨越鸿沟”,我认为这意味着它们正变得越来越普遍。虽然这有它的优点,但也带来了问题。随着一种方法或设计方法变得流行起来,我们bet188足球就会看到很多人在使用或传授它,他们关注的是时尚,而不是真正的细节。这可能导致以敏捷的名义所做的事情被报道出来,这与运动创始人的原则背道而驰。
Scrum弛缓性
有我与不少项目最近听说了一个烂摊子。它的工作原理出来是这样的:
- 他们希望使用敏捷流程,并选择Scrum
- 他们采用Scrum实践,甚至是原则
- 过了一阵子,进度慢是因为代码库是一个烂摊子
特点奉献
敏捷方法的一个常见的,也许是主要的实践是为正在构建的软件开发一个特性列表(通常称为故事)。这些特性可以通过索引卡、工作队列、燃尽图、积压或任何你选择的工具来跟踪。