高科技公司的 CEO 要写代码吗?
导读:周末与一老朋友相聚,聊起创业,聊起涛思数据,他说,"老陶,看你朋友圈,经常看到你在写程序,你应该是在作秀吧,涛思数据融资都超过2000万美元,你这个创始人不太可能也不需要敲代码吧"。我当即打开GitHub,给他show我写的代码。我不仅为TDengine贡献了整体设计,还贡献了4万多行C代码,疫情期间我贡献的代码超过了一万行,递交的PR都超过了150个。作为公司创始人,作为CEO,到底要不要写代码?我有我的看法,现分享给大家。
公司在不同的发展阶段,重点工作会不同,但CEO要永远盯住核心。就如涛思数据,是一家专注底层软件技术的公司,即使融资不少,但还是属于早期,至多是早中期。公司成败的关键完全取决于我们开发的产品--TDengine,一款物联网大数据处理的软件。它的功能、性能、易用性等直接决定了公司的命运。从创立到现在,产品一直是我们的命根子。既然产品是命根子,那CEO的工作重心毫无疑问就是要抓产品。
创始人的专业所长,一定是公司最核心的竞争力,创始人必须在他的专业领域冲到第一线。TDengine属于底层软件,开发需要很多经验。无论是多线程并发、资源分配、debug用的日志,还是API的定义,有经验、踩过无数坑的老程序员与初出茅庐的就会有很大的区别。尤其是出现crash, 或者某个操作失败时,对问题的分析,定位,有经验与没有经验差别就很大了,这个时候最能体现一个普通程序员与十倍程序员的差别。TDengine经常做10亿条记录查询的测试,结果少了一条,如果没有经验,把这丢失的一条从十亿条中找出来那就完全是大海捞针。一个上亿条记录的聚合计算结果与预期值不一致,没有正确的方法分析,那也无异于瞎猫撞耗子,根本无从下手。
我的搭档,另外一位50岁的程序员,20年前就是NASDAQ上市公司CTO,曾任亚马逊、思科全球高级副总裁,为提升系统的稳定性,写下了专门做并发、做系统破坏性测试的crash_gen.py, 多个线程并发同时操作数据库,有的创建、有的删除,有的插入,有的查询。这个程序让每位研发同学都胆战心惊,因为这是专门找茬的,暴露的问题往往毫无头绪。这个Python程序现在每周都还有更新,它也不是一般的测试工程师能写出来的,它需要有对TDengine本身的技术、场景的构造等有深刻的理解,而且这个测试程序本身也要有很好的可读性、可维护性和可扩展性,才能让它随着产品的进步而同时进步。
公司发展中出现的核心重点工作,CEO不熟悉怎么办?立刻学习!公司的发展过程中,总有事情不是你擅长的,甚至是你根本没有做过的,你也必须参与进去,否则很容易出现失控,导致无法判断结果的好与坏,无法挑选合适的团队,犯方向性的错误。为什么最优秀的创业者,都是学习能力超强?因为创业的路上,总有很多从未听过、做过的事情和挑战,创业者必须迎难而上,去学习,去弥补自己的不足,这个过程的速度很大程度决定公司的竞争力和成败。但是,这并不意味着创业公司就不需要引进优秀的专业人才,相反,CEO通过快速学习了解领域知识,会更加有利于引入人才、更好的和专业人才对话,加速决策进度、促进公司核心业务的迅速成长。
很多认识我的朋友都认为我市场能力超强,其实我从学校一毕业,就是一直做研发的。在做上一家创业公司快乐妈咪时,由于各种原因,就是找不来市场营销高手,但我个人认为市场营销对快乐妈咪极其关键,因此最后自己冲到了市场第一线。凭着自己多年养成的爱学习、爱总结、爱归纳的习惯,充分利用微博、微信等社交媒体,在几乎没有什么资金投入的情况下,一个很小的团队就把快乐妈咪做成了一个有一定名气的品牌。
Do one thing and do it well!既然选择了做程序员,那就开心的写一辈子程序吧。
2020年8月30日
陶建辉写于北京望京
插图来自《石头和爸爸 - 计算机》一文