你有两种和人交流观点的方式:
1.告诉人门你点观点对你而言是多么的有趣——很简单,但不幸的是,因为他人的不感冒,不了解或不同意,你的观点将被废止;
2.让你的观点变得生动而有趣,当然,对于其他人——很困难,但是其他人很可能因此而愿意给予你关注,理解并记住你的观点,并对你的观点做出反应。
接下来的这篇文章是写给对选项二有兴趣的人。
为什么程序员需要关心和人们交流意见和观点呢?
诚然,程序员的主要工作是让电脑充满自己的想法,但是你不能永远静静地躲在电脑之后,你需要和他人沟通。
*.团队——贡献并说明你的观点;
*.客户——在你的解决方案中 讨论并建立相互信任;
*.终端用户——让你的程序思想对用户有意义;
*.世界各地的程序员——分享你的知识并交流意见;
*.投资商——出售你的观点;
*.低技术人群——提供技术观点;
为什么让自己的观点变得有趣会很困难;
1.因为知识——一旦你知道了一些事情,假装不知到地和初学者沟通是一件很困难的事;
2.抵制——很多人都忽视或抵制新的思维方式;
3.有限的思维——人们的注意力有限并且很可能被新的复杂的信息淹没。
我专业化生涯的转折点是阅读了凯特.贝克的一本书——《极限编程释义》,凯特.贝克让我的思维超越于软件开发的技术层面。除了算法,语言还有技术,我开始思考其他非常重要的因素——简单明了的程度,反馈,商业价值和人与程序之间的交互。凯特.贝克不止影响了我,更通过介绍极限编程,交互,用户的故事,重构,单元测试,结对编程,持续的沟通和其他的实例影响了数以万计的程序员。凯特通过转换新的和现有的观点到一种非常好的模式,这种模式能让这些观点更好地被人接受并且大多数的专业软件开发团队所应用。凯特.贝克知道如何让自己的观点有粘着度。
持久的原则
戴维.海斯在《让它持久》定义了关于持久观点的6个原则:简单,出乎意料,明确,可信,情感化,故事。
简单
通常人们只会从你给的信息中记住一个你的观点。如果你的观点很复杂很难去了解,他们几乎不会去记住。所以,把你的观点提取成简单而干练的形式。
1.找到你的观点的核心——删掉所有不重要的信息,保留仅有的本质信息;
2.专心准备指挥——简单的关于操作目的的陈述和预想的结果的说明。例如:这次交流的目的是建立最小的端到端的顺序流——捕获并保存顺序,将其呈现给管理员;
3.把人们的理解建立在熟悉的知识上——循序渐进地介绍新的观点,让他和已存在的观点比较和融合。例如:我们能利用工厂的生产方式来详细地解释对象产生;
4.把比喻和类比作为新思维的基础——用简单的食物替代复杂的事物,最好的例子是谚语:“一鸟在手好过二鸟在林”——在所提供的技术下建立第一个版本,避免错过发布日期;
5.建立通俗语言——对所有人都只有一个意思。区域,驾驭,设计是普及性语言的核心原则,他能给商业人员和技术员之间提供良好的沟通。
出乎意料
有一个悲剧的现实是人们如果不关注你,他们将不会了解你的观点。如果你非常在意你观点的成功,你必须获得并保持他人的关注。就像柔道——一旦你得到一个很好的机会制服对方,你就能够控制一切并能够施展很多有效的技巧。如果不能很好的把握,你什么也干不了。
1.给人们惊喜并且突破人们的期望。例如:我的点子能够精简一半的代码并能让系统跑得更快;
2.激发的好奇心:打开一个话匣,并让之中充满有趣的回答,可以充满挑逗的意味:我们能在两周之内增加你的网站10倍的流量,你想知道怎么做到的么?
3.让你的信息对人们来说变得有趣。用最新的信息,绕舌语,悬疑和幽默。例如:你知道你现在的系统真对着黑客开放,重要的信息都被链接到因特网上么?
明确
人们会很难去理解抽象的模糊的语言。换用明确的语言。通常口水话会被认为是抽象的概念化的语言。
比较A和B:
A.我们的IT管理任务需要我们认真地考虑软件质量、可扩展性、软件表现等各个方面,我们运用全面的质量保证体系去应对多种的系统运用场景和挑战。我们雇佣了最好的资源去完成这个使命。
B.我们需要几周的时间去完成软件的测试。
1.让观点清晰和明确——每个人都应该能够理解你所传达的信息;
2.提供真实的实例,讨论真实的场景去明确消息的传达,让用户尽可能早地用到具体的东西;
3.帮助可视化思维——一个图像抵得上千言万语——建立原型,框图,把他们画在纸上。
可信
人们仅当你的观点是可信的才会去认同你。通过以下的方式建立可信度:
1.实例,统计和数据——为你的观点建立一个强大的观点,提供清晰的解释和理由;
2.已证明的成果——引用已经应用于实际并且成功的相似的观点;
3.过去的成功——关于你以前成果的引用,见证和现存的实例;利用西纳特拉(注:原文Sinatra)测试“如果它能在一个地方生效,他就能在任何地方生效。“;
4.可靠的方式——展示你的质量检测和验证程序,监控和错误捕捉步骤,在你的提供高质量的服务的能力上建立信任;
5.优越和透明——通过提供已证实的结论和完整的能够让用户独立地理解和掌握系统的信息给你的客户优越的感觉。
情感化
人们如专注于某事,就会做一些成绩。如果你激发了人们的情感和感觉,他们就会关注你的观点。情感会激励并感动我们自身。
1.让观点和人们联系起来而不是抽象。告诉人们乔对我们的调查是多么沮丧或是珍妮对我们网站的新特性多么感兴趣;
2.引起责任感和职业尊严共鸣——让人们意识到质量问题,系统安全的关注度和过低的用户满意度;
3.利用自身的兴趣——对于人们这种想法通常是:在公司中艰难生存,职业成长的机会或是来自兴趣的挑战;
4.同理心——人们会关心自身的状态和处境:“其他人如果和我面对同样的情形,他会怎样做呢?”一个优秀的开发者不仅仅是关心开发代码,也应当关心解决方案的可行性。
故事
故事是最好也是最传统的沟通工具。大脑会通过不同的方式去加工他们。我们能更长久的记住故事并能够很容易就回想起他们。故事应当是:
1.激励——关于一个开发者,他通宵地建立关于快速搜索的原型,用于解决多年的频繁的抱怨。
2.模拟——关于系统的在严密监管下的崩溃和数小时的当机,长时间的捕获异常,而起因是一个无限循环的小小的错误;
3.课程——关于程序员,他们认为构建代码不需要测试;
4.意识——关于用户,他们不能指出怎样在网站上完成简单的作业。
最后
程序专家的成长不一定是伴随这技术知识的增长,也可意识沟通和传达观点的能力的增强。专家知道怎样使自己的观点有趣,有效,并成功。
总而言之,作者的观点是:
*.简单——为了理解;
*.出乎意料——为了吸引注意;
*.明确——为了有意义;
*.可信——为了相信;
*.情感化——为了关心;
*.故事——为了记住;
祝愿你的伟大的观点能够被人们接受,铭记并领会。
2011.8.13