写点什么

作为字节跳动第六名前端,谈谈公司扁平化架构育人的道与术

2020 年 5 月 29 日

作为字节跳动第六名前端,谈谈公司扁平化架构育人的道与术

张文茂 2014 年加入字节跳动的时候,是全公司第六名前端。


从 2014 年到 2020 年的今天,这 6、7 年时间中张文茂在字节跳动的经历,其实也是字节跳动整个前端团队、甚至整个公司发展的一个缩影。借GMTC 全球大前端技术大会即将召开的机会,InfoQ 记者日前采访到字节跳动产品研发和工程架构部前端技术团队负责人张文茂,跟他聊聊他在字节跳动前端团队的经历和感悟。他也是本次 GMTC 全球大前端技术大会的联席主席


大前端赛道一直未变


字节跳动的组织架构中,没有按业务线划分的事业部,只有三个核心职能部门:技术、用户增长和商业化,分别负责留存、拉新和变现。张文茂 2014 年加入字节跳动团队不久后就开始去做用户增长。


“我是用户增长团队比较早期的成员,跟张楠(原西瓜视频总裁,现在为飞书负责人)一起,把今日头条从 DAU 一千万量级逐步做到七、八千万量级。那是我在字节跳动的第二段经历。”


随后的 2016 年底,张文茂成为一名技术 Leader,管理今日头条、头条视频(也就是后来的西瓜视频)的前端团队,以及用户增长。


“从 2018 年之后,带前端团队的同时,我也在做小程序业务、头条号业务、小说业务。到 2020 年,主要在带产品研发和工程架构部前端技术团队。”


对于张文茂来说,这么多年下来他在字节跳动大前端职能方向的赛道没有变过,一直在跟公司一起在职能方向上去成长。


“2014、2015 年带用户增长团队的时候,我是服务端和前端一起带;到了 2017 年我就比较专注的去带前端团队了,这其间我经历了前端团队从三、四十人规模发展到如今三、四百人;然后 2018 年到 2020 年,我负责的小程序、头条号、小说其实都是业务方向上的职能,到现在我的精力又重新专注在前端团队了。”


仔细看张文茂目前所负责的字节跳动产品研发和工程架构部前端技术团队,其实依旧是一个产品侧、中台侧、工程侧三者合一的完整和健全的职能团队。“我所负责的并不是某一个业务方向的前端,所以如何把用户业务、中台、基础工程这三个方向的前端团队协调好,吸纳到非常优秀和合适的人才,是我目前以及未来一段时间要去专注考虑的事情。”


扁平化架构的优势和挑战


对于张文茂来说,虽然大前端赛道一直没变,但是服务端、前端的切换,产品、业务、技术的多维度管理,其实还是非常考验个人适应能力和技术、管理水平的。这也让记者想起此前采访字节跳动一位前端工程师的时候,他所提到的:“字节跳动组织结构因为非常扁平化,所以对程序员技能要求很高,工程师需要有很强的自我驱动能力。”虽然身为前端,但是这位工程师干过包括后端在内各种岗位的工作。


在张文茂看来,无论他自己的经历,还是那位前端工程师的经历,都算字节跳动的一大特色。“职能化的组织形式,为业务快速落地提供了灵活性。在职能化组织的同时,我们内部也是项目制的,技术同学要深入参与到业务去,业务发展好了,能得到相应的正向激励。我们本质是取职能、BU 模式各自的优点。”


字节跳动是扁平化的组织架构,Leader 的层级不深。如果像很多公司一样 Leader 往上还有很多层,那么信息传递的损耗会非常大,信息也容易失真。“不过字节跳动扁平化架构最大的挑战其实是对 Leader 的,字节跳动很多 Leader 一上来就得管理十几人、二十几人的团队。我们组织架构的灵活性决定了你得能经得起折腾,换到任何领域你都确实能把事情做好。这就是整个字节跳动做事儿的风格。”张文茂特意强调。


字节跳动这种扁平化的组织架构另外两个挑战一是成员对组织的认同——原先合作的团队调整到一个新的方向,会有认同感上的危机;二是不一样技术栈带来的挑战。


对于组织认同,张文茂认为困难不大。“我们尽量物色愿意去接受改变的人加入团队。所以我们的团队更希望年轻同学加入,他们不害怕改变,愿意拥抱变化。”


对于技术栈的挑战,张文茂认为早期时候团队比较分散,可能这方面会存在困难。但是现在很多开发工具都是全公司复用,公司技术委员会定期把全公司的重要技术方案统一输出,尽量不去重复造轮子,也没有了技术栈上的困扰。


组织架构的调整是因为事,不是因为人


目前字节跳动产品研发和工程架构部前端技术团队有几百人,主要工作包括用户端业务、中台业务和工程向业务。因为字节跳动独特的机制,前端团队的重点工作围绕公司战略进行侧重。对于字节跳动当前最为看重的国际化战略以及教育方向战略,张文茂介绍这也是他们团队的工作重点。


不过张文茂也特别强调:“组织架构的调整是结果,不是原因。比如我们现在要有专人去投入到国际化和全球化当中去——这是因为事,而不是因为人。国际化就是一个事,就是我们接下来要去投入的事情,我们有一些人的精力必须要专注在这个事情上,要去组建海外团队,要去把现在的一些产品调到外面去,由美国、新加坡、印度团队去做。”


从 2018 年开始,字节跳动就在做类似阿里中台这样的事情,内部会出现很多中台型团队。在这其中,前端团队人员如何成长,如何通过前端微服务、全栈技术去把复杂业务中台做好技术沉淀和积累,如何跟设计团队做好沟通——快速做中台建站技术方案,这些都是张文茂当前和未来的重点。


当然在整个字节跳动,除了张文茂所带领的技术向前端团队之外,商业化方面也会有独立的前端团队,用户端的抖音和火山视频也会有独立的前端团队。根据公司需要,前端团队会去做灵活的动态调整。


从 0 到 1 做小程序


在过去 6、7 年当中,让张文茂印象最为深刻的是从 0 到 1 做小程序项目的经历。这段经历由点及面,也凸显了字节跳动做事的风格。


字节跳动对小程序的定位在于,小程序生态需要能够为公司引入更多内容和服务。它不仅仅是一个从渲染到研发的解决方案,更多要把适合头条、抖音,适合整个产品矩阵的外部伙伴引入进来,增加自身内容的丰富度。


在生态建设上,张文茂认为开发者还是“用脚投票”的。第一就是你的研发工具够不够好、够不够强;第二就是你的分发渠道和渗透率够不够高;另外就是你的商业转化是不是够强。在字节跳动内部,还是非常强调服务化思维的。“不只小程序,其他中台团队都是这样,中台团队要想产出价值,一定要落地在业务团队里。你把业务团队服务好了,才会有更多业务愿意对接你。”


这也引出了前端同学职业发展的一个问题。“要想跟业务走得近,先从理解你的用户开始。你要知道做一个功能的目的是什么、效果有没有达到预期。只有关注这些,才能从一个纯做端上交互体验和开发的工程师,变成一个真正和业务强绑定的研发。”


“前端的好处在于我可以用统一技术栈去做更多的事情。比如运营项目、活动项目,前端同学完全可以从前端到服务端开发完全承担起来。只不过有些公司在招聘的时候,会降低自己的招聘标准,觉得前端就把前端页面的事做好就行。而我们在招前端同学的时候,我们要招的是技术迁移能力比较强的人。”张文茂强调端上同学一定要去关注数据,关注用户反馈。“要知道你做的事情价值在哪里。你做的运营、活动不要只做端上的一部分,要从前到后都能吃透,你就真正成为这个业务当中的一分子了,而不只是一个前端或者一个客户端。”


关注前端领域三个技术趋势


提及当前所关注的大前端领域的技术趋势,张文茂坦言都跟自身业务强相关。“第一是中台建站,这是提高人效的比较好的方式,不同公司都有自己的尝试,我们也有自己的尝试。对于中台的建站方案,北京、上海、厦门、杭州都有团队在一起做。”


第二是跨端的动态化方案。虽然 Flutter 如火如荼,但对于前端技术人员来说,要去完整接受 Flutter 其实是需要一个过程的。对此张文茂有自己的想法:“我们还是希望像阿里开发自己的 Weex 一样,能有字节跳动更好的跨端方案出来。”从团队角度来看,字节跳动跨端方案不仅跨地域团队,而且还跨不同业务单元,除了前端团队外,客户端,渲染层同学也会一起合作。


在张文茂看来,Flutter 越来越像早期 RN,褒贬不一。“但是我们还是需要给这些新技术一个展现和表达的机会,让它能真正为移动端研发向生态化发展带来新的契机。无论它能不能取代 Web,对于 Native 客户端来说都是好事,我们需要高调地告诉客户端研发同学去了解和学习。”


张文茂关注的第三个技术趋势,是用游戏和游戏相关技术做产品。“我们原来没考虑过用游戏引擎去做互联网产品,因为游戏方向的很多技术都被当时的商业化给掩盖了,但其实其中很多技术非常适合前端工程师去学习和理解,甚至直接上手去用。比如 WebGL、Three.js、Layabox、白鹭引擎… 我希望把这些技术方案跟我们现在的一些前端场景结合起来。”


提及技术趋势,为什么很多前端同学会频频抱怨学不动了?在张文茂看来:前端领域如果求安稳,就不用多学什么了,就死拿那一份工资,就做那些事情就好了,但是这样的话终归会被淘汰。服务端和客户端也是如此——要不就是你自己做烦了,要不就是你没有成长、公司烦了。


“你要想做更多,想让自己的价值充分发挥出来,自然而然要付出,做哪个端都一样。好处是在于前端的 Web 生态是很统一的,生态中大体上的语言也是互通的,很多都是最基础的东西,其实没有什么难度。”


嘉宾介绍:


张文茂,字节跳动产品研发和工程架构部前端技术团队负责人,负责字节跳动旗下今日头条、西瓜视频、Helo、皮皮虾、番茄小说,以及在线教育、游戏、用户增长、业务研发平台等多个方向的前端团队管理工作。


2020 年 5 月 29 日 07:002813

评论

发布
暂无评论
发现更多内容

第四周总结

Karl

命令行一键启动Hadoop集群

大数据学徒

大数据 hadoop hdfs YARN Big Data

万字长文带你手撕Spring源码,解决循环依赖

小隐乐乐

源码解析 Spring Bean

学习Rust,我的一些体会

Kurtis Moxley

编程 rust 随笔杂谈

可读代码编写炸鸡八 - 变量兜兜转转像是一场梦

多选参数

代码 代码组织 代码规范 可读代码编写 可读代码

看动画学算法之:排序-选择排序

程序那些事

数据结构 算法 动画

区块链想要拥有互联网级的用户体验,如何从应用层与公链去改进?

CECBC区块链专委会

个人博客网站搭建

北漂码农有话说

ARTS Week8

时之虫

ARTS 打卡计划

生活困境

落曦

隐私计算:实现数据价值释放的突破口

CECBC区块链专委会

密码学 政策扶持 隐私计算 发展现状

week7

不在调上

CECBC区块链专委会副主任吴桐受邀成为伏羲智库兼职研究员

CECBC区块链专委会

区块链技术 吴桐 商务部CECBC 伏羲智库 政务链

一致性哈希

Karl

kubernetes 集群安装(kubeadm)

小小文

Docker Kubernetes 群集安装 etcd

生活不止眼前的代码,老程序员现摘现炒苦瓜吃苦的周末时光

陆陆通通

程序员 美食 舌尖 程序员生活

那些好用的命令

北漂码农有话说

云原生技术栈的关键技术

李英俊

go 云原生

LeetCode 题解:1051. 高度检查器,JavaScript,先排序再比较,详细注释

Lee Chen

LeetCode 前端进阶训练营

Windows Sandbox

Dare Devor

Sandbox Virtualization

看动画学算法之:排序-归并排序

程序那些事

Java 算法 排序 归并排序

架构师训练营架构第七周总结

Cloud.

【总结】性能优化

小胖子

番外篇:新鲜上市的Unicorn - Pinterest的数据系统

顾仲贤

解决火狐新窗口打开网页被拦截问题

Lee Chen

前端进阶训练营

典型大型互联网系统使用的技术方案

Karl

区块链技术助力打造新公益样板

CECBC区块链专委会

技术选型

Karl

redis系列之——数据持久化(RDB和AOF)

诸葛小猿

redis 持久化 aof rdb

Swift十年

SwiftMic

Swift十年

性能压测的时候,系统响应时间和吞吐量如何变化,为什么?

不在调上

作为字节跳动第六名前端,谈谈公司扁平化架构育人的道与术-InfoQ