一、為什么需要全棧工程師呢?我想先通過下面的介紹來回答:
1)企業希望員工具有全局性思維
現代項目的開發,需要掌握多種技術。互聯網項目,需要用到后端開發、前端開發、界面設計、產品設計、數據庫、各種移動客戶端、三屏兼容、restFul API設計和OAuth等等,比較前衛的項目,還會用到Single Page Application、Web Socket、html5/css3這些技術以及像第三方開發像微信公眾號微博應用等等。
Web前端也遠遠不是從前的切個圖用個jQuery上個AJAX兼容各種瀏覽器那么簡單了。現代的Web前端,你需要用到模塊化開發、多屏兼容、MVC,各種復雜的交互與優化,甚至你需要用到Node.js來協助前端的開發。
所以說一個現代化的項目,是一個非常復雜的構成,我們需要一個人來掌控全局,他不需要是各種技術的資深專家,但他需要熟悉到各種技術。對于一個團隊特別是互聯網企業來說,有一個全局性思維的人非常非常重要。
2)企業希望降低內部溝通成本
項目越大,溝通成本越高,做過項目管理的都知道,項目中的人力是1+1<2的,人越多效率越低。因為溝通是需要成本的,不同技術的人各說各話,前端和后端是一定會掐架的。每個人都會為自己的利益而戰,毫不為已的人是不存在的。
而全棧工程師的成本幾乎為零,因為各種技術都懂,胸有成竹,自己就全做了。即使是在團隊協作中,與不同技術人員的溝通也會容易得多,讓一個后端和一個前端去溝通,那完全是雞同鴨講,更不用說設計師與后端了。但如果有一個人懂產品懂設計懂前端懂后端,那溝通的結果顯然不一樣,因為他們講的,彼此都能聽得懂。
3)創業公司希望“一個蘿卜幾個坑”
對于創業公司來說,全棧工程師的價值是非常大的,創業公司不可能像大公司一樣,各方面的人才都有。所以需要一個多面手,各種活都能一肩挑,獨擋多面的萬金油。對于創業公司,不可能說DBA前端后端客戶端各種人才全都備齊了,很多工作請人又不飽和,不請人又沒法做,外包又不放心質量,所以全棧工程師是省錢的一妙招。雖然說全棧工程師工資會比一般的工程師會高很多,但綜合下來,成本會低很多。
所以,全棧工程師出現的背景就是——當下互聯網興旺,企業希望能快速迭代出版本,那么阻礙團隊的不就是員工的能力、溝通、視野嗎?同時,大量的創業公司冒出來,創始人整天拉投資,當然希望內部員工能夠搞定一切。
二、那么全棧工程師面臨什么困境呢?
技術有兩個發展方向,一種是縱向一種是橫向的,橫向的是瑞士軍刀,縱向的是削鐵如泥的干將莫邪。這兩個方向都沒有對與錯,發展到一定程度都會相互溶合,就好比中國佛家禪修的南頓北漸,其實到了最后,漸悟與頓悟是一樣的,頓由漸中來。
如果一個公司不太懂全棧工程師的價值,那么全棧工程師的地位將會很尷尬,說得不好聽一點,全棧工程師就是什么都會,什么都不會。曾經有一次面試,對方問很基礎的問題,他答不上來,但他能做出產品,也知道什么是怎么一回事,他也不會犯那些錯誤,可他就是答不上概念,要考倒他非常容易。所以在應聘面試的時候,有些時候會吃虧,他可能會不如哪些在某一方面鉆得很深的人工資拿得高。