zoukankan      html  css  js  c++  java
  • 如何赢得技术争论【转】

    做技术的人,经常遇到这样的面试问题:“工作中如果遇到技术上的意见不一致,有人说要这么做,你却觉得应该那么做,该怎么办?” 我对此的回答一般是,友好地说出自己的看法,理由和证据,大家一起分析,找到最好的方案。

    这似乎是一个非常文明而合理的做法,然而在实行的时候,就发现我的这种做法几乎每次都失败。我亲眼看见,项目代码被固执己见的人加入越来越多不必要的东西,变得越来越乱。我亲眼看见,工作的流程被自以为是的领导改得无比繁琐,以至于大家效率减半,甚至没法工作。我预见到项目甚至整个企业的最终失败,可是我对此无能为力,只好听之任之。我对自己说,他们只付给我这么点钱,我这种没有话语权的人,就不要试图去做什么大贡献了……

    我确实坚持过,我的坚持拯救过整个的团队,不过这种事情只出现过两次。第一次,我实现了队友们以为不可能完成的 PySonar,拯救了垂死的 Google Grok 团队。另外一次,我冒着被炒鱿鱼的风险,帮助大家摆脱某公司 VP 的愚蠢作法。这人提出一个“创举”,把项目不到十万行的代码按目录切分成超过 30 个 git repo,称之为“模块化管理”,结果大家没法工作了(自己想想为什么?)。我第一个站出来,指出这种做法的严重问题,跟他争论了近半个月。幸好我赢得了好几个同事的支持,最后写了一个脚本把 30 多个 repo 合并成了一个,不然后果你可以想象。然而我发现每一次加入新的团队,都会出现类似的瞎指挥情况,所以我对这种英勇的行为越来越不感兴趣了。

    经历了这么多之后,我觉得现在是时候分析一下,为什么自己总是在技术的争论中“失败”(注意失败打了引号)。就算有深入的见解,近乎天衣无缝的逻辑和充分的实验,数据和证据,也敌不过有些人的诡辩。最后我发现,这里面的原因不在于我自己的逻辑不够充分,数据不够精确,推理不够严密。根本的问题在于,我在跟错误的人说话,我根本不应该跟这些人一起工作。一个石头打烂一锅汤,团队里只要出现一个这样的人,占据了高位,愚蠢就会开始蔓延。

    我发现跟某些人辩论问题的时候,我总会输掉,以至于项目被这种人朝着崩溃的方向推进。最后我发现问题其实在于,这些人是为了辩论而辩论,他们并不是想探索问题的究竟,他们并不依照严密的逻辑进行推理,他们甚至根本没有听你在说什么。他们跟你辩论唯一的目的,就是赢得辩论。

    这种人会不择手段,使用模糊不精确的概念,片面或者不属实的证据,利用道听途说的谣言,抬出权威的名字,反复跟你念经,甚至当场把你当小孩,质疑你对一些基础知识的理解,进行变相侮辱性质的攻击。当时弄得你无语,甚至不知所措,等你事后仔细分析,却又发现他们的说法漏洞百出。任随你有严密的逻辑,充足的证据和实验数据,也不会是他们的对手,因为这种人根本不遵循逻辑,不尊重事实,所以你就被狗咬吕洞宾,没办法让事实得到尊重。

    如果遇到这种人,我一般只好任由他们。因为他们已经下定决心要否认你的观点,所以再多的口舌也是浪费时间。这种人跟你争论,往往不是为了项目得到更好的结果,而是另有企图。当然我知道项目最后很可能会因为这些人而失败,可是我对此无能为力,只好随它去了。欢迎忽略我的看法,不过由此引来的一切的后果,你们自己承担 :P

    所以呢,虽然我今天的标题叫做『如何赢得技术争论』,然而我对这个问题其实是无解的,因为我根本没有想过去“赢得”争论。跟人争论的目的,不应该是为了能赢,能按自己的方式办事,而应该是为了弄清事实,发现最好的解决方案。如果另一个人的做法更好,以理服人,那么我会毫不犹豫地放弃自己的想法。然而不幸的是,在我的工作生涯中,充满了想要赢得争论,对别人的观点视而不见,一切按自己的想法办事,进行诡辩,甚至靠嗓门大取胜的人。所以很多时候你就只好放弃,因为你是在跟错误的人说话。

    我看见满载希望的列车,冲向悬崖的尽头,然而我却只能保全自己,因为我无法拯救愚昧。愚昧是无敌的。有个古人说得好,理性和智慧从来就没有战胜过愚昧,只有等愚昧的人都死去,它们才有被人看见的希望……

    原文地址:http://www.yinwang.org/blog-cn/2016/10/25/argument

  • 相关阅读:
    Java18(泛型,反射,内省)
    Java17(线程池、Runnable和Callable、Lock、信号量、任务调度、Timer)
    Javaday16(守护线程,线程同步,线程通讯)
    面试题错题集04(异常)
    面试题错题集03(数组)
    面试题错题集02(面向对象)
    Javaday15(Queue,Collections工具类,多线程)
    Java中的内部接口
    ISO14229:2013 之 通过标志读数据ReadDataByIdentifier (0x22)
    Oracle数据库迁移至PostgreSQL数据库问题及解决
  • 原文地址:https://www.cnblogs.com/mingjia/p/6006796.html
Copyright © 2011-2022 走看看