AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

程序员容易忽略的 10 大软件开发定律

  • 2021-03-16
  • 本文字数:1164 字

    阅读完需:约 4 分钟

程序员容易忽略的10大软件开发定律

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

康威定律

也就是所谓的“按照组织架构来交付软件”:


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


你或许认为可以通过一些方式来避免这个定律,比如跨功能团队的站会、进度更新和决策矩阵,但最终都不可避免地会发生冲突和分歧,而这些将导致冲突和分歧的过程和结果。

布鲁克定律

这个定律来自《人月神话》:


“在一个已经延期的项目中增加人手只会让项目延期更长”。


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

Zawinski 定律

“每一个程序都会膨胀到需要加入 Web 服务器,不膨胀的程序最终会被膨胀的程序所代替”。


对 Web 服务来说,就是“膨胀到需要用户账号登录并收集所有用户的数据”。对物理服务来说,就是“膨胀到需要加入一个不安全的 WiFi 访问点,设置了你无法修改的默认密码,以及一个 Web 服务器”。

帕金森定律

“一项工作会占用掉所有用来完成它的时间”。


如果你不给一个项目的里程碑阶段设置截止日期,这个项目就永远完成不了。这就是为什么一定要给一个 MVP(最小可行产品)定一个固定的截止日期。


当然,这个定律也可以用在数据、算力、内存等方面:


“程序最终会把所有可用的存储空间、CPU 时间和内存用光”。

帕累托谬论

帕累托原则很容易被曲解,尤其是被管理层曲解,这通常会导致帕累托谬论的出现:


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


但你可能低估了剩下的 20%工作,因为它可能占用你 80%的时间。

史特金定律

“90%的东西都是垃圾”。


是的,包括你的产品在内。

皮特定律

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

伊格尔森定律

“你写的任何超过 6 个月没有看过的代码,有可能已经被别人改过了”。


这里说的 6 个月已经是一个很乐观的数字了。


不过,有一点需要注意,那就是“Yo Momma 推论”:只有作者才可以给代码提出批评,任何其他的负面反馈都将被驳回。

格林斯潘第十定律

用在认证方面:


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


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

冰山谬论

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


运维界的一句格言:


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

LGTM 困境

“如果你想快速提交 10 行代码变更,可以把它隐藏在一个 1500 行的 PR 中”。


原文链接:


https://www.netmeister.org/blog/software-engineering-laws.html

2021-03-16 14:065829
用户头像

发布了 114 篇内容, 共 48.9 次阅读, 收获喜欢 315 次。

关注

评论 3 条评论

发布
用户头像
“90%的东西都是垃圾” 原文是 90% of everything is crud. 这里 CRUD 指代的是不是垃圾。
2021-03-22 22:31
回复
crud
英 [krʌd] 美 [krʌd]
n. 令人厌恶的事物,脏东西,污垢;(难以在上滑雪的)大雪;废话;可鄙的人
abbr. (CRUD)增查改删 (creat, retrieve, update, delete),增删查改(creat, delete, read, update)

网络上还能搜到类似的语句,比如90% of everything is crap, 90% of everything is trash...所以,你觉得这里的crud指的是什么?
展开
2021-03-23 16:33
回复
CRUD软件工程里肯定指代增删查改,而非垃圾。
2021-03-30 10:39
回复
没有更多了
发现更多内容

ERP系统生产模式(ATO、MTS、MTO、ETO、CTO)你了解多少?!

积木链小链

数字化 ERP 智能制造 生产模式

凌晨 GPT - 4.1霸气登场,性能狂飙还降价

GPU算力

openai ChatGPT ChatGPT4 LLM模型 #大语言模型

程序员业务能力进阶:技术与业务的深度融合

代码制造者

低代码 #程序员

「高盛」最新人形机器人研报:主流人形机器人公司梳理和商业化瓶颈(附报告)

机器人头条

科技 大模型 人形机器人 具身智能

AI 技术在英语学习中的应用

北京木奇移动技术有限公司

软件外包公司 AI口语练习 AI英语学习

Easysearch 自动备份:快照生命周期管理

极限实验室

Snapshot easysearch

【HarmonyOS 5】如何开启DevEco Studio热更新调试应用模式

GeorgeGcs

调试 热更新

使用 Node.js、Express 和 React 构建强大的 API

数据追梦人

用 SQL 还是 NoSQL?Apipost 的回答是:两个都要!

数据追梦人

Typescript AI 通义灵码 VSCode插件安装与功能详解

阿里巴巴云原生

Typescript AI 通义灵码 VSCode插件安装与功能详解

阿里云云效

typescript

北京七猫,薪资25~35K,瞧瞧面试强度

王中阳Go

Go 面试

哈姆HAHM『公司全国总运营招募中心』一手资源诚邀团队

web3区块链创业团队DappNetWork

副业赚钱 web3 #区块链 币圈新项目 暴富项目

阿里云 Elasticsearch Serverless 检索增强型8.17版免费邀测!

阿里云大数据AI技术

大数据 elasticsearch 阿里云 检索 serveless

通义灵码助力Redis开发:智能问答与代码生成技巧

阿里云云效

ONES 携手华为云,发布 ONES IPD Essence 集成产品研发精要解决方案

万事ONES

华为云 IPD项目管理 ONES研发管理

LLM实现text2SQL实战总结

数由科技

人工智能 设计原则 LLM text2sql

从训练到推理丨焱融存储蝉联 IDC SDS 文件市场增速第一

焱融科技

文件存储 软件定义存储 AI存储 全闪存 IDC报告

如何使用 Databend Cloud 化简大数据架构?| Data Infra NO.24 回顾

Databend

通义灵码助力Redis开发:智能问答与代码生成技巧

阿里巴巴云原生

如何合理规划Elasticsearch的索引|得物技术

得物技术

索引 Elastic Search 容量设计

CodeBuddy 焕新升级: 软件开发智能体 Craft 重磅发布

CodeBuddy

腾讯云 腾讯 AI编程 CodeBuddy

天润融通AI Agent,干洗行业客服成本直降90%的秘诀

天润融通

【HarmonyOS 5】AttributeModifier和AttributeUpdater详解

GeorgeGcs

update Attribute Modifier

API 接口开发与合理利用:构建高效、安全、可维护的数字桥梁

Noah

天润融通AI Agent重塑零售连锁行业客户服务竞争力

天润融通

前端热更新:无声引擎驱动中国互联网的数字化转型

xuyinyin

天润融通实测案例告诉你,AI进化到哪一步了?

天润融通

人工智能与智能制造:如何利用AI推动工业自动化与生产优化?

天津汇柏科技有限公司

人工智能 智能制造 AI人工智能

域名转移会影响域名解析吗?

国科云

优化 Apache 日志记录的 5 个最佳实践

运维有小邓

日志管理系统 Apache 日志

程序员容易忽略的10大软件开发定律_语言 & 开发_Jan Schaumann_InfoQ精选文章