最新消息:欢迎访问Android开发中文站!商务联系微信:loading_in

为什么一个网站需要那么多技术人员?

热点资讯 loading 392浏览 0评论

作为互联网从业者,这么多年来经常会碰到一个灵魂拷问,那就是“为什么一个网站需要那么多技术人员?”,尤其是提问者如果再追问一下“听说几个相关专业的学生一个课程的作业就是开发一个网站或者app,那为什么现在主流的网站或者app背后的公司,动辄就有上万人的技术团队?”。我每次听到这个问题,脑子里就能迅速涌出非常多的解释,但是大多都是专业性名词,每个名词背后又都需要一个完整的逻辑去解释。然后就一时语塞,不知从何说起。

最近偶然又想起这个问题,突然觉得并不是因为专业名词多,从而难以解释,而是需要找一个容易理解的角度展开才能说得清楚。不然就算你把整个公司的组织架构放在对方面前,对方也只能看到有多少部门多少人,但是依然不理解这些部门存在的原因,那就依然没有回答这个问题。

所以我想通过这个文章来尝试解答下这个问题,偏科普性一些(忽略或者合并了一些细节,便于理解),以后要是再碰到这样的提问,我就可以潇洒的一个转发,顺便求个关注。本文虽然长一些,可能需要一些耐心,但是图文结合,并且概念及措辞上考量再三,通篇更像在讲一个故事,讲一个公司是如何成长起来的,各个阶段会碰到什么问题,相信可以给到你一些干货。如果你时间有限并且有计算机知识背景,也可以通过浏览图片基本get到本文核心内容。

本文以研发网站为例,同样也适用于研发app。另外,本文更多解释为什么需要那么多技术人员,而不是为什么需要那么多人。

让我们一起来看一看典型互联网公司的成长之路。需要提前说明的是,以下的图示中,橘色部分表示此阶段相比上阶段的变化,需要重点关注。

【初始阶段】

这个阶段往往是一个idea刚刚落地,也许只有一两个功能,还没有任何用户。这个时候的网站设计非常简单,一共就三个组成部分,网页,后端服务,数据库。网页就是你看到的东西,后端服务就是处理你在网页上的各种操作,数据库顾名思义就是存数据的。比如你在网页上更新电话号码,后端服务检验你的电话号码是不是11个数字并且告诉数据库保存下来,然后数据库就记录下来了。这样的三块内容,一个网页工程师,一个后端工程师就可以搞定了,也就是一个作业的难度。这样的设计也就能够应对网站初期非常简单的功能,这才刚刚开始。

【增长阶段】

这个阶段往往是上一个阶段上线后获得了一些用户的肯定,得到了一些用户增长,无论是从用户的反馈也好还是创始人的判断也好,网站需要开发一些新的功能了。这个时候就需要更多的前端和后端研发工程师加入了(网页工程师称为前端工程师)。此外由于功能变多以及变得复杂,需要招募一些专职测试的同学,他们对于网站功能是否满足预期有更专业的判断能力,所以这个时候研发的过程也会加上测试的环节,测试通过才能上线。再来由于功能变多,需要越来越多的服务器,那么需要招募专门管理服务器的运维同学,他们对判断机器性能,提高机器稳定性有更专业的能力。

【发展阶段】

这个阶段往往是得到了一定的市场肯定,有了一批忠实的用户,现实表明有继续发展的潜力。这个时候在网站能力上,还是像上一阶段一样持续发展,但是速度会变得更快,在持续招募前后端研发工程师外,测试和机器运维已经无法人肉支撑,这个时候公司会开始使用,加工一些现成的测试和运维工具,或者甚至自己开始做一套。这就引入了测试工具研发工程师和系统运维研发工程师。这个时候的一个里程碑现象就是会慢慢往自动化方向去探索,毕竟持续招人的成本和低效的人肉操作是不可持续的。此外,数据库的性能往往是整个设计里最短的那块板,在数据量和访问量与日俱增的情况下,需要引入专门的数据库工程师来保障数据库的性能能够持续跟上业务的发展。

【爆发阶段】

这个阶段往往是形成了一定的市场品牌,用户量开始激增。大部分的公司都很难撑到这个阶段,需要实力和机遇并存。随着用户量的激增,不怀好意的用户也开始悄然靠近。对黑客来说,他的核心目标无非两点,要不就是直接通过漏洞获取网站的机密信息,要不就是攻击你的网站让你垮掉以此来勒索你。这个时候网站就需要招募专业的安全工程师来对抗他们,他们需要熟知攻击的手段,梳理网站可能存在的安全隐患,或使用或自研防护的工具。他们需要了解从硬件到软件,从操作系统到应用系统的各种细节,是技术功底非常扎实的一群人。

【数智阶段】

数智阶段指的是开始分析用户在平台上留下的大量数据,从而提供个性化的服务。你喜欢运动给你推各种运动的文章或者健身产品,你刚生完孩子就给你推各种育儿文章及母婴用品。年龄x地域x性别x爱好x性格x背景,这一系列的维度就能深刻刻画出一个具体的人。此外还需要产出各种维度的报表供高管决策,供财务分析,供市场研究等等。这个时候公司就要招募非常多的“数据研发工程师”和“算法工程师”,前者更注重数据的提取及整理,后者更注重挖掘数据背后不易被看到的因果关系。

其实公司开始走向数智化后,远远不只是招这两个角色的同学就够了,还要建设一系列技术能力。数据的建模及分析更是一门大学问。一个公司的数据团队往往就是一个一级部门。甚至有些行业的公司,数据部门占比超过50%。这么一来你就明白为什么你会听到那么多关于数据的社会话题,比如“大数据时代”,“数据的隐私”等等。数据的分析好多年前还只是辅助性的功能,现在已经成为企业前行的眼睛,所以需要很多人很多资源的投入。

【自研阶段】

自研阶段是指公司开始要自己研发各种基础的系统。你可能会疑惑,上面讲的各种功能的建设难道都不是指自己研发的?这就要展开再讲一下一个公司发展过程中“用”和“造”的关系。

在公司的初期,为了验证方向本身是否有足够的价值,除了后端服务及网页以外,基本上使用的都是当时现成的技术和工具。这是因为时间就是一切,快速抓住市场机会,然后展开影响力站稳脚跟是关键。此外也没有过多的资金去深入技术细节搞研发,能够提供的薪资水平和公司的影响力也无法吸引非常资深的技术人加入。但是随着公司逐渐成长,很多这些取之即用的产品不再适合,非常重要的几个原因包括:

  • 安全:公共的技术或工具能被所有人研究,既能一起研究发展壮大,也能一起研究其中的漏洞。
  • 特性:公司也许有自己的特点,公共的技术或工具无法满足,比如公司的特点是数据量非常大,或者性能要求非常苛刻。
  • 成本:公共的技术和工具也分为免费的和收费的,收费的东西当然好用,但是当使用的规模扩大,成本也是陡增。这里就想提一句各种互联网视频公司,包括不限于优酷,爱奇艺,腾讯视频等等。这些公司之所以看似无情的收取各种会员手续费,然而背后是存储及传输这些内容高昂的成本。即使很多的服务和设施(从软件到硬件)已经自研,但是成本依然高的可怕。再加上现在的影片数量越来越多,分辨率越来越高,成本更是成倍增长。

所有此时,公司就要招募大量的,面向不同自研产品的技术人员。不要小看这部分成员的规模,市面上每个公共产品其实都足以支撑起一家公司,如果要自研多个公共产品,就需要招募非常多的技术人员。

【科研阶段】

科研时代指的是公司开始投入资源去做科学研究方面的工作。这些内容可能是当下热点的技术话题及研究领域,也有可能是计算机领域亘古不变的一些主题。例如当今的热点话题可能包括人工智能,虚拟现实,无人驾驶技术等。亘古不变的主题包括持续的性能提升,高性价比的存储方案,安全攻防等。

你可能会问,为什么需要花那么多资源去做前沿领域的研究?首先,当公司步入这个阶段,说明面临的很多问题基本上已经没有现成的解决方案了,公司需要自己去创新去研究。其次,公司一直保持着忧患意识,前沿的技术领域背后往往蕴藏着革新。革新不是升级,升级的结果是让产品呈现多种质量,大家各取所需。而革新带来的是淘汰,原来的竞争者会彻底无法立足。举个例子,升级就是一代又一代的手机芯片更快,照相效果更好,但是也更贵。你可以根据自己的实际情况选择性价比最优的。但是革新是指现在的触摸屏手机全面取代原来的键盘式手机,你现在还能看到有人用键盘式手机吗?

公司走进了科研阶段,是一个里程碑。这意味着公司需要带领这个行业往前走,它是整个登山队伍里最前面的那个人。公司开辟了一块土壤给有理想,有技术信仰的科研人员乃至科学家,让他们试错,精进,开花,结果。

【阶段总结】

这基本上就是一个互联网公司技术发展的路径。主线可以简单的概括为:由规模导致问题,由问题驱动进步。所以我们也常说,规模决定生产力。一个网站在服务一两个用户的时候,确实一到两个技术同学就够了,但是公司要服务上亿人并且希望持续存活下去,那就需要足够的人和足够的资源来支撑了。

如果将公司发展带来的技术团队规模变大称之为纵向发展,我再来讲一下横向上的扩展。

【横向管理】

在纵向发展上有上述提到的各个阶段,不同阶段需要引入不同的角色解决碰到的问题,在介绍这些角色时,我都使用“工程师”的职称去描述,更多想表达的是需要招募解决当时当下问题的落地者。但是在整个网站设计到一定复杂度的时候,只有落地者是不够的,这时候就需要有一类人,这类人在一线奋战过,能够看到当下存在的一些普遍问题和矛盾,可以分析原因制定策略和计划,并且推动落地。这类人其实就是我们常提到的“架构师”,也是普遍意义上的技术管理者。我们常听到的一句话说:“不要只顾埋头赶路,还要抬头看路”。架构师就是看路的那群人。他们持续考量问题的严重程度,持续挖掘核心矛盾,未雨绸缪。其实这些同学一直存在于组织中,随着公司技术的复杂化,变得越来越多。

【其他成员】

一个网站或者说一个互联网公司背后的技术团队为何会持续扩张,相信通过上面的介绍你已经可以了解一些了。我再延展一下这个话题,对于一个互联网公司来说,技术团队其实只是其中的一部分,当然,是很大的一部分,但是整个公司能够持续的发展向前走,还有非常多重要的角色。缺少了他们公司依然玩不转。他们也是隐藏在你们可以看到的每个网页,每个app功能背后不可或缺的成员。

【结尾】

这就是我对“为什么一个网站需要那么多技术人员”这个问题的回答。其实也同样回答了“一个互联网企业的技术板块是如何丰富起来的”。当然,整个分析比较概要,如果要深究细节怕是几天几夜都说不完,太过详实也可能违背了本文原来的用意,但是基本上是一个比较全面的演绎和说明了。

其实从本文我们也可以推导出很多问题的结论——比如为什么很多互联网巨头还需要持续招募技术人员?为什么市场上的互联网技术人员已经很多但还是供不应求?还有,为什么不要问软件工程师你会不会修电脑?(因为工程师分很多种啊!养鸡的不一定会养猪啊!)

最后再感慨一下,一个公司的发展,其实是一个行业发展的缩影。去看一个公司碰到的林林总总的发展问题,你就会感慨到行业前行和突破的不易。我们在互联网上享受到的各种便捷和新鲜玩意儿,不是圣诞老人的礼物,是很多工程师们的心血结晶。一个公司的发展和一个行业的发展都需要天时地利人和。成功学无法帮助我们成功,但是懂得敬畏和感恩,我们每一步都能走的无怨无悔。

最后的最后一个小tips,你可以收藏本文,将来回顾时,通过快速浏览文中的图片就可以马上回忆起全文概要了。

转载请注明:Android开发中文站 » 为什么一个网站需要那么多技术人员?

您必须 登录 才能发表评论!