向外行介绍程序员工作的复杂程度

Posted 江南-一苇渡江

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了向外行介绍程序员工作的复杂程度相关的知识,希望对你有一定的参考价值。

技术分享

你的老板
技术分享
如果你的老板是技术出身,那你很庆幸,他能理解你实现一个小小功能,修改一个小小功能所付出的辛苦劳动。

如果你的老板不懂技术,也许你就要无穷无尽的加班了。给你的忠告就是:做正确的事儿,等着被开除。这是一位谷歌工程师说的话。

你的产品经理
如果你的产品经理懂技术,那么你既是幸运的也是不幸的。
幸运的是,他可以理解程序员工作的复杂度。但是“不幸”的是,你再也不能为了偷懒找借口。
当产品经理提出一个方案时,你再也不敢坚定地说“技术不可行”。因为你害怕产品经理自己写好了代码给你,那是多么尴尬的境地。
技术分享

下面是一个神解释:
出自:http://blog.jobbole.com/98548/

向外行介绍程序员工作的复杂程度
「不就加个按钮么?怎么要做三四天?」类似的外行问话,经常在网上能看到。有程序员在 Quora 提问,该如何向外行解释自己工作的复杂度。

下面是 Channing Walton 的用泡茶的例子来解释,非常形象。
请他们描述泡出一杯茶需要哪些步骤,他们会这么说:

烧水
把茶叶放到茶壶里
水烧开后倒入茶壶
等待5分钟
把茶倒进杯子
加牛奶

现在,有趣的开始了。你要开始问这样的问题:

烧水?

水哪来的?
热水壶在哪里?
你怎么把水倒进热水壶?
你怎么知道热水壶壶里要倒多少水?
如果没有水/热水壶/电怎么办呢?
假如加水传感器失效怎么办?
假如煮水传感器失效怎么办?
茶叶放到茶壶里?

茶壶在哪里,如果没有茶壶怎么办?烧水之前我们应该考虑到这些问题吗?
茶叶在哪里,要用哪一种茶叶?我们是否应该先问清楚,或许如果没有对应的茶叶,我们甚至都不应该开始泡茶?
关于加水和传感器也可以有类似的问题要问
倒开水?

你确定水已经开了么?你怎么能确保“倒水”的机器从热水壶那收到“烧水完成”的信号呢?
你如何确保倒水的机器知道热水壶在哪里?
如果热水壶在倒水的过程翻了怎么办呢?
等等
诸如此类——这样的问题你可以问几个小时。他们会厌烦说,“问到这么细节真是太蠢了”,你但可一笑“的确很蠢”。

ps. 最后,告诉他们,客户其实真正想要的是浓缩咖啡而不是日本茶道——当然,你肯定知道了,这不是显而易见的需求吗?
技术分享
































以上是关于向外行介绍程序员工作的复杂程度的主要内容,如果未能解决你的问题,请参考以下文章

CSDN首篇!如何向外行介绍什么是软件测试?

如何向外行解释你为什么想打产品经理?

如何向外行解释操作系统内核?

如何向外行解释产品经理频繁更改需求为什么会令程序员烦恼?

如何向外行解释产品经理频繁更改需求为什么会令程序员烦恼?

在 NodeJS 中向外行用户隐藏 Web 服务