我经常要解释技术方面的东西和技术决策,我非常非技术经理和我在这很可怕。有什么好方法可以使那些对编程没有热情的人去做一些愚蠢的事情呢?
我被问到的示例问题:
- 为什么要使用Django而不是Java(也不接受它便宜一点)
- 要求我改写非技术性的词语,我的句子是“不允许使用某些HTML标签”。我怎么可能把它弄哑?
- 其他对我来说很有意义的东西,但是太基础了,我不知道如何解释
- 为什么这样,为什么那个,为什么一切!
另外,如何告诉经理在Google上查找基本内容,例如“什么是Pylons?”。
我经常要解释技术方面的东西和技术决策,我非常非技术经理和我在这很可怕。有什么好方法可以使那些对编程没有热情的人去做一些愚蠢的事情呢?
我被问到的示例问题:
另外,如何告诉经理在Google上查找基本内容,例如“什么是Pylons?”。
Answers:
我倾向于使用类比。不管主题是什么,想一想他们会理解的完全非技术性的内容,然后以这种方式向他们解释。
我能想到的最好的例子是,如果我需要解释面向对象,我将用一副纸牌来说明。或者,当我试图向我的曾任姨妈(从未使用过计算机)解释无线互联网的想法时,我使用无绳电话来解释它。
我还没有遇到任何我无法以这种方式进行深入探讨的话题。
shuffle()
,deal()
,dealOne()
,等
效果不是很好。
一次,很久以前,我还是一名本科生,却被要求在周日的午餐会上解释一些事情,这是我有过的最有教育意义的经历之一。提出这个问题的人显然不是愚蠢的-但没有背景,我认为只是不具备的知识水平。我开始回答,看上去茫然,改变了,仍然是空白,再次改变了,仍然是空白……嗯……所以我以开始构建应用程序的相同方式开始,几乎没有解释建立更实质的东西。
对我而言,本课的关键部分是(并且是)我们假设(不只是程序员,每个人)关于他人对我们所选专业的了解的程度,而实际上,即使是,您也可以合理地假设大多数人知道1 +1 = 2,但是之后变得很有趣。
因此,首先要掌握的最重要的事情是人们不了解也不了解您的工作 -但是他们确实了解他们的工作,并且在您解释事物时,因此您需要从简单开始并保持适当的态度。受众群体的水平。
在特定技术方面-我认为@Josh K涵盖了很多内容-我要强调类推绝对是赢家。
还有一件事-有时不把它们写成“怪胎”可能是可以接受的,人们并不总是想全面解释为什么以及如果您先前已经表现出了解释的意愿和做事的能力因此,以一种可以理解的方式,当您建议应用“复杂的技术原因”,或者最终您可以通过“做怪胎”(或“程序员的东西”)或在“您的周围)。
与非技术受众(一种或多种)进行技术交流是一项技能,您可以开发一种,而您则需要一种。
我试图找到一个与现实世界类似的类比。例如,当我提到堆栈时,有人问那是什么:
“嗯,你有孩子。他们有没有玩过那些上面有字母的小木块?”
“是的。”
“有没有看到他们通过将一个砖块叠放在另一个砖块上来建造一座大塔?”
“是的。”
“好吧,当您拥有这样的塔楼时,只有安全地触摸塔楼的顶部,对吗?您可以在上面放另一个砖块,也可以在上面放下砖块,但是如果您在下面移动任何东西,最上面的那块,整个东西都会掉下来,对吧?
笑。“是的!他们喜欢砸塔并使他们全部倒下!”
“嗯,堆栈基本上就像对数据一样。您可以以仅在顶部添加内容或在顶部删除元素的方式来建立数据结构。这对于跟踪您正在进行的事情很有用。通过执行操作,但是您需要先执行其他操作,然后再完成操作,然后再执行其他操作,依此类推。” (因此引入了调用堆栈的概念。)“除了在这种情况下,您不想将塔倒塌。”
“哦,我现在明白了。酷!”
不要难过 上周,我不得不解释写副本对一个完整而完全的机智意味着什么。令人讨厌的是,那个机智的人是我们的供应商之一。
如果亲自来,请找到白板或至少一些纸,以便您可以成为人为的抽象层。
如果与某人远程合作,则可以使用许多素描/白板工具。
在没有某种视觉辅助的情况下,试图通过进一步抽象来简化抽象的东西就是疯狂。它将导致诸如滥用毒品和酗酒,剥夺您的家人和同龄人的权利以及更糟糕的独角兽残酷之类的事情。
+1给任何谈论类比的人,+1给任何谈论白板或纸和铅笔作为视觉辅助的人。
我学到的另一个技巧是,如果我写了5页关于为什么是东西的书,我发现有些人实际上会阅读它-我可以说,因为一个月后他们会说些什么,而我从书中知道我写的文件。
奇怪的是,我确定我之前曾尝试口头解释完全相同的事情(即使有视觉辅助和类比),但他们还不理解。我发现这在政治或情绪激动的情况下或频繁的中断会使事情偏离正常时特别有用。
但是,请务必确实解释问题-并从商业利益的角度解释原因。一旦我向首席执行官解释了技术债务的概念-现在,我们可以将其用作对话的速记。“为什么要做这三天的事情?该网页对我来说看起来不错!” “它将消除技术债务,在下次我们必须修复它时,情况将会更快。” 然后,对话可以变得快多少。