拥有东西还不足够,还要考虑如何包装它。即使你拥有最好的想法、优雅的代码和实用的思考,如果你不能与他人进行有效沟通,这些都将不会结出果实。没有有效的沟通,好的想法就会变成孤儿。
作为开发人员,我们必须在多个层面上进行沟通。我们在会议中花费数小时,倾听和交谈。我们与最终用户合作,了解他们的需求。我们编写代码将我们的意图传达给计算机;我们编写文档将我们的思想传递给下一代开发人员。我们编写提案和备忘录,解释资源请求,汇报状态并提出新的解决方案。我们每天都在团队内工作 - 提出观点,调整做法或提出改进意见。我们日常大部分时间都在进行沟通,因此我们需要在这方面表现出色。
将英语(或者你的母语)视为另一种编程语言。用自然语言编写散文,就像编写代码一样:尊重DRY原则、ETC、自动化等等。
(程序员的软技能:ke.qq.com/course/6034346)
英语是另一种编程语言。
了解你的受众。
沟通涉及传达信息。为了将信息传达出去,你需要了解受众的需求、兴趣和能力。我们都曾参与过那些会议,其中一位技术爱好者关于复杂技术的复杂性细节滔滔不绝,让市场副总裁一脸迷茫。那不是沟通,只是说话,而且很烦人。想象一下,你想提议为最终用户实施一个基于Web的系统,让他们提交错误报告。根据受众的不同,你可以以不同的方式描述这个系统。最终用户可能更喜欢全天候的错误报告提交,而不必等待电话。市场部门可以利用这个功能来促进销售。支持经理可能会因此而感到高兴 - 由于错误报告可以自动化,所以需要更少的员工。最后,开发人员可能会对获得基于Web架构的经验或尝试新的数据库引擎感到兴奋。通过对每个群体有效地提出建议,你可以让他们都对你的项目感到兴奋。
与所有形式的沟通一样,关键在于收集反馈。不要只等问题出现;自己主动提问。注意身体语言和面部表情。神经语言程序设计有一个前提假设:“沟通的意义在于你获得的反馈。”在沟通过程中,不断提高对受众的理解。
知道你想说什么。
在更正式的商务沟通中,最难的部分可能是弄清楚你实际想要说什么。小说家通常从一开始就用大量的细节概述他们的书,但技术写作人员往往坐在键盘前,打出如下:
1、介绍。
2、浮现在脑海中的事物。
计划你想说什么,制定一个大纲,并问自己,“我是否以正确的方式向我的受众传达了我想说的内容?” 将其压缩至尽可能简洁。
这种方法不限于撰写文件。当你即将参加重要会议或给重要客户打电话时,记下你的想法,并准备多种策略以使你的观点被理解。
既然你知道受众想要什么,现在是计划如何传递的时候了。
选择时机。
现在是星期五下午6点,审计员在周围已经有一个星期,你老板的年幼儿子在医院里,外面正在倾盆大雨,让你回家的旅程成了一场噩梦。这可能不是询问她是否升级你笔记本内存的最佳时机。了解你的受众的一个方面就是找出他们的优先事项。当经理刚刚因为丢失了一些源代码而受到老板的责备时,抓住机会与他们讨论代码库的想法更有可能。你说的话不仅必须与受众有关,还必须及时。有时,只需要一个简单的问题:“现在是讨论......的好时机吗?”
选择风格。
根据你的受众调整表达方式。有些人希望得到正式的“只是事实”的简报。其他人在进入正题之前更喜欢一点闲聊。他们在这个领域的技能和经验如何?他们是专家还是初学者?他们需要指导还是只需要一个“太长;没看”版本?如果有疑问,就问问。
然而,请记住,沟通是双向的。如果有人想让你用几句话解释一些事情,而你发现这不能用几句话来概括,那就告诉他们。这样的反馈也是一种沟通方式。
使之看起来很好。
想法很重要,但受众也想要一个好的展示。
太多的开发人员(包括他们的经理)在编写文件时只关注内容。我们不同意。任何厨师(或者烹饪节目的主持人)都会告诉你,甚至连一个不起眼的外表都会毁掉你在烹饪上花费的几个小时的辛苦努力。
如今,制作格式不良的文件已经没有借口了。无论是使用Markdown还是文字处理软件,现代工具都可以输出漂亮格式的结果。你只需要学习一些基本的命令。如果你使用文字处理软件,请使用其样式表以保持一致性。(你的公司应该已经准备了可直接使用的样式表。)学习如何设置页眉和页脚。查看软件包中的示例文档,研究它们的样式和布局。打开拼写检查功能,首先让自动检查修复拼写错误,然后手动校对。毕竟,有些拼写错误可能会逃过自动检查。
将受众纳入其中。
通常,我们发现制作文件的过程比最终稿更重要。只要可能,让读者参与到文件的初稿中。倾听他们的反馈并借鉴他们的智慧。这有助于建立良好的工作关系,并通过这个过程产生更好的文件。
做一个倾听者。
如果你希望别人听你说话,那么你必须掌握的一项技能就是倾听他们。即使你拥有所有的信息,即使你站在一个正式会议中的20个衣着光鲜的人面前 - 如果你不听他们说话,他们也不会听你说话。
通过提问鼓励人们谈话,并试图让他们总结你的观点。将会议变成对话,以更好地传达你的想法。谁知道,你甚至可能会学到一些东西。
回应他人。
当你问一个人一个问题时,如果他们不回答,你会认为他们很粗鲁。因此,当有人通过电子邮件或发给你备忘录向你询问信息,要求你提供某些东西时,你有多少次没有回应?繁忙的日子常常会导致忘记事情。永远记住回复电子邮件,甚至简单的“我会稍后回复你”都足够了。及时通知他人 - 这使得人们更容易原谅你偶尔的疏忽,并让他们知道你没有忘记他们。
(程序员的软技能:ke.qq.com/course/6034346)
你说什么和你怎么说同样重要。
除非你完全与世隔绝,否则你必须学会沟通。你的沟通越有效,你的影响力就越大。
文档。
最后,还有一个通过文档进行沟通的问题。通常,开发人员不会投入太多精力去编写文档;充其量,他们把它视为一项义务性任务,最糟糕的情况下,他们将其视为一项低优先级任务——希望在项目结束时项目经理会忘记它。
实际的程序员将文档视为整个开发过程的一部分。为了使文档更容易,避免冗余工作并节省时间,通过保持文档随时可用来直接在代码中编写。实际上,用于编码的所有实用原则也适用于文档。
嵌入文档,而不仅仅是附加文档。
使用源代码中的注释生成吸引人的文档非常直接。建议为模块和导出的函数添加注释;这对其他使用它们的开发人员非常有帮助。 然而,对每个函数、数据结构、类型声明等添加注释的做法是有问题的。这种机械式的注释做法实际上可能使代码更难维护:修改某些内容意味着更新两个地方。因此,非 API 注释应该限制在讨论其存在的原因以及其意图和目的。当代码已经展示了如何完成事情时,注释变得多余,违反了DRY原则。
在源代码中进行注释是记录项目细节的绝佳机会,这些细节在其他地方无法记录:工程权衡、决策原理、被拒绝的替代方案等。
总结。
· 知道你想说什么。
· 了解你的受众。
· 选择适当的时机。
· 选择合适的风格。
· 使其视觉上吸引人。
· 让受众参与其中。
· 做一个好的倾听者。
· 回应他人。
· 将代码与文档绑定在一起。
线上沟通。
关于书面沟通的一切都适用于电子邮件、社交媒体帖子、博客等。尤其是电子邮件已经成为公司内部主要的沟通方式;它用于合同讨论、纠纷解决,甚至作为法庭证据。然而,出于某种原因,人们在发送破旧的纸张时会犹豫,但却不介意向全球发送看似混乱和不连贯的电子邮件。
我的建议很简单:
· 在发送之前进行校对。
· 仔细检查拼写,并捕捉可能的自动更正错误。
· 使用简单的格式。并非所有的电子邮件客户端都像现代浏览器一样呈现;你精美格式化的电子邮件可能会变得混乱。许多网站的评论和回复不允许使用HTML标签。
· 少量引用原始文本。没有人喜欢收到一封回复电子邮件,里面有几百行自己的文本,然后只有一行写着“我同意”。
· 如果引用某人的电子邮件,请给出引用并进行内联引用(而不是将其放在附件中)。社交媒体平台上的引用也适用于此。
· 避免在线侮辱他人;不要成为一个喜欢被恶搞或被攻击的网军。如果你不会对某人的面孔说某些话,也不要在网上说这些话。
· 在发送之前检查收件人列表。这是一个经常提醒的警告 - 如果你在部门的电子邮件中批评你的老板,请注意不要将你的老板添加到转发列表中。当然,最好的方法是根本不要在电子邮件中批评你的老板。
一旦发送,电子邮件和社交媒体帖子就是不可逆转的;许多大公司和政客都陷入了这个陷阱。因此,将电子邮件视为任何书面备忘录或报告。
(程序员的软技能:ke.qq.com/course/6034346)
标签:沟通,开发人员,学会,他们,交流,受众,程序员,文档,电子邮件 From: https://www.cnblogs.com/iphone100s/p/17663929.html