神解释:向外行介绍程序员工作的复杂程度
「不就加个按钮么?怎么要做三四天?」类似的外行问话,经常在网上能看到。有程序员在 Quora 提问,该如何向外行解释自己工作的复杂度。
下面是 Channing Walton 的用泡茶的例子来解释,非常形象。
请他们描述泡出一杯茶需要哪些步骤,他们会这么说:
- 烧水
- 把茶叶放到茶壶里
- 水烧开后倒入茶壶
- 等待5分钟
- 把茶倒进杯子
- 加牛奶
- 喝
现在,有趣的开始了。你要开始问这样的问题:
烧水?
- 水哪来的?
- 热水壶在哪里?
- 你怎么把水倒进热水壶?
- 你怎么知道热水壶壶里要倒多少水?
- 如果没有水/热水壶/电怎么办呢?
- 假如加水传感器失效怎么办?
- 假如煮水传感器失效怎么办?
茶叶放到茶壶里?
- 茶壶在哪里,如果没有茶壶怎么办?烧水之前我们应该考虑到这些问题吗?
- 茶叶在哪里,要用哪一种茶叶?我们是否应该先问清楚,或许如果没有对应的茶叶,我们甚至都不应该开始泡茶?
- 关于加水和传感器也可以有类似的问题要问
倒开水?
- 你确定水已经开了么?你怎么能确保“倒水”的机器从热水壶那收到“烧水完成”的信号呢?
- 你如何确保倒水的机器知道热水壶在哪里?
- 如果热水壶在倒水的过程翻了怎么办呢?
- 等等
诸如此类——这样的问题你可以问几个小时。他们会厌烦说,“问到这么细节真是太蠢了”,你但可一笑“的确很蠢”。
ps. 最后,告诉他们,客户其实真正想要的是浓缩咖啡而不是日本茶道——当然,你肯定知道了,这不是显而易见的需求吗?
小编最后想到了一张趣图。
(左:外行眼中的项目;右:开发眼中的项目)
本文文字及图片出自 伯乐在线
你也许感兴趣的:
- Let’s Encrypt:准备开始签发IP地址证书
- 谷歌浏览器将提供内置翻译和语言检测 API
- OpenAI 将用 Rust 重建 Codex CLI,放弃之前的 TypeScript 版本
- 用 AI 生成的安卓 App:优点、缺点与令人震惊之处
- 为什么所有浏览器的用户代理(User-Agent)都以“Mozilla/”开头?
- 新发现的 Linux udisks 漏洞使攻击者能够在主要 Linux 发行版上获得 root 权限
- 没错,没人关心 Linux 上的使用友好性
- Git Notes:Git 最酷但最不受欢迎的功能
- Kubernetes 2.0 将会是什么样子
- bzip2 crate 从 C 切换到 100% rust
共有 1 条讨论