请不要被「小道消息」这个名字误导.在这里,我只想努力为读者呈现一幅中国互联网的清明上河图.

一个不写代码不称职被扒皮的水货 CTO 的自白书

发布日期:2016-08-26 05:28:13 +0000

按:我在某公司工作了六年,任职 CTO。在离职后,一些争议(期权问题)还没解决的情况下,知乎上突然出现了所谓「丁香园码农一枚」发的匿名信息。颠倒黑白,极尽贬低挖苦。这位「码农」写作手法一流,陈述的信息让不少即使是一起工作过的同事也真假莫辨。本来在这种敏感的时间我没必要回应,很容易陷入更大的风险。但看起来,这事情愈演愈烈,无休止,有朋友说,这看起来是「有组织有预谋」啊。我知道人性的恶,但没想到底线是这么低。所以有必要回应一下。


把我贬低成一文不值的话,谁获利呢?


括号内的内容是我的回应。


原帖:

https://www.zhihu.com/question/27623557


最初匿名者发的内容已经被知乎屏蔽。不过正在源源不断的重复贴上来。一些媒体也在转。






作者:匿名用户. ( Fenng : 作者在知乎上匿名发布的此文。然后在文中说是「丁香园码农一枚」。 )


冯大辉到底是不是技术大牛? 一个程序员眼中的 Fenng ( Fenng 按: 这是原文标题。现在这个文章被不少媒体转载,也有一些乐衷于黑我的人在起劲儿转发,但愿这个事情能给他们的生活带来一点乐趣。


利益相关:丁香园码农一枚。( Fenng: 你是真的码农吗?你不是。你不过是假借这个来试图传递不真实的信息,试图混淆视听。说实话,我原来管理的团队,没有人用心有这么险恶,他们是一些有底线的人。 )


现在看大辉的朋友圈,称呼他 CTO,他都会愤怒,言下之意是他何止是 CTO。从我的角度来说,他在丁香园期间扮演的确实不是 CTO,他可以说是丁香园的 “首席产品体验师”,也可以说是 “首席邮件挑错师”,就是不能说他是 CTO。听说大辉要自己创业了,从一个程序员角度看,我最想说的是 “希望他能尽快找到一个靠谱的 CTO” ( Fenng: 我讨厌别人叫我 CTO ,并不是我看不起自己原来的工作,而是因为很多人听到我离职了之后纷纷来找我做 CTO ,多大的公司都有,都是一副捡便宜的心态来跟我聊。我当然会讨厌。换了别人也会觉得这样的行为讨厌。说也奇怪,这样一个不合格的 CTO 还有一堆公司来找,大家眼光真有问题。其他请继续。 )


在丁香园写代码时间并不短,说一下我知道事情,确切的说是我理解的事实,因为也不是最早加入的,有些事儿是听公司老程序员说的。( Fenng: 姑且当你真的是程序员。


大辉在丁香园工作期间,保持非常高的微博、微信朋友圈和公众号更新频率,你去看他的 timeline,有些天几乎是平均几十分钟一条。作为一个不愿打断编程思路的程序员,我开始的时候很难理解他作为 CTO 是如何工作的。( Fenng: 这事情不用老程序员说,所有人都知道。我工作的时候一天发几十条信息,这不假,有谁注意到有多少信息是为了宣传产品呢?我的微博有几百万关注--不排除里面其实有一定僵尸粉,真的活跃粉丝也不少。请问,那么多宣传产品和推广的微博怎么没人说我是在工作呢? 我一天十几个小时在线,我不是做那种朝九晚五的职业经理人的工作,我把工作当成事业,当成自己的事业。我爱这个工作。


后来也慢慢了解了,因为他在丁香园任职 CTO,一行代码都没有写过,一行都没有。( Fenng: 在丁香园写代码能证明什么?哪一个 CTO 会自豪自己每天可以写代码?嗯,确实有,用自己标准评价别人的 CTO 都是这个心态。顺便说过,在阿里做了五年技术,我也没写过一行代码,从没写过。有人问,写 SQL 不是写代码吗?怎么能算呢。


更加奇怪的是,他也从来不做 Code Review,从来不做。( Fenng : 此处暗示说不 Review 代码的 CTO 是不合格的 CTO。



(Fenng:另可参见 WikiPedia 上对  CTO 指责定义。实际上,每家公司面对的情况也有不同。)


他在丁香园也同时管理产品团队,但据我所知,他从来没有实际参与过任何一个产品的原型设计,需求评审也基本不参加。( Fenng: 产品团队有产品总监,产品总监管理的大约一半的产品向我汇报。他没有说的是,我不但管产品团队,还负责很多产品的运营。


你可能觉得一个管理岗位,何须亲自写代码、Code Review 和需求评审呢?可大家不要忘了,他加入丁香园是在丁香园刚刚完成 A 轮融资以后,整个公司也不到 100 人,技术产品加起来也就 20 多人吧。( Fenng: 当时公司 50 人左右,技术团队 11 个人,加入公司的时候我也明确跟 包括 CEO 在内的 团队同事说,我不懂写代码。老同事也调侃过我,「你又不写代码」。

一个 A 轮公司的 CTO 不去了解公司产品和技术的架构正常,不深入技术细节做技术决策正常吗?( Fenng: 如果当时不了解公司产品,不熟悉公司架构,不深入技术细节,不做技术决策,请问当初的产品改版,当初的技术债务 -- 一大堆产品等待开发,包括丁香通、丁香人才等产品,都是怎么搞到现在的?靠发微博做出来的吗?如果没有任何作为的话,是不是这个公司所有的产品都应该是同行最落后的?这才符合逻辑啊,但,事实是这样吗?如果我做了什么的话,那些事情是怎么发生的呢?我什么都没做,都是团队成员做的。当初我来做 CTO 干嘛呢?团队自己发展就可以了呀,什么都可以解决。


事实上在这几年我们遇到的各种问题:有架构规划上,有数据库的,有技术选型的,有性能优化的,他一边对外写着介绍 Facebook/Twiiter 等流行互联网公司的技术架构科普文章,在技术圈内博取技术大牛的名声;另一边却在公司从未亲自带领团队去解决这些问题,他常说的一句话:对我们最好的培养就是丢一大堆问题给我们解决。最后技术架构一团糟,大辉却叉着腰把所有的责任推给公司,推给一线程序员,唯独他作为业界技术大牛,却不需要为技术架构的问题承担责任。( Fenng: 这几年的技术问题,那么请问是怎么解决的?这几年客观的说,没遇到架构规划,没遇到数据库问题,没有技术选型问题,没有性能优化问题。为什么?团队成员解决这些足够牛逼,难道我还要去假装跟他们一起干活,然后说这些问题是我解决的?「从未亲自带领团队解决这些问题」,那么,这些问题是不是还应该存在?问题是什么?拿出来一两个比较有说服力吧?没有的话,我给你说一个,就在我离职前的 2 个月,我还和社区技术产品团队在频繁讨论如何防新的垃圾信息的问题。也就是我走之前,还在看所谓的技术细节,包括发现同事处理规则的瑕疵,还会掺和一点决策。 )


很早以前,丁香园就上马过问答项目,完全是撞大运的心态,根本没有完整的运营思路,最好笑的是,这个项目一个程序员离职以后,公司无人能够接手这个项目,要让人接手,就必须先 “重构代码”。这种才开始就要重构代码的事情在后来经历了很多次,包括后来公司非常重要的丁香云管家项目。( Fenng: 以前做过的问答项目,无论内部还是外部,都解释过为什么停掉。主要的原因是运营力量不够,没达到知乎这种水准,这是当时的客观水平。停掉的时候,如果没记错的话,做这个项目的 PHP 程序员姓胡,当时还在公司,我在会议室里也给胡当面讲过为什么停掉这个项目。现在想起来,小熊应该也参加了,他还在公司。至于新的问答项目,我没掠美说是我一个人的功劳,也没说自己的功劳多大,我只想说一点,没有我,丁香园不会有这个项目,这算是我临走给丁香园留下的东西,虽然未来怎么发展不可知。之所以去写一篇文章提及「大弓」,那是是签署合同的时候,我跟大弓作者说过,未来要给他宣传一下。这是个承诺,因为变动,我只能用我的影响力去兑现。人家当时也没提别的要求。再说,我宣传的时候也是宣传公司的产品。 )


说起云管家这个项目,先是从外面请来了一个 “首席科学家”,大家都以为很厉害的样子。结果呢?这个首席科学家非要用 Redis 做底层的数据持久化存储,美其名曰:“微博就是用 Redis 存储的”,期间很多研发同事都不同意,都快吵翻了,但是他是大辉任命的首席科学家,大辉也从来不管技术选型这种 “小事情”,而是忙着写微信公众号发微博。( Fenng 的回应: 至于「首席科学家」(其实是「首席架构师」, 不知道怎么搞出来「科学家」来了?因为当事人很特殊(背景相对又比较资深,但是待遇要求又不高) 的引入,纠结了很久。这个决策不是我一个人下的,而当事人确实背景有些复杂,这事情没法公开说。当时我也担心这个 Title 会出问题,会影响其他同事的心理,跟 CEO 反复商量过,有聊天记录和邮件记录。当事人做项目的产品经理是谁呢?是 CEO,进行到一半的时候,我问过是否有问题,CEO 说正常,到了后半程,项目越来越复杂,解决方案的选择也引入得确实很业余。这个产品的重要程度在我的判断当时并不至于要投入公司两个高管去管理,后来也跟 CEO 说过同样的话。至于后面是不是擦屁股,我参与了这个事情,背后的决策和处理过程我不能透露太多,也要保护当事人隐私。我后来也多次跟个别同事反复说起过这个事情我有责任。


所幸后来有人来替他擦了这个屁股,罢免了 “首席科学家”,替换掉了 Redis,改回了 MySQL 数据库,云管家项目才得以顺利上线和运营。( Fenng: 替换 Redis 这种小屁问题,还用「有人」来解决吗?「有人」当初还计划这玩意儿要再找几个人,替换现在的团队,然后搞几个月再上线呢。顺便说一下,大概你也不知道当初为什么做云管家吧?不知道是谁的建议吧?不知道之前做了多久的规划和调研吧? )


关于整个公司的技术架构和选型,作为一个程序员我是从来没有看见大辉做过这种事情,也从不组织这种讨论,完全是随着各个团队自己搞,各种编程语言、各种框架,各种版本随便程序员自己用,这给很多项目埋下了坑,这些坑到后来都演变成各种冲突和矛盾。( Fenng: 这个逻辑比较好,你没看过就代表我没做过。一个公司,如果技术和产品并不需要频繁变化,整天讨论什么啊?技术团队在各个阶段有侧重点,现阶段任务是什么?整天技术选型?整天 研讨技术架构吗?你多大个网站?多大的流量?多少用户?炫技干嘛? 哪个有历史遗留产品的公司没有坑?那个公司没有矛盾和冲突?这个就是常态。 )


说到团队培养问题。这几年,我有印象的,总共大约请过 4-5 个人来公司培训,基本上也没有太多规划,以他的好友为主。日常团队内部的技术交流完全靠团队小 Leader 自己搞,有一搭没一搭,你还不能抱怨,一抱怨他就要到朋友圈不阴不阳的说 “现在的年轻人总是抱怨培训不够,你代码一堆 bug,公司那么多问题没有解决,解决这些问题不就是最好的培训吗?”。( Fenng: 第一年大概我就至少刷自己的脸请 4-5 个人来做过分享。后来随着人多,我反对那种把所有人拉去听一个不相干的培训的培训,反对为了培训的培训。培训是不是一定要在会议室里进行?出去开会是不是培训?跟其他公司交流是不是培训? )


可是你是 CTO 啊,在资源永远不够,别人解决不了的情况下,你倒是给我们指点一下方向,规划一下架构,判断一下解决方案,决策一下技术选型啊?对于这样的业界技术大牛,我们解决不了的问题,对你来说,不就是很轻松搞定的问题吗?你有时间发朋友圈和微博给大家所谓示范如何利用社交媒体,就没有时间亲身示范一下如何写代码吗?哪怕你是 DBA 出身,给我们示范一下如何调优 SQL 语句,程序员怎样注意和避免 SQL 注入漏洞也好呀,但只是骂,从来没有亲自示范。( Fenng :我没有说过所谓的「最好的培养就是丢一大堆问题给你们解决」或是类似的话, 或是谁在什么地方看到过我写过类似的话,也麻烦告诉我一下,谁听到过,告诉我一下,如果有,我承认错误。如果没有的话,你捏造我的话也要熟悉一下我说话的风格吧?至于「指点一下方向,规划一下架构,判断一下解决方案,决策一下技术选型」,这更应该是一个架构师做的事情。同样,我并不觉得亲自能写代码就是一个好 CTO。没有格局和视野算是个毛 CTO? )


以前在另外一家初创型公司工作,CTO 都是碰到问题,团队解决不了的时候,自己亲自上阵的,这个能力在大辉身上是没有的,他只有逼急了骂人。( Fenng: 另外一家初创公司多大?几个人?CTO 浑身是铁,能捻几根钉? 你看到我逼急了骂人,你看到过我跟同事解决紧急问题了吗?你没看到过就没有,还是你故意捏造?我这个 CTO 还在负责具体的业务拓展,而那将影响公司的未来走向,我急不急?哪一个更急?


看见他在外面和别人互喷吵架,总是想,那么多时间精力用到我们自己的开发和产品上多好呢?而他在外界和人互喷,最大的资本就是这几年丁香园产品发展的不错,一副 “老子有后面的产品做背书,你们能说我只是会喷吗?” ( Fenng:  你知道我有多少精力用在自己的开发和产品上?难道每天跟我一起上下班?24 小时看过我做事情得出来的结论?另外,产品发展的不错,谁做的? )


现在他离职了,不停给外界传递丁香园过去很多重要的成绩都是他带来的。可是,对于一直参与产品研发的同事会认同吗?( Fenng:  请问:我在哪里做了「不停给外界传递丁香园过去很多重要的成绩都是他带来的」之类的事情,请举出一两个例子来?我写微信公众号说功劳都是我的?我接受媒体采访了?我参加会议了?还是我在社交媒体上说我过去做的牛逼了?如果举不出来,你信口雌黄干嘛? )


公司面向企业的业务是收入的主要来源,这部分业务他根本就不关心,还总是设置各种障碍,总之在他眼里这些做企业业务的人都是笨蛋,根本不值得尊重,公开和私下里经常说一下很难听的话来攻击团队同事。这些行为直接导致了公司团队的矛盾,也和公司的文化格格不入,在朋友圈喷,在公众号含沙射影,就是不愿意面对面坦诚交流,以 “开会都是浪费时间” 的名义。( Fenng: 这部分业务的支持在很长时间里已经不是我负责,我关心什么?有独立的开发团队, 有独立的汇报关系。我有什么权力去给他们设置障碍?事实上,我说过绝大多数都是笨蛋,那能代表什么?我自己还说自己是脑残呢。说我攻击团队以及一大堆话,举例子来吧。我讨厌开会。从来都不掩饰这一点,我在大公司经历过这种痛苦。但我与同事的交流并不少,因为你可以通过其他工具和渠道做同样的信息交流。这些只是做事方法的不同。一家公司不是只有通过开会才能解决问题。 )


在移动方面,丁香园做的最成功的就是快速移动转型,现在的日活非常高的用药助手 App 几乎是这个领域最好的应用,而丁香园和丁香医生系列微信公众号更是在微信上有巨大的影响。( Fenng: 不好意思,最成功的还真不是移动转型,移动转型太慢了,而且也不够狠。否则,哪有其他几家的机会。


用药助手 App 的创意是天天老板在海外参会看到美国用药助手(名字忘了)在美国上市,回国后迅速召集团队讨论,然后大家都尊敬的叮当叔挑起产品大梁,团队迅速研发,踩上了 App 的红利期,产品迅速走红,并且带来了公司 B 轮融资。( Fenng: 用药助手等产品是怎么决定要做的? 我至今仍保留有当初拍的白板上的信息架构图,盾安大厦时代我办公桌前面的白板。第一个版本的开发是托关系找的外包。现在所有的当事人都在。这么快就开始混淆事实了?


而微信公众号,丁香园大号最开始一直都是 CEO 张老板用一己之力写出了大几十万粉丝后来交给团队处理,丁香医生系列号则是大众医学传播团队的巨大贡献。据我所知,大辉从来都不参加丁香医生微信号的工作例会,从来都不参加,从来都不。( Fenng: CEO 写的确实挺带劲儿,不过我整天吭哧吭哧带粉也有一点小贡献,要不,开始那 10 来万粉丝那么容易来?后来大几十万是怎么来的?是我做了广点通才他妈的迅速增长的啊,当然钱是公司的,你可以说我没做什么贡献。我参加过丁香医生团队的例会,然后每个同事都不自在,后来就不参加了。不参加不代表我不作为,我在运营的群里,每天跟同事讨论各种运营的细节。这他妈的叫「从来都不」? )


这个团队在初太医的带领下,帮公司在大众传播领域开了一个很好的头,公司内部的同事一度都认为丁香医生就说丁香医生微信公众号。( Fenng: 这是啥意思?要不让初太医出来说两句,我起到了什么作用?大众传播为什么开始做?那是我设计的业务架构图,必须要有这一块,我给团队多次讲过这个架构,给公司讲过,给投资人讲过。除了我,当时公司里谁能讲清楚微信流量体系怎么来的吗?难道吭哧吭哧发文章就有粉丝啊?花钱做广点通就有读者啊?


然后是公司目前重点投入的 “来问医生”,说起来更是有趣。大辉在外面说这个产品是买来的,实际上呢?实际上是团队没日没夜关小黑屋封闭开发出来。他买来的那些代码根本就没法维护,完全无法用。要使用的话,就必须和原来掉过无数次的坑一样,必须全部停下业务来重构。现在我们技术团队一说重构这个词,业务部门就头大。( Fenng: 事实是,这个产品就是买来的。封闭开发也是基于人家的业务模型。解释什么呢?要是这么牛逼,为什么团队自己不从头做一个? 要真有人有这个意识,还用去跟别人买?之所以吭哧吭哧小黑屋开发,那是给产品灌入了太多想法,那些产品做法是否有效,我对此持有保留意见。 )


在丁香园的产品和技术都有一个体会,大辉总是时不时的喊 “我们太慢了,我们要快”,但是怎么快呢?谁知道呢?喊完以后有什么用呢?作为一个已经早早脱离技术的管理者,只知道召集所有人半夜喊几句,或者在群里骂几句,看周报主要是标点、大小写和错别字等等,有一次他把另外一个同事的周报猛夸了一阵,而这个同事一直被数个业务部门投诉。( Fenng: 没错,从来都是觉得慢。我一周周报也看 100 多封,看这么多还能看出来标点问题,大小写和错别字…呵呵。我讨厌不重视细节的人,包括这位匿名者。不重视细节的话,怎么去跟同行做区分?我夸过这位同事的周报,她周报是写得好,这跟她平时工作被投诉有关吗?一个小姑娘,同时面向数个业务部门的事情,请问,其他产品经理同时负责几个产品?这位小姑娘负责多少产品?何况都是别人不愿意接难以维护的烂摊子,这些事情确实不好做,在投诉她的时候,作为她的间接管理者给她一点正向激励有错吗?将心比心,我们评估一个人的工作是根据投诉评估吗?要不要看结果,要不要考虑她/他所使用的资源? )


丁香园的程序员们都知道:大辉根本就不管技术团队,也不懂编程,他只管产品经理,丁香园从技术层面我想不会有哪个程序员会认同他做了什么实际贡献。而谈到管理,研发体系的梳理和完善是从范凯老师来丁香园以后开始的吧。与医疗行业的其他公司比,过去丁香园在技术领域还不至于落后,或者说有一些领先,其实是因为陈良、文磊等真正的一批优秀的骨干工程师在顶着,大辉总是高估了自己,低估了别人。( Fenng: 为什么不说产品经理我也不管呢?注意这里的「有一些领先」下文有线索。提到的陈良、文磊等同事起到这么大的作用,那也是平时够放权啊,如果我高估自己,怎么能这么信任他们?另外,他们能顶住的话,还用的着我跟他们每天开会做决策?至于所谓的「管理,研发体系的梳理和完善」,再等等看。 )


丁香园的技术实力,与丁香园品牌和医生资源等是不匹配的,我觉得技术是拖了后腿的,丁香园本可以用互联网中上的技术实力加上丁香园过去积累的品牌和资源跑的更快。现在丁香园只能说比那些更烂的团队要好。( Fenng: 前面说「有一些领先」,现在又「技术是拖了后腿」,自相矛盾嘛。请问一下,市场上哪家同行公司比丁香园技术产品还强的,多举出几个,以便证明我之前做的不好。跟烂团队比好,我觉得还是挺丢人的。 )


如果说从大辉身上学到了点什么,那就是如何喷人吧,怎么喷同事,怎么喷同行,怎么喷很多其实和我们毫无关系的人和事,然后感叹时间不够用,应该把时间用在 “美好的事情” 上。( Fenng: 其实,我觉得「喷人」没什么不好,至少我没有匿名,我公开的说。 )


张小龙曾经说过 “要提防那些 blog 写得好的产品经理,因为在 blog 上花的时间越多,在产品上花的时间就越少。原来还以为有例外,现在看起来无一例外。”  ( Fenng: 不好意思,我不是产品经理。乔布斯还说过,匿名的都是蠢货呢,看起来也毫无例外。 )


我想说,这句话要是用在 CTO 身上更加合适,在朋友圈、微博和公众号上花的时间越多,在真正技术上花的时间就越少,这个绝无例外。无论是技术精进和管理能力,我再也不会相信,把大量时间耗费在社交媒体上和人互喷的人能够做好。( Fenng: 我的观点是,一个 CTO,如果在一个垂直互联网公司整天标榜「真正技术」,我觉得他真不配做  CTO,写多少代码都不配。另外,Wikipedia 上有 CTO 的职责定义,有空可以看一下。 )


最后,听说大辉要自己创业了,我最想说的是 “希望他能尽快找到一个靠谱的 CTO”。( Fenng: 如果能找到一个 CTO 的话,我希望他至少是正直的。他最好不要写代码。 )


关于一些其他不太好说的事情就不说了,希望大辉能够像自己表现的那样,有尊严一点吧,别做那些让兄弟们不好意思说的事情了。( Fenng: 一个匿名者还有脸谈尊严?不守契约的人有谈何尊严?





Fenng: 最后我再做一点补充。


一个 CTO 的工作怎么评估?我是当事人不好说。但我认为,不管怎么评估,要看看他的团队,他怎么组建的团队,他怎么做招聘。还要看做事情的结果。他拿出的结果是不是令人满意。看一个人的缺点或是不足之处太容易了。随便一个人站出来,看他的缺点的话他一无是处,但是,他有优点吗? 他的优点体现了什么价值?


每个人有自己的管理风格。我不喜欢开会,如果别的管理者喜欢开会,那是他的行事风格,但我并不会从这一点来评估人的高下。有的 CTO 坚持一线亲力亲为甚至写代码,有的 CTO「一行代码都不写」,但我并不觉得前者就一定比后者是更合格的 CTO。


哦,对了, 我除了 Title 是 CTO,离开公司前,还在负责这家公司 C 端的线上业务。


有些人说,你以前不是总说某大公司的一个 CTO 吗?你看人家现在的云计算业务发展的怎么样?再看看你…我说的没错,该 CTO 是超级牛人,人也有趣,战略眼光一流,但他负责云业务的时候的确一塌糊涂,这也是该公司内部很多人的观点。后来这一块业务确实做起来了,而这恰恰是其他人接替他负责了云业务之后。即使是当面我也会这么说。


清者自清,读者有自己的判断。实际情况不是这样,如果我不做回应,不明就里的人就会把那些当成事实。 我并不想在离开一家公司之际夸自己有多大「功劳」,也不想再次陷入「跟老东家对掐」的尴尬局面 — 这恰恰是网友喜闻乐见的热闹,甚至像一个圈套。你们也可以去公开媒体上看看,我有没有说过这家公司的坏话。我的社交媒体上,依然在推荐这家公司的产品,有人问我,我依然会推荐产品。 我欢迎公开的批评我,指责我的不足,我承认自己有不足,比如,我就是不喜欢跟很多人开会。


一个技术人,除了技术过硬,还有什么比较重要呢?他做的事情是不是有价值?还有什么更重要呢? 他是不是一个正直的人 。我不能说我有多正直,但是这位所谓的「丁香园码农」,你不够正直。你匿名攻击我只是一例,你还匿名给公司同事写邮件,让他们去知乎上看你写的东西。


你不但不正直,你也不负责任 。你做的事情,已经让丁香园蒙羞。遗憾的是,丁香园目前也尚未公开澄清此事,尽管天天之前的采访还在肯定我的价值。 但你所做的,让他们怎么想?


// 此处内容暂时删掉。根据情况而定要不要做其他补充。



--EOF--