烤胡萝卜

过程理论

标签:

当我长大的时候,我讨厌胡萝卜,讨厌这些东西的气味和质地。但当我离开家开始自己做饭后,我开始喜欢它们了。胡萝卜没有什么变化,我的味蕾也没有彻底的改观,不同的是烹饪。我母亲和她这一代的许多英国人一样,不是一个很棒的厨师——尤其是蔬菜。她的方法是煮胡萝卜二十分钟或更长时间。我知道,如果你正确地烹饪,胡萝卜是完全不同的体验。.

这不是一个关于烹饪的网站,而是关于软件开发的网站。但我发现,通常一种技术或工具就像可怜的胡萝卜——当真正的问题是技术做得不正确时,它被指责为很糟糕。.

让我们举几个例子。我的几个朋友开始意识到存储过程之所以会是灾难,是因为它们没有被保存在版本控制中(相反,它们的名称像GetCust01、GetCust02、GetCust02B等)。这不是存储过程中的问题,这是一个问题,人们使用与他们的不良做法。类似地,对TDD导致进一步询问的脆弱性bet188fast的批评导致发现所讨论的团队没有为TDD的188fast捐赠,而188fast是TDD中的一个关键步骤。.

这两种都是煮胡萝卜--有用的工具被滥用了。我已经看到团队从存储过程和TDD中获得价值。如果我们不考虑它们的使用而丢弃它们,我们就从工具箱中丢失有用的工具。.

不是每一种技术的失败都是煮熟的胡萝卜。我被可靠地告知,没有办法烹饪松鼠,所以松鼠对任何不绝望的人都很有胃口(考虑到今年春天他们对我们的花园所做的一切,这真是遗憾)。如果我遇到一个在共享文件夹中处理代码的团队,没有任何版本控制,就没有办法烹饪出同样令人震惊的技术。.

因此,当我们听到技术失败时,我们需要问更多的问题。.

一个有趣的方面是某些技术是否脆弱;一。E是否难以正确应用,因此更容易出现错误的应用程序?如果很难正确使用某个技术,那么这是对该技术的合理限制,当可以使用该技术时减少上下文。一些精致的食物必须留给主厨。这并没有使他们成为一个糟糕的技术,但它确实降低了他们对更熟练的团队的适用性。我认为这是组件后期集成的根本问题。虽然一些团队可以开发出符合细心规范的组件,这些组件可以在一天中晚些时候集成在一起,但实际上很少有团队能够实现这一点,而后期的集成最终会像Fugu一样。.

虽然我们需要警惕煮胡萝卜,我们也需要记住,我们也得到了我所观察到的情况。没有方法论曾经失败过.任何失败(假设你能知道)失败的原因你可以从方法论中找到一些变化,这使得它的捍卫者说它没有被跟踪,因此没有失败。这里有一种真正的张力,如果不深入理解技术背后的深层原理,这种张力就不可能解决。真正的意义在于,这些技巧并不是严格描述的,就像意大利面条Carbonara没有精确的食谱可以不假思索地遵循一样。最后,真正重要的是这道菜,烹饪技巧可以激励和指导一位好厨师,但不能保证没有某种程度的技能的人成功。.

和任何职业一样,如果我们从别人的经验中学习,我们就能更快地发展。人们使用技术和工具的报告很重要,这样我们就可以判断在自己的工作中尝试什么。然而,一个简单的标签通常是不够的。我们无法衡量遵守技术的正确使用,因为我们无法衡量他们的成功。重要的是,每当你听说一项技术失败时,一定要深挖,看看胡萝卜是否已经放得太久了。否则我们就有可能错过一些值得做的事情。.

我最初在标题下面写了这个话题。技术错误二分法但现在觉得煮胡萝卜的比喻更令人难忘。.

进一步阅读

我喜欢Ron Jeffries寓言也有类似的现象。“我们试过棒球,但没有效果。“..

致谢

亨利克·苏扎、珍蒂娜·曼克洛、卡尔·布朗、基夫·莫里斯、凯尔·霍奇森、马特奥·瓦卡里、帕特里克·夸、丽贝卡·帕森斯、里卡多·卡瓦尔康蒂、罗尼·格林伍德、斯里兰姆·纳拉扬和史蒂文·洛维在内部邮件列表中讨论了这篇文章的草稿。.
分享:
如果你觉得这篇文章有用,请分享。感谢反馈和鼓励。

在标签上找到相似的文章

过程理论