Worst Technical Specifications Have No Glossaries

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

我每周都会阅读我们现在和潜在客户的一些技术规范,有一件事情让我受不了,我必须写下来:我阅读的文件中有99%都没有词汇表,因此非常难以阅读和理解。即使有词汇表,对术语的定义也非常模糊和含糊不清。为什么会发生这种情况?难道我们不了解任何软件项目都需要一个共同的词汇表的重要性吗?我不确定原因是什么,但这是一个软件架构师在开始一个项目时应该做的事情——创建一个词汇表。

我正在尝试写一些关于这个主题的独特内容,但是我可以说的一切都太明显了,我怀疑是否有人会有兴趣阅读。不管怎样,我还是会尝试。

词汇表(又称词汇表)是项目中使用的术语列表,通常包含在技术规范文档的开头。理想情况下,文档中使用的每个技术术语都应该在词汇表中简要解释。词汇表的存在帮助与文档一起工作的每个人快速理解彼此,并避免误解。此外,一份详细准确的词汇表可以节省读者大量时间。

那么为什么不编写词汇表呢?我看到几个可能的原因(通常它们是结合在一起的):

我们比这要聪明。有些人认为词汇表是给新手用的。毕竟,为什么我要解释PDU是什么?任何严肃的网络工程师都应该知道它代表“协议数据单元”。如果你不了解,那就去做你的功课,然后再回来和我们一起工作。我们的团队只和受过良好教育的工程师合作。你应该知道PDU、ADC、TxR、IPv6、DPI、FIFO和USSR(开玩笑!)代表什么。否则,你不够有才华,不能和我们在一起。不用说,这种态度只会来自那些不知道自己在做什么的人。好的工程师始终记得,如果接收者不理解一条消息,那是发送者的错。

我们不需要这些形式主义。说真的,如果每个人都能理解我们的术语,我们为什么要花时间编写词汇表呢?我们已经作为一个团队工作了几年,所以我们都知道DPI和FIFO是什么,也知道“记录”和“定时数据”是什么。为什么要费心去编写对我们没有额外商业价值的词汇表呢?我见过许多技术会议,非常成熟和“组织良好”的团队因为对同一术语的不同理解而浪费了数小时的时间进行无意义的讨论。词汇表不是形式主义,它是软件架构师和其他团队成员的关键工具。

我们更喜欢可工作的软件而非全面的文档。这就是敏捷宣言所说的,也是真的。但关键词在于“全面”。我们不需要全面的文档,但我们需要一个词汇表。这是任何项目的关键要素,工作软件根本无法取代它。除非有关于“头部”和“数据信号”的简单明确的陈述,否则没有工作软件能帮助我们理解这些术语。

我们没有时间。我们发展得太快,每天都在脑力激荡,所以概念经常在变化。我们根本没有时间记录我们的想法。我们都能互相理解,那是敏捷的美好之处。不,那不是美好之处。相反,这是缺乏纪律和基本管理技能。没有词汇表是软件架构师的个人失误,没有任何借口可言。

我们所有的术语都是大家都熟知的。说真的,我们需要记录TCP/IP和FIFO是什么吗?这是学校教给我们的。每个人都理解,不是吗?是的,有些术语是众所周知的。但是把它们添加到词汇表中并附上几个词和一个指向维基百科文章的链接有什么问题呢?这只会花费架构师几分钟的时间,但会让项目中的每个人在现在和几年后的生活中更加轻松。

总之,在任何软件项目中,没有词汇表是没有任何借口的。保持这个文档(或章节)的最新状态是软件架构师的个人责任。

希望我上面没有说得太明显。

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-11-17 at 17:13

sixnines availability badge   GitHub stars