最初开发软件时,开发过程不适合任何形式的治理。然后是瀑布,它引入了一种思想,即可以在创建或构建应用程序时确定软件开发。
与现在相比,过去测试和部署软件所花费的时间要长得多,因为在开发过程中没有平衡,也没有进行任何检查。结果,我们收到了质量低劣的软件,该软件带有错误和错误,并且比规定的期限要晚得多。主要重点是长期而持久的项目计划。
瀑布设计已与三重约束模型关联,也称为项目管理三角形。三角形的每一边代表项目管理约束之一:规模,时间和成本。正如安吉洛·贝雷塔(Angelo Beretta)所写的那样,三重约束模型指出:“成本是时间和数量的函数,这三个因素以确定且可预测的方式关联...如果要缩短交货时间(时间),我们必须增加成本。该模型还暗示,如果我们想增加数量,就必须增加成本或交货时间。”
从瀑布到敏捷
瀑布来自生产和机械工程,如果没有线性过程,这是很难想象的。在建造屋顶之前,先建造墙壁。软件开发问题也被视为可以通过计划解决的问题。
最后,与软件开发的直观方法相反,瀑布被认为是有害的方法。通常,直到项目周期的最后才确定项目的价值。在许多情况下,项目都失败了。此外,直到项目结束,客户才看到任何可用的软件。
敏捷意味着一种与众不同的方法,该方法不同于计划整个项目,而是链接到估计的日期和报告。敏捷方法假设并考虑了不确定性。它鼓励您对更改做出反应,而不是忽略更改。改变被视为满足客户需求的一种方式。
敏捷价值观
敏捷受《敏捷宣言》的约束。这是他的12条原则:
- 客户满意度是重中之重。
- 即使在开发的后期,也鼓励更改需求。
- 工作产品应尽可能多地发布。
- 开发人员和业务代表必须共同努力。
- 积极进取的专业人员应参与该项目。
- 实时交流是交换信息的最实际,最有效的方法。
- 工作成果是进度的主要指标。
- 敏捷过程有助于可持续发展。
- 重要的是要注意技术卓越和良好的设计。
- 简洁至关重要。
- 最好的架构解决方案,需求和设计思想来自自组织团队。
- 定期思考改善性能和调整工作方式的方法。
敏捷的 4个主要思想:
- 人员和互动比流程和工具更重要,
- 有效的产品比全面的文档更重要,
- 与客户的合作比达成合同条款更重要,
- 愿意改变比遵循原计划更为重要。
这种方法与硬瀑布非常不同。在Agile中,客户是开发团队的成员。在瀑布中,他只在开始时定义业务需求时才参与,而在最后才考虑最终产品时才参与。在敏捷中,客户帮助团队编写产品验收标准,并在整个过程中始终参与其中。另外,敏捷要求组织的所有成员做出改变并不断改进。开发团队与其他团队合作,包括项目经理和测试人员。谁做什么,何时做什么取决于所分配的角色,并与整个团队讨论。
敏捷软件开发
敏捷软件开发需要自适应计划,渐进设计和最终产品交付。许多软件开发方法,结构和实践被归类为敏捷,包括:
- Scrum
- Kanban ( )
- XP ( )
- Lean
- DevOps
- FDD ( )
- TDD ( )
- Crystal
- DSDM ( )
- ASD ( )
它们都可以单独使用,也可以与其他方法结合使用以进行软件开发和部署。最常见的是Scrum,看板(或称为Scrumban的组合)和DevOps。
Scrum是一个框架,在该框架中,团队可以独立且跨职能地工作,以提高成品交付的速度并为客户的业务增加价值。该团队通常由Scrum Master,产品经理和开发人员组成。 Scrum的主要重点是迭代速度更快,改进较少。
看板是一个敏捷框架,有时也称为工作流管理系统。它可以帮助团队可视化他们的工作并提高效率(同时保持敏捷性)。看板通常是数字或物理白板。团队的任务根据阶段的不同而不同:任务尚未开始,正在进行,正在测试,已经完成。看板允许每个团队成员查看任务的状态。
DevOps值
DevOps是一种文化,一种思维方式,一种开发软件或基础架构的方式以及一种构建和部署软件及应用程序的方式。运营和发展不是分开的;它们可以同时工作而不会互相干扰
。DevOps基于另外两个方面:精益和敏捷。DevOps不是公司的名称或角色。这实际上是组织或团队在持续交付产品,部署和集成方面做出的承诺。根据The Phoenix and The Unicorn Project的作者Jin Kim的说法,存在三种定义DevOps原理的“路径”:
- 流原理,
- 反馈原则,
- 无尽学习的原则。
DevOps软件开发
DevOps是一种敏捷实践。它以真实的形式代表了一种共同的文化和对软件开发以及信息技术或基础架构实施的思考。
当您考虑自动化,云,微服务时,您会想到DevOps。
妮可·福斯格伦(Nicole Forsgren),赫兹(Jez Humble)和金·金(Jim Kim)写了《快点!如何建立和扩展高性能组织。” 在一次采访中,他们解释了什么是DevOps:
- 有效的软件交付至关重要。它对盈利能力,市场份额,质量,客户满意度,组织目标和使命有重大影响。
- 公司以高效率实现高发展速度,稳定性,质量。他们不必为此付出任何代价。
- 您可以通过实施精益,敏捷的DevOps原理和实践来提高性能。
- 这些做法和机会的实施也会影响您的组织文化。反过来,它既影响软件的有效性,也影响组织的生产力。
- 找出如何提高效率需要大量工作。
DevOps和敏捷
尽管存在相似之处,但DevOps和Agile并非同一回事。有人认为DevOps比敏捷更好。深入了解它很重要,以避免混淆。
相似之处
- 两者都是软件开发方法论,您不能与之抗争。
- 敏捷已经存在了20多年,DevOps也相对较新。
- 两种方法都相信快速的软件开发。他们的原则基于如何在不损害客户或运营的前提下快速开发软件。
差异性
- , .
- , DevOps, Agile. , Agile , . DevOps, , , . .
- Agile , . DevOps , DevOps . , .
- DevOps , Agile . Agile MVP ( ) .
- Agile — , .
Agile | DevOps |
---|---|
, | |
敏捷和DevOps是不同的事物,尽管它们的相似之处使许多人认为它们是一回事。这种误解对敏捷和DevOps造成了损害。
我曾在Agile工作过,根据我的经验,可以说团队和组织了解什么是DevOps和Agile非常重要。您还需要了解他们如何帮助团队更快,更高效地工作,确保产品质量并提高客户满意度。
敏捷和DevOps绝不是彼此竞争的对手(至少没有理由)。他们是敏捷领域的盟友,而不是敌人。敏捷和DevOps可以以互斥和包容的方式工作,这使它们可以存在于同一空间中。
翻译:戴安娜(Diana Sheremieva)
通过参加SkillFactory的付费在线课程,了解如何从头开始或在技能和薪资水平上获得高水平职业的详细信息:
- DevOps课程(12个月)
更多课程
- Machine Learning (12 )
- Data Science (12 )
- (9 )
- «Python -» (9 )