首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比喻快速失败的“快速”发展?

比喻快速失败的“快速”发展?
EN

Software Engineering用户
提问于 2017-07-14 09:59:32
回答 3查看 441关注 0票数 1

有人告诉我,速度对他们来说是最重要的,所以他们部署任何东西(我假设),修复,重新部署/连续发布等等。我记不起来了,但我的印象是,他认为,如果你不能快速地发送错误代码,那么发车是可以的。

这是一种“快速失败”的方法吗?如果适当的话,用房子或船来比喻它是什么?

EN

回答 3

Software Engineering用户

回答已采纳

发布于 2017-07-14 10:29:10

对许多企业,尤其是初创企业来说,上市时间确实是一个重要因素。当涉及到软件产品时,TTM转化为持续集成和持续部署。这里的想法不是您发布but代码,而是您在非常定期的基础上发布完全工作的软件。虽然频率因团队而异,但对于一些公司和团队来说,每天发运几次并不少见,这与在产品负责人提出要求后六个月到几年后可以交付功能的团队相比,有很大的不同。

在连续部署的情况下,为了防止buggy代码影响产品,团队正在使用广泛的自动化测试。这些团队在编写代码的同时编写测试,而不是花六个月的时间开发一个特性,然后将它交给质量保证部门进行为期八个月的测试修复测试。这些测试在每次提交时都会运行,如果有数千个测试失败,产品就不会部署到生产服务器上,并且会通知开发人员他们破坏了构建。

请注意,TTM也是一种营销(而不是技术)方法,它包括说,现在更重要的是发布一个经常不完整和不完美的产品,看看实际用户将如何使用它,他们想要什么,他们会在哪里遇到困难。基于这一反馈,该产品将适应客户的需求。最近(即过去二十年),这种方法取得了成功,并在初创企业的背景下被发现是有效的,而普通的方法包括在产品开发之前进行市场研究和大量研究。

类推

你要的是房子/船的类比,所以它们就在这里。

连续集成.

想象一下你在造一艘船。你可以花几个月的时间来建造它,然后把它放在水里,然后注意到有一些工程和建筑方面的缺陷。你得先修好它们才能用船。

相反,你可能会不断地测试你的船每天在水中的表现。当你做一个工程或建设错误,你会得到一个反馈,在一天内,你所做的改变船在这或前一天引起了一个问题。

这可能不适用于一艘船,因为如果它们是半建造的(例如,如果它们还没有被绘制),那么这些东西就不会浮出水面。然而,对于软件产品,即使是尚未构建的产品的一个微小特性也可以进行测试,这使得软件产品成为持续集成的理想选择。

市场营销中的

TTM .

想象一下你在建房子。你可以花几个月的时间来建造它,然后把它拿给主人看,只是为了知道他想在花园的另一边建一个游泳池,他还想要两扇窗户,还有一个不同的屋顶。

或者,你可以让业主每周访问一次建筑工地,以便收到非常快的反馈,而此时做一些更改仍然不太昂贵。

在这里,这个比喻也不完美,因为(1)业主不能住在尚未建造的房子里(而用户可以开始使用缺乏一半功能的软件产品),而且(2)一旦建筑开始,结构改变将是极其昂贵的(对于正确建造的软件产品来说往往不是这样)。

票数 4
EN

Software Engineering用户

发布于 2017-07-14 14:37:01

CI/CD确实是一种快速失败的方法。我对此略有异议:

“他认为发运马车代码是可以的”

我怀疑他真正的意思是,我们知道该软件可能存在缺陷,但快速部署它意味着问题的发现、报告和修复将比传统方法快得多。

遗留方法的部分问题在于,软件功能认为他们知道客户想要什么,并在几个月/几年后才被指定,结果发现它根本不是客户想要的。

越早地将一些东西放在客户面前并收集批评,就越早开始修复问题,并停止将开发时间浪费在死胡同上。

敏捷精神的一部分借鉴了wabi-sabi,在那里,人们认为软件是不完美的、非永久性的和不完整的。与所创建的任何东西一样,它不一定必须是类中最好的才能提供价值。

至于类比,这里真正创造的是一个原型。

票数 3
EN

Software Engineering用户

发布于 2017-07-14 15:19:29

它可以理解和完成风格“给用户稍微活着的something,让他为我们测试”。实际上,这种方式是非常危险的,而且实际上是不好的。

这个比喻可以是:货物崇拜。1945年美军基地撤离后,野生部落建立了一个由树枝和树叶组成的模型,并认为它的精神将给他们带来繁荣。主要问题是:他们不知道这是为了什么,真的不想知道。他们有自己的想法,对他们很满意。这是对工作的模拟。

但如果目标是:

  • 为了让他尽快完成一件真正的工作,已经为用户提供了不可见的支持,但对于自动化测试和日志之类的作者工具却很有帮助。
  • 如果这篇文章已经给了用户一些关于未来产品将如何使用的未确认的信息。
  • 修复问题,并以尽可能快的速度增加更多的功能,使产品保持坚实和健全。

那么它是非常好的方式,在真正的敏捷风格.

这个例子的类比是:一个客户已经订购了一台新型号的技术机器。

  1. 他拍到了那台机器的工作原理。
  2. 他得到了司机的扶手椅。
  3. 他把扶手椅和所有的水平和控制周围的脸。
  4. 他只提供带轮子和马达的托儿所和简化的驱动器位置,没有特殊的装置控制--检查它是如何移动的。
  5. 真正的工作场所安装在储藏室上.诸若此类。-到现成的产品。

在每一个阶段,都可以对作品进行严格的检查,客户和制片人可以纠正以前的错误。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/352784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档