向非程序员介绍软件项目

时间:2009-10-15 04:26:25

标签: language-agnostic

很快,我将需要为我的大学的工程学院和一大批工程技术专业的学生介绍我的荣誉项目。虽然所有参加会议的人都具有技术头脑,但并非所有人都是程序员,而且大多数人都来自其他工程学科。

之前我做过演讲,我有信心和一群人说话,但我现在意识到我之前所做的所有演讲都是针对CS / SE的主要专业人员和教学人员。我想知道我的演讲风格是否假定我正在向其他软件爱好者展示,所以他们会知道我在说什么,我可以进行一个涉及观众的更具互动性的演示。

我的荣誉项目并不是非常复杂或理论上的,我有一个原型C#Winforms应用程序,但它的设计是可扩展的,并且将来可以使用不同的数据源(ODBC或WS)进行操作,并对它如何进行一些研究通过规则引擎和DSL进行扩展,并转变为可销售的产品。正在测试我的原型的组织通过自动化关键业务功能每年节省数万美元。

我曾计划通过一些实时编码和UML风格的图表来展示它的可扩展性。我非常喜欢做演示和现场编码,但我不知道非程序员是否可以访问这种演示文稿,我担心如果我太过于讨厌和技术性,我可能会疏远观众和评委。

您发现以非程序员感兴趣的方式展示软件项目的有效技术

14 个答案:

答案 0 :(得分:26)

当我在攻读博士学位时,教师为研讨会提供了这条规则 - 事实证明它非常有用:

  1. 告诉他们你要告诉他们的是什么。 (例如,简要的介绍性问题 描述和结果摘要)
  2. 告诉他们。 (例如,技术细节包括大部分时间)
  3. 告诉他们你告诉他们的是什么。 (例如,摘要和结论)
  4. 请提问。
  5. 在你的位置上,我会花大约10-20%的时间以非技术性的方式做#1。因此,您可能会描述代码自动化的业务功能,为什么这很重要,应用解决方案之前和之后的情况,以及如何节省资金,等等。

    然后,我将开始针对CS / SE人群的高度技术性讨论。即使其他人不理解并且他们的眼睛茫然,你的介绍至少会让他们感受到它的全部意义,并且他们可能会在这里或那里认识到一点。

    对于第三部分,我简要回顾一下这个问题,并描述你是如何用非技术语言解决它,然后进行实时编码扩展性的真实演示。即使非CS / SE人员不理解这个演示,他们也会看到眼睛盯着糖果,你的专业同事和教师都点头微笑,所以他们会觉得很酷。

    我曾经参加过一次由于将混沌理论应用于化学系统而获得诺贝尔奖的人的研讨会。他采用了这种方法,所以即使像我的有机化学家和我一样的所有非理论家都完全超出了我们的深度,理论家们都兴奋的事实让我们觉得这是一次很棒的研讨会,即使我们没有对他说的话有所了解。

答案 1 :(得分:11)

为了吸引两位受众,我有时会提供技术解释,然后用“请用英文解释”说明。 CSI和其他有科学的戏剧一直这样做,效果很好。

换句话说,[在这里插入普通英语解释]。

答案 2 :(得分:9)

你已经在努力了解你的观众,我认为这很棒,你只需要更进一步,并问自己,如果我是观众中的x人,我会从这个演示文稿中得到什么?

如果你所介绍的小组永远不可能使用你的具体实现,我会质疑技术/编码演示的有效性和努力程度。描绘你如何处理可扩展性可能更为重要,这样你就可以在同行中获得关于他们未来如何处理它的想法,以及在整个过程中获得的点对所有观众成员都很重要,也许快速演示一点,只是表明,是的,确实它确实有效。

我不了解你,但我个人总是从这些类型的演示中获得更多价值,这些演示基于项目对每个人的吸引力,你如何为每年节省数万美元公司,从理论上讲,为什么其他公司也可能想要使用它,市场和其他因素是什么,你必须克服的巨大技术冲击是什么,即使这是一个简单的项目,你必须考虑过的事情。是时候避免和阻止你进入一个角落。

我认为如果你是一位非常优秀的主持人,并且演讲的目的是广泛而且吸引整个团队,而不是关于混沌理论和化学系统应用的讨论,这些已经说明了目的,你应该吸引观众的最低共同点,让整个观众受到欢迎,欣赏你在整个过程中的每一步所取得的成就,并且为了做到这一点,他们不一定要理解所采取的每一步。

答案 3 :(得分:9)

让我们将此视为重构问题。

而不是在您的演示文稿中添加更多内容,您是否可以采取措施?

例如,我不认为您的演示应用程序可以使用多个数据源是必不可少的,更不用说您在演示期间可以在那里进行编程。 我知道在你的应用程序设计中要小心达到这一点,但仍然大多数人对OUTPUTS而不是应用程序的INPUTS更感兴趣。在所述应用程序的好处中甚至更多。

一些指导要点:

  • 制作演示文稿。如果观众感受到您的节目所解决的痛苦,请提醒他们这种痛苦。如果他们是像你这样的其他研究,那么请他们把自己置于你帮助的组织的脚下。

  • 比较旧的方式与新的做事方式。为什么新方法更有效率?它会导致更多的销售吗?它会减少库存吗?还是存钱?有人会失去他/她的工作,因为你的解决方案使他的任务无关紧要。注意:在进行技术演示时,我观察到对于解决以前执行任务的人员所发生的事情非常重要。幸运的是,大多数时候人们不会失去工作,在大多数情况下,同样的人可以管理更大量的工作 技术

  • 显示结果。您的演示公司观察到的实际结果是什么?

  • 使用有意义的视觉效果。如果你能制作一些动画来更好地解释你的算法。

  • 开头和结尾中说明您的观点。大多数人都会忘记中间发生的事情,所以一定要在开头讲话时说出最重要的事情。

  • 练习,练习。是的,这听起来很荒谬,但是在镜子或录像前至少录制两次你的整个演示。越多越好。 在没有排练的情况下,不要给出你生命中最重要的一个演示。

呼吸并保持积极,你会做得很好:-D

PS:我的建议来自这个网页。它引导了我好几次: 6 Stimuli to reach the old brain

答案 4 :(得分:6)

首先,我建议您与您的教师顾问讨论他们对您的演讲的期望。如果有任何关于如何平衡只有CS人可理解的技术细节与更广泛的概念可以理解的更一般概念的问题,我认为从那些评估你的人那里获得意见真的很有帮助。

我真的很想从演示文稿中看到一个“带回家信息”。你想让那些观众中的每个人在他们离开房间后很久都要记住这一点是什么?一开始就告诉他们带回家的信息。告诉他们你将花费其余的演示文稿解释他们应该关心的原因以及他们为什么要相信你。即使人们在某些技术问题上迷失了方向,如果你至少把这一条信息带回家,那么你已经向很多人提供了一件事。

另一个建议:不要忘记格式。演示幻灯片应该可以在礼堂/演讲厅的任何地方阅读。不要在一张幻灯片上压过太多文字的人。保持子弹短,易于扫描。你想让人们花时间阅读你的幻灯片,还是希望他们听你说的话?不要使用首字母缩略词,但如果必须,请解释它们的含义 - 并将定义放在幻灯片上 - 除非您确定它们是常识。如果人们坐在那里想知道这个缩写词的含义是什么,他们就不会听。

至于你是否应该展示实际代码或进行实时编码,我的直觉是你不应该这样做,除非它对你所做的事情至关重要。如果你的项目实际上是关于某些编码结构(例如,如果你发明了“扩展方法”的概念),那么,进入一些实际代码是有意义的。但听起来你所做的事情的重要性肯定是从那个水平上来的。您可能希望显示所需的代码,例如,连接不同的数据源,但实际上我不会介入代码本身,除非您觉得无法创建否则。如果我在观众中,我可能希望看到的一件事是演示您的代码。告诉我这是什么,并告诉我为什么这很酷。

我希望它顺利进行!

答案 5 :(得分:5)

以下是我的建议:

  1. 明确您的受众群体以及您的信息是什么 - 您是否想要给标记您项目的六名教师留下深刻印象,或者证明您可以招待所有受众。
  2. 尽早建立目录页 - 这样观众就会知道会发生什么。
  3. 将极客的东西放在附录中到主要演示文稿中。这样你就可以深入了解问题,但是你不会忽略你演讲的重点。
  4. 确保您的演示文稿流动并讲述一个故事 - 限制幻灯片编号并且不要混淆它们,例如项目目标,可能的用途,设计挑战,软件选择,你做了什么(限制技术),结果(演示),结果和限制,后续步骤,问题。
  5. 最后有一个结论页面 - 请确保您回头并交叉参考原始内容页面。
  6. 留出15-20%的时间用于提问。这将揭示观众感兴趣的内容,并允许您更深入地了解该主题,即只有在他们要求时才进行实时编码。
  7. 大声排练,即使你觉得这样做很蠢。
  8. 祝你好运。

答案 6 :(得分:5)

我一直处于同样的境地 (在EE教师竞赛中展示软件工程/图像处理/识别项目)。

  • 从问题开始(问题)

  • 然后是背景(技术背景的BIT)

  • 解决方案:

    • 从块图表开始(所有工程师都阅读这些图表)

    • 然后解释技术以及简要说明 - 实施的复杂程度 (不要低估复杂的部分 - 否则你可能会让你的工作看起来对其他领域的工程师来说很简单 - 他们不会理解你的努力)

  • 结果:

    • 显示简短的视觉示例(尽量使它们有趣)
      (简短的代码示例可以在这里)

    • 简短的用户界面演示

    • 显示令人印象深刻的图表

  • 参考书目,谢谢,未来可能的改进/研究

  • 问题(如果论坛很大,请事先告诉他们问题的结束时间)

  • 一般建议:

    • 练习(一遍又一遍)

    • 每张幻灯片留下45-60秒

    • 每张幻灯片不超过5个点

    • 每点1行

    • 添加笑话

    • 除了更快地展示复杂问题外,没有动画

    • 使用清晰字体(Ariel或Calibri用于常规文本,1种不同的字体用于标题)

    • 使用高对比度颜色 (如果必须,在黑色或黑色的白色上亮 - 在黑暗或明亮或明亮时不暗)

答案 7 :(得分:4)

一些提示

  • 使用通用技术语言。只使用听证会认可的条款。
  • 它将您自己展示的内容与受众可识别的示例联系起来。

你也可以阅读这些精彩的文章。

再见。

答案 8 :(得分:2)

混合搭配每个人都知道的话题。它帮助我制作了主题幻灯片,其中包含从“神曲”到“辛普森一家”的图像,我不知道你的演示文稿是多么正式,但它是一种常见的constructivist技术,可以挂钩你的听众已经知道的东西以表明你的观点。

我曾经参加过Larry Wall的演讲,在那里他使用高尔夫与戒指之王混合的例子解释了Perl 6的特征。

答案 9 :(得分:1)

我所做的就是谈论类比,尝试将你要解释的术语转换成现实世界。

顺便说一句,你为什么要谈谈非技术人员的软件技术方面?您必须先将内容定位到您的受众群体。谁是你的主要受众?技术人员或非技术人员,选择一个。

此致

答案 10 :(得分:1)

我倾向于不使用代码(除非你真的必须这样做),并使用某种形式的通用(和简单的)伪代码。

另外,如果您正在与提示卡进行对话,请“呼吸!”在卡的顶部。它帮助了我......

答案 11 :(得分:1)

专注于用户界面(又名它如何让他们的生活更轻松)以及它与同类产品的不同之处(为什么他们应该倾听。)

答案 12 :(得分:1)

我认为Simon Peyton Jones提供了出色的演讲。请参阅this page上的如何进行良好的研究性讨论部分。特别是,查看他关于该部分所涉及主题的谈话的视频。你可以在他关于Haskell,函数式编程等的演讲中找到其他视频,看看他如何实践他所宣扬的内容。

答案 13 :(得分:1)

请收听以下播客:Manager Tools - Presentation basic

它将涵盖您进行有效演示所需的所有基础知识。

现在进行项目演示时,请执行以下操作:

  1. 创建高级架构模型...请参阅此model您可能做得更好(注意:模型图像来自我的博客。)。

  2. 创建高级别要求列表

  3. 创建应用程序工作流程图(再次漂亮的颜色,箭头和块)。该模型将显示用户如何使用该应用程序以解决其主要任务。

  4. 现在,应用程序首先向他们展示需求列表并讨论它们,然后是高级体系结构,最后是应用程序工作流程图,然后可以进行现场演示。

    最重要的规则是在相当高的水平上展示大量的图表和模型来展示你在说什么。