13,639
社区成员
最近,一位曾在一家在美中企(TikTok)工作了一年多的华裔(之前任职于 Snapchat 和 Facebook),在 YouTube 上发布了一个视频“5 crazy things about working for Tiktok(why we quit our PM and engineering jobs)”,从五个方面总结了他从中国企业里学到的经验。
YouTube 地址:https://www.youtube.com/watch?v=RNUrZFkHXlo
他的观点在 Twitter 上吸引了大批对中美或中国科技感兴趣的人,网友认为该帖子很准确地描述了中美工程文化差异,我们将这些观点翻译了出来:
第一点:很多西方企业都会写单元测试,每个人都知道这是非常基本的事情。但这里的中国工程师们不需要编写单元测试!每项代码提交都指望 QA 部门的手动测试,团队在提交之前手动测试每个 code commit 提交。
你可能认为这完全是疯了,为什么不写单元测试?利用 QA 进行测试,实际上是希望工程师们关注于功能,并快速启动,写测试就完全交给了 QA。
而且让人震惊的另一件事情是,代码合并请求也不需要批准。在一个十万人的企业里(这不是一个小型初创企业),没有单元测试也没有代码审查,仅依赖于 QA,但这却是“有效”的方式!也没有发生过重大宕机事件。
中国企业的产品团队往往人员更多,也更倾向于依靠运营团队推动业务增长;这一点与美国被动加数据驱动的增长思路不太一样。我注意到中美科技企业之间的主要差异,是中国企业对人力的依赖性更高,这个优势也是中国企业得以迅速占领新市场的核心原因。
第二点:在中国企业,很少见到一对一式的会议,因为扩展性太差了。各个团队内部很少进一步细分,所以需要跟更多同事开展交互。经常见到那种典型的、自上而下的会议,一开就是 90 多分钟,期间 60 多人同时参会。大多数情况下,都是 1 个人在前面讲、剩下的人在翻看会议资料。很少有欧美公司里常见的那种畅谈会或者讨论会。
第三点:为了防止猎头挖人,这里并不公布明确的组织结构体系。组织结构高度扁平,某些工程经理需要接手 200 多份绩效评估报告(未经划分!),有些报告提交者甚至不知道自己的顶头上司长什么样子。
第四点:从流程与执行上来说,中国企业里的屁事不多,大家都在低头忙工作,很少会去传闲话或者搞道德评判。另一方面,中国企业在流程设计上还不够成熟。文档与改进团队的同事们无论做得多好,但很难得到激励。也没人审查工程师们的代码。
第五点:从工作与生活的平衡上来说,美国团队不需要 996,但要求必须适应中国时区。这真挺难的,也是造成人员流失的主要原因,我接触过的所有 PM 都在工作一年后离职了。
中国的 STEM(科学、技术、工程与数学)专业博士是美国的四倍,但技术岗位反而比美国更少,所以这里的竞争烈度要高于美国,大家把这种状况称为“内卷”。中国的同事们很怕自己失去技术优势并被社会的发展甩在身后,所以他们才能迸发出巨大的工作能量。
你怎么看? 你的公司有这些问题么?
公司高管都忙着用项目捞钱,都在赶时间绩效,一般没人关注你的底层逻辑是否正常,时间就是金钱,你多测试一会,都是觉得你浪费公司金钱,然后一直卷啊卷啊卷的,各种加班,各种批判。所以,测试与质量很重要,但干得再多也没有人重视。
都是那句,只要不出事故,谁会浪费时间金钱去管?这是大多企业的共有属性与准测。
很简单,当你刚刚开发完,正准备写单元测试,结果跟你说需求变更,这怎么写。
也不一定是问题,要看我们实际情况。写单元测试代码就一定快乐吗?
我再补一刀,有多少做代码质量扫描的。
这是在嘲笑postman不够优秀,还是swagger不能测试。干嘛写哪些没用东西
不都提倡敏捷开发吗
代码都写不完 哪有时间写单元测试呀
确实很真实,我们就没有单元测试
畸形发展下的产物
这单元测试有些公司还是会要求的,不过一旦业务多起来就随意写不写了
时间不够,没空写,业务代码都赶不急,还谈测试代码呢。。。
中国的需求朝令夕改很正常,而且老板要求降低成本,提高产量。所以单元测试都是程序员自己测试一下就行。一旦发现BUG,不是严重的马上修复就一下进行。
因为国内总改需求,改动的成本大头是开发承担的。所以我为啥要写单元测试?写完了需求改了,我还得改单元测试。
国内人多,功能先跑起来,验收拿钱,后面维护的事堆人力就是,况且这项目就一定是拿来用的?不能是拿来投标的么,天真了
太浮躁,只看重快速产出,速度第一,质量是次要的。大环境都是如此,除了涉及到国家安全的行业。
中国程序员培养模式不一样,学会语言直接上去干功能,谁管质量流程效率,东西做出来直接用,出了问题再说。极限编程?测试驱动开发?什么玩意没听说过
文档与改进团队的同事们无论做得多好,但很难得到激励
兼职负责过标准文档的人看到这里真的会谢
贴着排期完成的任务,哪有时间写单元测试