几个有用的技术名词:牦牛剃须、技术债和自行车棚

我喜欢好的术语。我们先对术语做定义:“特殊的措辞和短语用来同事间的高效沟通”。 (澄清一下,当术语用来作为排他的武器时,这不是一个好的术语。那是糟糕的行为,并且很愚蠢。今天让我们简单地用“别那样做”来把它推到一边。)

我的一个爱好就是学习其他领域的新词汇。除了可以探索特定知识外,一个群体语言上的快捷方式可以明显体现其价值。

去年我很高兴也很自豪能指导一些新手软件开发者。跟白板一般的新手们聊天感觉很好,因为这迫使我从头构建对于在软件开发的沟通过程中有用的术语和方言。

为了突破不加过滤重新解释每一个词的障碍,我整理了一个相对较短的技术用语。

以下是第一批!

牦牛剃须

定义: 为了完成一个目标而执行一系列嵌套的任务的进程,每一个在当前场景都看起来都是必须的但是跟原定的目标关联却越来越少。

举例: 日复一日的工作中一些“牦牛剃须”经常发生:

经理:“我想你正在做登录功能!为啥却为了一个我们甚至不用的库在摆弄数据库的配置?”

开发者:“好吧,我是在做登录功能,所以我开始评估依赖的库。这个库很好,但只支持 Postgres。所以我在尝试配置 Postgres 来看下是否值得用这个库,但是切换到了坏的索引上。所以我来看下 Postgres 的索引是如何工作的..…这样……用户就可以登录到我们的系统了?”

有时“牦牛剃须”看起来是轻微的拖延:

同事:“我觉得你再写一个关于技术术语的文章,为啥你却在读 Unicode 手册?”

作者:“我开始写这篇文章了,但是我意识到我将使用很多的引用并且我想让这些引用句排版正确,所以我开始学习引入的符号的合适的名字和它们是如何展现在页面上的。这个系统是由更大的 Unicode 标准派生的,所以我想了解下……”

为什么这是一个有用的术语: 在软件领域工作经常会遇到这种该死的情况!寻找牦牛剃须非常重要,因为经常有并不需要的“依赖的子任务”跳进工作环节。

留意偏离手头上原本工作的这种自然趋势,是对高效软件开发者很有用的技巧。

更多: The Java Glossary’s 这篇文章详细给出了定义和词源,Scott Hanselman’s post 这篇根据这个术语囊括了很多伴随现象。

技术债

定义: 一个项目里过去发生的技术上的捷径和权衡会累积为消极结果,并成为现在和未来在此项目上开发的成本拖累。

举例: 技术债可以是不被察觉的:

捷径:我们需要对这个库迅速调整,所以我们直接把代码拷过来做内部修改。

债务:到我们向上游发起合并请求之前,我们都不能升级这个库获得我们想要的 bug 修复和新加功能。

它也可以是明显的:

我们 VP 想要这个功能尽快发布,所以我们没有时间围绕它做测试了。

债务:我们想对这个功能做更改,我们就没有测试来告诉我们是否破坏了一些功能。

为什么这是一个有用的术语: 金融上的比喻很擅长传播“通过放弃明天的东西来获得今天的东西”这样类似的自然抉择。这个比喻在很多场景中都成立。技术债通过团队增长失去控制和项目沉没来偿还。 值得注意的是,引入技术债务并非总是错误的决定。有时候权衡是明确知晓和值得的。这完全只关乎意识–最坏的情况是你对其一无所知直到最后付出惨痛代价。所以团队应该尽全力及早标识它,并计划必要的工作来偿还掉它。

更多: 维基百科提供了很好的起点。

搭自行车棚

定义: 花不合比例的时间和精力在大的忧虑中的没有价值或不重要的细节上。 这个术语来自一个说明性的轶事,一个委员会讨论建造一个核工厂。在会议上他们花了主要的时间在讨论自行车棚背面的颜色,因为这是计划的一部分而且每个人都能理解。

举例: 这个短语通常用来表贬义:

你听说过副总们花了大约十分钟来讨论我们的 APP 是应该使用响应式设计还是自适应设计?很明显他们都是为了向团队证明他们理解这些术语。完全是搭自行车棚! 它最好被用在有建设性的方式上:

好了同学们,我认为我们现在有点搭自行车棚了。我们不同意右边的字体除非我们把样例放在一起。现在要做的就是等待。

为什么这是一个有用的术语: 准确来讲它在团队内部很少出现。它通常发生在每个人都想参与到决策制定之中,这意味着通常是更多的人理解所做的决定并且在讨论时有自己的倾向性。 开会是非常困难的一件事,所以我们有的每个能帮到的工具都是非常有价值的。这就是其中之一。

更多: 从这个概念正式的名字–帕金森定律开始吧。

提示

本篇为译文,原文地址:http://phinze.github.io//2014/05/24/useful-tech-terms-part-1.html