我眼中的 PingCAP 工程师文化|PingCAP 招聘季

从 2020 年 2 月 3 日开始,因为新冠疫情 , 我们全员接近一个月的时间 , 目前仍在分组单双号交替中 。在这期间,我参加了一次 TGO 组织的对于远程办公效率的线上讨论会,发现大家都多多少少对远程办公的效率抱有一些怀疑的态度 。虽然之前也断断续续在家里有过工作的一些机会 , 不过这次确实是时间维持最长的一次 。我个人的感觉是远程对于工作效率的影响是一定有的,但总的来说,至少对于我们的研发团队影响还比较有限 。其中的原因可能就是因为骨子里的工程师文化 。
开源协作文化
的工程师文化源于开源协作文化 。而开源协作文化得从的诞生讲起(1969 年),是第一个横贯美国大陆的计算机网络,是由美国国防部兴建的实验性的通信网络 。这一高速信息交换网络的出现,不止为后来的互联网奠定了基?。谴俳松⒙湓谑澜绺鞯?“黑客” 的协作,最终孕育出了开源协作的文化 。
在此开始的几十年时间里面,出现了许多耳熟能详的项目,像 AT & T 的贝尔实验室发明的 Unix,MIT 开发的不兼容分时系统(ITS),的 Emacs,以及为了反对 Unix 封闭而发起的 GNU (GNU’s Not Unix)操作系统 。这个时期经过了非常漫长的纷争以及演进 , 在我看来,当时的人们虽然通过网络已经建立了一些沟通交流,但是对于协作方面,还是处于原始的集中式,比如 ITS 是由 MIT 大学实验室研发的,Unix 是贝尔实验室研发的,Emacs 以及 GNU 操作系统是个人开发的 。
这一切是被一个叫 Linus的不起眼大学生终结的,1991 年他从 MINIX(一个用于教学的类 Unix 系统)开始开发了第一个 Linux 内核版本,发布在互联网上 。由此吸引力来自世界各地的互联网黑客们前赴后继的投入 Linux 的开发 , 今时今日,Linux 已经成为世界上最成功的操作系统之一 。
在我看起来,Linux 跟其他类 Unix 系统的不同之处在于它的协作方式,关键词就是 “开源”,“分布式协作” 。所有人可以修改所有东西,它吸引了数以千计的贡献者,大家互相不认识(也不需要认识),通过互联网交流 , 提交工作成果,然后最终被合并到一个地方 。这个模式,也最终带来了 Linux 前所未有的成功,它的成功不止是软件工程上的,在我看来更多是社会学意义上的 。
引用来自 《大教堂与集市》中的一段经典的话:
Linus的开发风格是:早发布、常发布、委托所有能委托的事、开放到几乎是混乱的程度,这些都令人感到惊讶不已 。在 Linux 社区里,没有建筑大教堂那样的安静与虔诚 , 倒更像是一个乱糟糟的大集市,充满了各种不同的计划和方法,而稳定又一致的一个操作系统就这么诞生了,这真是奇迹中的奇迹 。
工程师文化
的工程师文化,我认为是由分布式的开源协作文化所衍化出来的 。
面试的时候经常会有同学问我, 也有各地  , 跟其他公司的异地有什么区别吗?我认为主要是在做的事情上面,我们不会按地域划分团队职能 , 没有类似硅谷 TiDB 团队或者广州 TiKV 团队这样的情况,在,我们只有一个 TiDB 团队,也只有一个 TiKV,团队,团队成员或许分布在不同的地域,成员之间的协作通过网络完成,诸如 daily catch-up,,RFC 等等都是由网上完成 。有时候同事就坐我边上,我也会通过网络跟他交谈,这并不是因为我害怕跟他交谈,是因为上一秒可能我刚跟新西兰、北京的同事交流,切换频繁反而会带来低效 。
在之前我司 CTO 黄东旭写过一篇文章 《 的 5 年远程办公实践》 中提到了我们用的工具,包括在线文档协作工具、、Zoom、Slack,微信、企业微信、、JIRA、、 这些远程协作软件的成熟 , 更是让我们的效率有了大幅度的提升 。所以这一个月来,跟去的协作效率相比,并没有感觉到明显的下降,因为对于我这种在广州分部的员工来说,平时跟团队同事的协作本来也是形式的 。反而是因为生活工作的界限模糊了,工作效率反而更高了一些(如何避免过劳是另一个话题) 。
另外,的文化,也并不是所有的同学都在家里办公 。这主要是考虑到一些现实原因,包括上面提到的 1 on 1 需要面对面的时候可以更加感受到大家的情绪 。还有一个最重要的原因,也是现在我在家办公了一个月感受最深的一点是:生活跟工作的界限需要一定的区分 。
“小黑屋”
大家仔细回想一下自己感觉效率最高的项目协作模式是什么?在我加入之前,我对这个问题的回答是:小黑屋式封闭开发 。
拉上前端,后端,产品 , DBA,运维等等相关的同学组成一个项目组 , 大家收拾好家当,统一搬到一个 “小黑屋”(办公区域)里面 。产品转头就能找到开发的同学,前端同学可以要求后端同学帮助自己调试测试中遇到的接口问题等等 。
每天开始工作以前,大家站在一起过一下昨天的进展,以及遇到的问题 。项目经理每天把一天中需要完成的任务贴在白板上,让每个人认领 。似乎目前看起来,整个协作方式非常的高效 , 确实在不少公司里面,“小黑屋”就是作为攻关的方法 。
不过这里忽略了一个很重要的问题,如果这个项目足够复杂,需要协作的人一个 “小黑屋” 放不下;又或是更重要的一点:如果最适合做此项目,或者最有兴趣做此项目的人,并不愿意呆在同一个城市,或者他有其他更让自己舒服的效率更高的工作方式——这些问题都会导致 “小黑屋” 模式会失效 。
【我眼中的 PingCAP 工程师文化|PingCAP 招聘季】这些问题正是所在意的问题 。在过去超过 5 年的摸索中,我们也得出出了一些比较高效的项目远程分布式协作方法以及经验 。如果大家有更多的兴趣的话,欢迎加入我们 。