职业经验 Frequency Reduces Difficulty

知無涯 · 2022年03月05日 · 最后由 在路上 回复于 2024年03月04日 · 2384 次阅读

这篇文章来自 Martin Fowler,个人觉得对于互联网行业从事技术的同学很有借鉴意义,原文有英文版。文章标题嘛,英文版的更有味道,索性就用 Frequency Reduces Difficulty。

Enjoy

我最喜欢的一句话是:如果你做一件事觉得很痛苦,那你就频繁做这件事。这句话看似毫无意义,但当你深入挖掘时,会发现一些有价值的道理。

来举一个集成的例子。大多数程序员都感同身受,将自己的代码与其他人的代码集成到一起是多么令人痛苦的经历。因此,人的自然反应是尽可能地推迟这样做。

然而,如果我们能够绘制痛苦与集成之间的时间关系,会看到这样的图表。

如果你符合这样的 Action-Pain 指数关系,那么如果你频繁地集成,你就可以大大减少痛苦,而这就是持续集成所带来的 “快乐”—— 通过每天频繁的集成,集成的痛苦几乎消失了。

这种更频繁地做痛苦事情的想法在敏捷思维中有很多适用场景。例如 测试、重构、数据库迁移、与客户的对话、计划、发布——各种各样的工作都可以更频繁地进行。

它为什么会有这种效果呢?

第一,随着工作量的增加,你所承担的工作任务都变得更加困难,但当工作任务被分解成一个个小块时,它们则很容易完成。数据库迁移就是一个很好的例子。完成一个涉及多个表的大型数据库迁移工作是很艰难的,而且还容易出错。但是,如果你将工作拆分,一次只做一个小的改动,则这个改动的缺陷率就很低。因此,当你把一个大的迁移任务分解成一连串的小迁移任务时,这一切都变得更容易处理,这就是数据库重构的本质。

第二,敏捷思维的思想在于建立反馈回路,以促使我们能更快地学习。反馈对于极限编程来说是非常有价值的。在一个复杂的工作过程中,比如软件开发,你必须经常 check 你所处的位置,并进行路线修正。要做到这一点,你必须寻找每一个机会来增加反馈回路,并增加你获得反馈的频率,以便你能更快地做出调整。

第三,实践出真知。当我们更频繁地去做任何工作时,我们就会得到提升和经验。人们常说,手术成功的关键是找到一个经常做手术的外科医生。练习可以帮助你消除过程中的障碍,并使你更熟悉出错的地方。如果你反思你正在做的事情,你也会想出办法来改进你的做法。对于自动化,一旦你做了几次,你就会更容易知道如何将一件事自动化,而且你也会更有动力将其自动化。

原文:https://martinfowler.com/bliki/FrequencyReducesDifficulty.html

共收到 3 条回复 时间 点赞
陈恒捷 回复

非常认同

很经典的一篇文章,也是持续集成这个理念的根基所在。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册