什么是全栈工程师(机电全栈工程师)

新楼搬进一家创业公司,老板红着脸提着果篮上楼拜访,说刚拿到投资人的钱,准备扩充团队 。那时,他满怀抱负,期待着辉煌 。我当时就觉得,在这种环境下能拿到投资的公司做出来的产品应该是有前途的 。
没想到,几天后在电梯里见面的时候,发现老板已经没有了以前的风采,整天愁眉苦脸 。他在电梯里看到我,就问:“我记得你是做技术媒体的 。我有一个问题要问 。”
原来,他烦恼的症结在于:
公司拿到投资后,人员配备及时到位,业务拓展相当快 。没多久我们技术团队的人告诉我,目前业务发展势头比较好,现有的技术架构承受不了 。我们必须招聘一些技术人才来负责整体架构的规划和升级 。
我不是技术出身 。以前在各种论坛上听说阿里巴巴的P8和P9很牛逼,很强大 。我觉得这个水平的程序员应该能满足我们的需求 。于是我用年薪百万的offer砸了一个阿里新提拔的P8做我们团队的CTO,但是现在问题不但没有解决,反而变得更复杂了 。技术的人觉得他名不副实 。他认为我们雇他打杂,他工作不开心,两头乱 。
我问他,你觉得他哪里不好?
他只会写Java,我们用Go;
他只会搞后端,前端基本不懂;
他的算法不太好,只好推荐;
他只会写Web,我们要做App;
【什么是全栈工程师(机电全栈工程师)】他只知道用开源工具,我们要自己造轮子;
……
“那他好像没你想的那么好?”我问他 。
是的,我也没想到阿里P8这么水 。
“但你不是要招一个CTO,能在一开始就重构你的系统架构,偿还你的技术债吗?”
有什么区别?
“区别大了 。这是为了让前端和后端大都市,掌握各种编程语言,从事移动开发 。你要的是全栈,不是CTO 。CTO如何做好这些工作?你想让一个在大工厂流水线上拧螺丝的人为你堵住每一个漏洞 。不可能的 。”
我的钱浪费了吗?
“这不是浪费时间 。BAT这些大厂有一套精简的线上线下开发管理机制 。一般都能涨到P8,遇到水货的可能性比较小 。你的问题是需求和招聘方向不匹配 。你要招的是全栈工程师 。其他大厂的技术专家都是流水线 。区别很大 。听我说,和你一起分析 。”
大厂程序员1名:流水线上工作的螺丝工 。
软件工程作为一个行业,已经发展了50多年 。软件开发在几波互联网的冲刷下,已经成为一个非常完整和成熟的行业 。在一线互联网公司,如硅谷的谷歌、脸书、亚马逊,中国的阿里巴巴、百度、腾讯,他们的软件开发已经成为系统化的流水线作业 。
以前文提到的阿里巴巴为例 。作为中国最具代表性的互联网公司之一,阿里巴巴的软件开发已经形成了规模化效应,直接体现在软件开发模式上就是完整的流水线作业 。
流程化和标准化是大厂软件开发的最大特点 。一个完整的需求开发过程如下:1 .需求的预审和评估;2.概要设计和评审;3.编写和评审测试用例;4.发展;5.测试和错误修复;6.释放;7.版本总结/项目过程总结 。在这个过程中,每一个开发人员都各司其职,各负其责 。
很多新人加入技术团队后,通常会有一个资深员工作为师兄,帮助他们更快地融入工作,掌握相应的技术 。一般来说,刚开始的时候,新人的任务是从简单的程序开始写,比如迁移一些系统代码(从上游系统迁移到下游系统),做一些简单的小需求(比如修改bug,添加某个字段等等 。).
这些需求看似简单,实则不然 。即使涉及到一个改线,也需要大量的测试来覆盖 。很多人觉得这些应该是测试,但其实测试只能是黑盒测试,理解代码的程序肯定不如开发,所以这些细节上的测试都是开发自己做的 。所以如果一行代码经常改,开发可能要花半天时间用各种方法测试 。
不仅仅是测试,阿里的技术团队在2016年前后开始了一次大的组织架构调整,即将日常的运维工作交给研发,原来的PE(生产工程师)要么转行做工具平台开发,要么做产品规划设计的运维专家,一部分不能适应的不得不离开 。这是阿里运维从工具化到自动化最重要的过程 。
当这些关键词放在一起时,你可能第一眼会想到生产车间,但在阿里巴巴,这是其技术团队多年沉淀下来的有效的软件开发模式 。
相对来说,阿里巴巴是一家业务驱动的公司,项目是业务第一,这对团队来说不言而喻 。在阿里巴巴,这是一件需要多人开发,团队合作的事情 。对于那些有一万多R&D人的大型互联网公司来说,想要后端就需要找到前端和后端 。扩大规模后,他们需要专家而不是多面手 。


推荐阅读