如何给一个完全不懂的非程序员解释复杂的、耗时的、易出错的软件开发的过程?

如何给一个完全不懂的非程序员解释复杂的、耗时的、易出错的软件开发的过程?_第1张图片

简评:相当有趣的一篇文章,教导你如何给非程序员讲清楚最难、最复杂的那些开发问题。

回答这个问题首先你应该解释一下如何泡一壶茶:

  1. 烧水
  • 把茶叶放在锅里
  • 当水烧开后,把它倒入锅里
  • 等待 5 分钟
  • 把茶倒进杯子里

现在开始变得有趣了。你需要开始问他们这些问题:

烧水?

  1. 水来自哪里?
  • 水壶在哪里呢?
  • 你怎么把水弄到水壶里去呢
  • 你怎么知道放了多少水
  • 如果没有水 / 水壶 / 电怎么办?
  • 如果你的填充传感器失败了怎么办?
  • 如果你的沸腾传感器失败了?

把茶叶放在锅里?

  1. 锅在哪里,如果没有一个呢?我们应该在水烧开之前想这个问题么?
  2. 茶在哪里,哪种茶?我们是否应该先考虑这个问题,如果没有考虑清楚前不做行动。
  • 关于填充和传感器的类似问题。

水烧开后倒入锅内

  1. 怎么确定水烧开了?
  • 锅内的感应机制是怎么样的?
  • 在水进入锅内有什么提示?
  • 等等类似的问题

。。。

你能问类似的问题问一个小时,然后对方有点烦了,反问你:是的你说的都对,但是问这些细节都是相当的弱智了,我只是想喝茶而已。这时候你微笑着回答:你说的相当对。

P.s. 结论是很多时候你的客户仅仅想喝一杯茶来解渴,你却教了他茶道。那些细枝末节说了他能懂么?

别浪费时间了。

原文:How do I explain to non-programmers how complex, time-consuming, and error-prone software development is?
“本译文仅供个人研习、欣赏语言之用,谢绝任何转载及用于任何商业用途。本译文所涉法律后果均由本人承担。本人同意平台在接获有关著作权人的通知后,删除文章。”

欢迎关注知乎专栏「极光日报」,每天为 Makers 导读三篇优质英文文章。

你可能感兴趣的:(如何给一个完全不懂的非程序员解释复杂的、耗时的、易出错的软件开发的过程?)