公司在不同的发展阶段,重点工作会不同,但CEO要永远盯住核心。就如涛思数据,是一家专注底层软件技术的公司,即使融资不少,但还是属于早期,至多是早中期。公司成败的关键完全取决于我们开发的产品——TDengine,一款物联网大数据处理的软件。它的功能、性能、易用性等直接决定了公司的命运。从创立到现在,产品一直是我们的命根子。既然产品是命根子,那CEO的工作重心毫无疑问就是要抓产品。
作为一个接口相对标准的大数据产品,抓产品更多体现在技术实现上。因此这注定我必须深度参到研发中,不仅要设计,规划功能,还要敲代码。如果只搞设计,好多实现细节无从得知,而且工程实现的难易程度难以判断,性能指标难以给出量级的概念。
给一个最简单的例子,2017年我们刚开发完TDengine 的C客户端,就马上着手JDBC接口,但负责Java的同事完成后,发现JDBC性能达不到C接口的1/10,而且给我一大堆理论,我当时明确告诉他,Java性能下降20%是可能的,但降到只有10%的话,一定是你程序有问题,最后证明我是对的。
就在2个月前,我们负责GO连接器的同事,也是告诉我性能降到只有1/10,不可能再提升,还打赌1000RMB,最后证明我也是对的,GO的驱动与C的性能几乎没有什么区别。这就是亲临一线与远离一线的区别。
创始人的专业所长,一定是公司最核心的竞争力,创始人必须在他的专业领域冲到第一线。TDengine属于底层软件,开发需要很多经验。无论是多线程并发、资源分配、debug用的日志,还是API的定义,有经验、踩过无数坑的老程序员与初出茅庐的就会有很大的区别。
尤其是出现crash, 或者某个操作失败时,对问题的分析,定位,有经验与没有经验差别就很大了,这个时候最能体现一个普通程序员与十倍程序员的差别。TDengine经常做10亿条记录查询的测试,结果少了一条,如果没有经验,把这丢失的一条从十亿条中找出来那就完全是大海捞针。一个上亿条记录的聚合计算结果与预期值不一致,没有正确的方法分析,那也无异于瞎猫撞耗子,根本无从下手。
我从84年开始写程序,在中国和美国,都受过很好的教育和专业训练,本身就是一个十倍程序员,我的编程经验、对系统架构的把控、研发上所踩过的坑就是公司最大竞争力。但如果碍于创始人、CEO的身份、因为融了一笔钱,就对一线工作袖手旁观,只做战略决定、指挥,那么对于公司无疑是最大的资源浪费,大大降低了竞争力。战略、布局很重要,决定了公司发展的天花板,但是否能实现战略目标,则取决于每一个执行的细节。
我的搭档,另外一位50岁的程序员,20年前就是NASDAQ上市公司CTO,曾任亚马逊、思科全球高级副总裁,为提升系统的稳定性,写下了专门做并发、做系统破坏性测试的crash_gen.py, 多个线程并发同时操作数据库,有的创建、有的删除,有的插入,有的查询。这个程序让每位研发同学都胆战心惊,因为这是专门找茬的,暴露的问题往往毫无头绪。
这个Python程序现在每周都还有更新,它也不是一般的测试工程师能写出来的,它需要有对TDengine本身的技术、场景的构造等有深刻的理解,而且这个测试程序本身也要有很好的可读性、可维护性和可扩展性,才能让它随着产品的进步而同时进步。
公司发展中出现的核心重点工作,CEO不熟悉怎么办?立刻学习!公司的发展过程中,总有事情不是你擅长的,甚至是你根本没有做过的,你也必须参与进去,否则很容易出现失控,导致无法判断结果的好与坏,无法挑选合适的团队,犯方向性的错误。
为什么最优秀的创业者,都是学习能力超强?因为创业的路上,总有很多从未听过、做过的事情和挑战,创业者必须迎难而上,去学习,去弥补自己的不足,这个过程的速度很大程度决定公司的竞争力和成败。但是,这并不意味着创业公司就不需要引进优秀的专业人才,相反,CEO通过快速学习了解领域知识,会更加有利于引入人才、更好的和专业人才对话,加速决策进度、促进公司核心业务的迅速成长。
很多认识我的朋友都认为我市场能力超强,其实我从学校一毕业,就是一直做研发的。在做上一家创业公司快乐妈咪时,由于各种原因,就是找不来市场营销高手,但我个人认为市场营销对快乐妈咪极其关键,因此最后自己冲到了市场第一线。凭着自己多年养成的爱学习、爱总结、爱归纳的习惯,充分利用微博、微信等社交媒体,在几乎没有什么资金投入的情况下,一个很小的团队就把快乐妈咪做成了一个有一定名气的品牌。
也许到某个阶段,销售成为涛思数据的重中之重的事情,虽然我根本不是一个销售人才,也没想去成为销售牛人,但我也一定会倾注大部分精力来抓销售。这并不意味着我就不要销售高手,一切都要自己来,而是希望通过参与销售,去了解销售过程中的难点、痛点,来更好的组织销售团队,帮助他们达成目标,从而实现公司总的目标。
把程序一直写下去,乐在其中。TDengine是一款处理物联网大数据的开源软件,一个已经写了36年程序的人,无论处于什么职位,处于什么境况,没有任何理由不为自己设计的产品继续写下去,没有任何理由不为它继续贡献代码。在我的眼里,写程序,与打牌,摸麻将,没有任何区别,都是一种智力劳动。任何一个BUG都只会让我精神倍增,进入一个不解决誓不罢休的状态。
何况,程序也是作品,开源之后,有人欣赏点赞star,还有来自全球各地开发者的fork、下载、使用,GitHub、微信群以及各种技术论坛,总有人问问题提建议,作为作者的我,看到这些,总是十分的开心,因为点赞、下载、问题都是对我劳动价值的最大肯定。
Do one thing and do it well!既然选择了做程序员,那就开心的写一辈子程序吧。
本文来自微信公众号:爱倒腾的程序员(ID:taosdata),作者:陶建辉
关键词: 写代码