程序员容易忽视的十大软件开发法则
作者:admin
阅读量:34
2021-04-19 09:35:23

与其他领域一样,软件开发领域也有一些非常经典的规律。这些法则包括一些伟大的软件开发之神的法则或名言。


也称为“按组织结构交付软件”:

任何组织在设计系统时,系统的结构与组织的沟通结构是一致的。

你可能认为这一规律在某些方面是可以避免的,比如站会、进度更新、跨职能团队决策矩阵等,但最终不可避免地会发生冲突和分歧,从而导致冲突和分歧的过程和结果。

这个法则来自于人和月亮的神话

“向已推迟的项目添加工作人员只会使项目推迟更长时间。”。

当你意识到项目没有取得预期的进展,并试图从其他地方获得更多的资源时,你不仅会拖延项目,而且更有可能交付一个更脆弱、更复杂的产品。

“每个程序都将扩展到需要加入web服务器的位置,不扩展的程序将被扩展的程序替换。”。

对于web服务,它“膨胀到需要用户帐户登录并从所有用户收集数据的程度”。对于物理服务,它是“膨胀到你需要添加一个不安全的WiFi接入点,设置一个默认密码,你不能修改,和一个web服务器。”。

完成一项工作要花费所有的时间。

如果你不为一个项目的里程碑阶段设定一个截止日期,这个项目将永远不会完成。这就是为什么为MVP设定一个固定的截止日期很重要。

当然,这条定律也适用于数据、计算能力、内存等

该程序最终将耗尽所有可用的存储空间、CPU时间和内存。

帕累托原理很容易被曲解,尤其是被管理者曲解,从而导致帕累托谬误

“当你完成了80%的工作,你认为剩下的真的只有20%。”。

但你可能会低估剩下的20%的工作,因为软件开发可能会占用你80%的时间。

“在等级制度中,每个员工都倾向于被提升到他们无法胜任的职位。因此,随着时间的推移,每个职位都可能被不称职的员工占据。

你写的任何超过六个月没有看到的代码都可能被其他人更改了。

这里提到的六个月已经是一个非常乐观的数字。

然而,需要注意的是“yomomma推论”:只有作者可以批评代码,任何其他负面反馈都将被拒绝。

格林斯潘第十定律

认证:

任何定制的身份验证系统都包含临时的、非正式的、隐藏的缺陷、运行缓慢的Kerberos不完整的实现。

这可以概括为一个通用的NIH规则:“任何定制开发的系统都包含一个临时的、非正式的、隐藏的缺陷,以及运行缓慢的、不完整的行业标准实现(因为您拒绝直接使用标准实现)”。

“新软件开发成本只占管理预算总成本的25%左右。”。

运维领域的座右铭:

如果软件维护成本占总预算的75%,那么这75%应该是运维支持。

“如果您想快速提交10行代码更改,可以将其隐藏在1500行pr中。”。

链接到原文: