Blog

谈判中的第三人

Content #

几乎在任何一场谈判中都至少会有三个人——即使有时只有两个人在场。第三个人或第三方通常指的就是这样的人,无论是真实存在的或想象中的,即谈判者认为自己必须以某种方式遵从的人。这些人也许是鬼魂和过去的精灵,也许是谈判者告之以谈判结果的对象——配偶、同事、朋友,在这些人面前,谈判者需要保持面子。他也有可能是老板。问题的关键是,要想实现你的目标并获得更多,你必须对这些人负责。

例如,就谈判对方个人而言,他也许会同意你的意见,但他有一个不讲道理的顶头上司。在这种情况下,你可以和对方联手找出理由去说服对方的顶头上司。

斯科特·布罗德曼(Scott Brodman)是一家大型化学公司的销售经理。有一件事令他十分费解,一个新客户的采购代表不停地提要求,尽管那笔交易条件已经十分诱人。于是斯科特提了一些问题,想看看幕后是否存在第三方。“我发现,原来他的老板正在监视他,而且经常在事后批评他。”斯科特说。

在斯科特的帮助下,这位采购代表让其老板看到了行业标准以及他们的需求得到满足的过程。“他告诉他的老板,这是他所能达成的最有利的交易。”斯科特说。最后对方同意了协议。

很少有人会忽视对自己很重要的第三方意见。当你需要对某人施加影响,而又自认为没有足够的影响力的时候,想一想对对方而言很重要的人是谁,以及更容易受你影响的人又是谁。

20世纪70年代,纽约的一名律师伯纳德·伯顿(Bernard Burton),在一起诉讼案中代表一个承包商状告在长岛修建赛道的一名建筑商。由于这条名为萨福克草甸的赛道出现了资金周转问题,建筑商罗纳德·帕尔(Ronald Parr)停止向部分债权人偿还债务。伯顿担心帕尔在被告席上就债务问题不说实情,因为帕尔并非坦荡直率之人,所以伯顿将跟随帕尔30多年的秘书传唤到庭,她不是来作证的,而只是坐在旁听席上。伯顿认为,帕尔绝不会在自己的秘书(一位亲切慈祥、诚实正直的老太太)面前说谎。果然,帕尔讲出了实情,伯顿帮客户要回了工程款。“一分都不少。”他说。这就是第三方的重要性。

From #

专业知识在谈判中起的作用只占8%

Content #

大部分人认为谈判的关键是具备专业知识:本人是金融专家,本人是医生,本人是环保律师,本人是能源专家,本人是机械师等。但是,研究表明,在促使谈判双方达成协议的关键要素当中,专业知识所起的作用仅占8%,人在其中所起的作用超过50%,即双方是否互有好感、是否互相信任、是否愿意倾听彼此的要求。谈判流程所起的作用大约占37%。 也就是说,谈判双方是否愿意深入了解彼此的需求(理性需求和感性需求),双方对谈判日程的安排是否意见一致,双方是否有诚意对彼此做出承诺。

From #

沃顿商学院最受欢迎的谈判课

最重要的人是对方

Content #

从古至今,人们前去谈判都会带着一大堆议题,打算一开始就先声夺人,张口闭口“这是我方议题”“那是我方提案”等。

这样做实在大错特错!如果你无法以某种方式和谈判对手进行沟通,就无法达成协议,或者即使你确已和对方达成协议,它也不会十分理想,或者不会长久维持下去。因此,纵然你对对方恨之入骨,也必须和他们进行交流沟通。

记住,在整个谈判中,你是最无足轻重的一个人。最重要的人是对方,其次是对谈判者极为重要的第三方。如果不接受这个观点,你就无法说服别人相信你所说的任何一句话。本章将向你展示应该如何关注谈判对手,以便实现你的目标。

From #

沃顿商学院最受欢迎的谈判课

如何避免重复下单

Content #

一个订单系统,提供创建订单的 HTTP 接口,用户在浏览器页面上点击“提交订单”按钮的时候,浏览器就会给订单系统发一个创建订单的请求,订单系统的后端服务,在收到请求之后,往数据库的订单表插入一条订单数据,创建订单成功。

假如说,用户点击“创建订单”的按钮时手一抖,点了两下,浏览器发了两个 HTTP 请求,结果是什么?创建了两条一模一样的订单。这样肯定不行,需要做防重。

你也许会说,前端页面上应该防止用户重复提交表单,你说的没错。但是,网络错误会导致重传,很多 RPC 框架、网关都会有自动重试机制,所以对于订单服务来说,重复请求这个事儿,你是没办法完全避免的。

解决办法是,让你的订单服务具备幂等性。什么是幂等呢?一个幂等操作的特点是,其任意多次执行所产生的影响均与一次执行的影响相同。也就是说,一个幂等的方法,使用同样的参数,对它进行调用多次和调用一次,对系统产生的影响是一样的。所以,对于幂等的方法,不用担心重复执行会对系统造成任何改变。一个幂等的创建订单服务,无论创建订单的请求发送多少次,正确的结果是,数据库只有一条新创建的订单记录。

这里面有一个不太好解决的问题:对于订单服务来说,它怎么知道发过来的创建订单请求是不是重复请求呢?

在插入订单数据之前,先查询一下订单表里面有没有重复的订单,行不行?不太行,因为你很难用 SQL 的条件来定义“重复的订单”,订单用户一样、商品一样、价格一样,就认为是重复订单么?不一定,万一用户就是连续下了两个一模一样的订单呢?所以这个方法说起来容易,实际上很难实现。

很多电商解决这个问题的思路是这样的。在数据库的最佳实践中有一条就是,数据库的每个表都要有主键,绝大部分数据表都遵循这个最佳实践。一般来说,我们在往数据库插入一条记录的时候,都不提供主键,由数据库在插入的同时自动生成一个主键。这样重复的请求就会导致插入重复数据。

表的主键自带唯一约束,如果我们在一条 INSERT 语句中提供了主键,并且这个主键的值在表中已经存在,那这条 INSERT 会执行失败,数据也不会被写入表中。我们可以利用数据库的这种“主键唯一约束”特性,在插入数据的时候带上主键,来解决创建订单服务的幂等性问题。

具体的做法是这样的,我们给订单系统增加一个“生成订单号”的服务,这个服务没有参数,返回值就是一个新的、全局唯一的订单号。在用户进入创建订单的页面时,前端页面先调用这个生成订单号服务得到一个订单号,在用户提交订单的时候,在创建订单的请求中带着这个订单号。

这个订单号也是我们订单表的主键,这样,无论是用户手抖,还是各种情况导致的重试,这些重复请求中带的都是同一个订单号。订单服务在订单表中插入数据的时候,执行的这些重复 INSERT 语句中的主键,也都是同一个订单号。数据库的唯一约束就可以保证,只有一次 INSERT 语句是执行成功的,这样就实现了创建订单服务幂等性。

为了便于你理解,我把上面这个幂等创建订单的流程,绘制成了时序图供你参考:

还有一点需要注意的是,如果是因为重复订单导致插入订单表失败,订单服务不要把这个错误返回给前端页面。否则,就有可能出现这样的情况:用户点击创建订单按钮后,页面提示创建订单失败,而实际上订单却创建成功了。正确的做法是,遇到这种情况,订单服务直接返回订单创建成功就可以了。

Viewpoints #

From #

01 | 创建和更新订单时,如何保证数据准确无误?

把反馈当作是针对自身能力的评价所带来的负面作用

Content #

如果学习者把反馈当作是针对自身能力的评价,那么反馈就会对学习产生哪些负面作用?

会导致学习者自我贬低、习得性无助,或是与他人比较。于是相关的(任务)反馈则不会被重视甚至会被忽视。学习者还会降低自身标准,选择挑战性更低的目标。

因此,对于教育者来说,至关重要的一点是引导学习者把注意力集中在事情上,而不是自尊心上。当然,如果反馈是针对具体事情或行为的,就可以弱化它与人的关联。比如,不要说,“小艾薇,你是个优秀的设计师。”而要说,“小艾薇,你的这个设计中色彩运用得非常巧妙。”

From #

谈判课程的3个核心问题

Content #

我将整个谈判课程的内容用3个问题总结如下:(1)我的谈判目标是什么?(2)“他们”是谁?(3)要想说服他们,需要采用哪些策略和技巧?每次谈判,情境都有其不同之处。因为谈判的对象每次都不相同,或者就算对象相同,但时间并不相同,又或者是客观事实和客观情况有所不同,再或者是目标不同。因此,我需要在每个谈判情境中问自己上述三个问题。

第三个问题建立在前两个问题的答案的基础之上,这就是你需要一份谈判准备清单的原因。你可以从谈判目标和谈判对象入手,在谈判准备清单中选择,也可以在各式各样的起辅助作用的谈判工具中选择。即使两次谈判的议题和谈判材料相同,你每次的表现也有可能不同。因为两次谈判的目标不同,或者参加谈判的人员不同,或者目标和参加人员都不相同。谈判中没有一成不变的东西。

From #

沃顿商学院最受欢迎的谈判课

渐进式步伐

Content #

在我们的想象中,大胆的行动会带来成功。然而,在实际谈判当中,大胆的行动大多会将对方吓跑:你正迫不及待地要走得更远、更快。事实上,小的、循序渐进式的步伐才有助于争取更多。在谈判当中,如果双方差距悬殊,这种方法尤为适用。

渐进式步伐可以给对方一个喘息的机会,让他们可以环顾四周,看看你的步伐节奏是否合适,然后再充满自信地继续谈判。渐进式步伐可以让对方跟上他们已经接受的步伐节奏,还能减少前进中的可感知风险。

打个比方:如果你是一名打击率为0.280的棒球击球手,每9局比赛你就会额外击出一个安打,那你的打击率就会增至0.310。这个打击率足以让你跻身棒球名人堂,你的酬金每年也会增加1000万美元。所有这一切都是每36次击球当中额外击出的那记安打带来的结果。

我不是要在谈判中努力打出本垒打,而是要努力在每9局比赛中额外击出一记安打。这是一条很有效的经验,不仅适用于谈判,而且适用于生活。以渐进的方式逐步前进,你将会取得更多惊人的成功。

在谈判中,要从简单的事情开始,然后逐步增加难度。在和他人谈判的时候,如果你能使自己的成功率仅仅增加几个百分点,你也会获得更多惊人的成功。如果有人告诉你某种谈判策略始终有效,那他就是在欺骗你。再说一次,你要寻找的是每9局比赛中额外击出的那一记安打。

From #

函数定义和函数调用中的starred-argument

Content #

Don’t confuse the “/*” starred-argument syntax in the function header and the function call:

in the header it collects any number of arguments, while in the call it unpacks any number of arguments.

In both, one star means positionals and two applies to keywords.

From #

新朝的失败终结了西汉的政治儒学

Content #

王莽以禅让的方式登上帝位,这是儒家在帝制时代政治实践的顶峰。暂且不论王莽其人,也暂时抛开其中的迷信,只说儒家不依靠军事力量,以和平方式实现了改朝换代和权力转移,不太影响普通民众的日常生活,更没有发生剧烈的内战和残酷屠杀,犹如儒家版本的“光荣革命”,就堪称一次重大的成功,是西汉政治儒学结出的最大成果。不妨假设,如果王莽在执政后没有再造危局,上至天子下至臣民,都把皇帝干得不好就得禅位当作理所当然的事情,后代继起的王朝也能遵循这一约定并不断完善,犹如儒家版本的《大宪章》,那么,帝制中国能否摆脱治乱模式,让古代的老百姓少一些乱世苦难?历史是不允许假设的。而且古代帝制之下,只要秦制不变,治乱是摆脱不了的。王莽的失败,使禅让丧失了严肃性,沦为残酷斗争的遮羞布,后世每一次“和平”禅让的背后,都有着权臣对军事力量的绝对把控;也使得儒家改制被视为美好、伟大但不可能实现的荒诞理想。

换言之,新朝的失败终结了西汉的政治儒学,那种旨在驯服君主,用天人感应、灾异祥瑞来限制帝王,甚至大臣敢于要求君主下台的做法,渐渐失去了感召力。儒家失此良机,再无胆略气魄和自信对帝制进行根本性的政治变革,再也无力触及驯服君主、政权更替之类的宏大议题。这就是历史的残酷。对一个制度来说,如果把历史给的第一次机会搞砸了,后人就会认为这是一个被证明过的错误答案。于是东汉的儒学,又回到汉武帝、汉宣帝开创的“王霸之道”格局下,越发沦为政治的修饰物,地位被高度尊崇,但并不真正受重视。东汉不再有董仲舒、夏侯胜、京房、刘向和刘歆等“帝师范儿”的经师,儒家的政治地位明升暗降。

From #