全棧開發工程師就是個神話

InfoQ - 謝麗發表於2015-09-16

“全棧開發工程師(full stack developer)”一詞經常出現在企業招聘的崗位描述中。但 Hello Pretty 聯合創始人兼技術長 Scott Hadfield 在近日發表的一篇博文中指出,全棧開發工程師就是一個神話,即使不完全如此,用人單位也很難找到一個這樣的人。

為了進一步闡述這一觀點,他列出了下面這樣一個並不詳盡的“棧”:

用人單位對全棧開發工程師的預期遠遠超出一般人的能力。全棧開發工程師至少需要對棧中的每個元件都有足夠深入的瞭解,以便能做出明智的選擇及向管理層解釋。上圖所示的技能表每年每層都會增加新的元件,每隔幾年又會增加新的層。因此,Scott 認為,在招聘時尋找全棧開發工程師不僅不合理,簡直就是愚蠢。

不過,Scott 也承認,確實有人具備全棧能力。也有許多距離全棧尚遠,但仍然令人驚歎的開發人員、設計人員和專案管理人員。而有些自稱全棧工程師的人也僅能列出上述一半多的元件,就更不用說元件之間的互動了。於是,他寫道:

我看到的幾乎所有使用全棧一詞的情況(尤其是在招聘海報中),用人單位真正的意思只是尋找“令人驚歎的人”。

另外,Scott 指出,全棧開發工程師或許根本就不應該編寫程式碼,而應該更多地充當系統架構師或整合工程師的角色。在使用“全棧開發工程師”這樣一個流行術語時,應該說明是哪個“棧”,比如是 Web 棧,還是移動棧。

最後,Scott 總結道:

全棧開發工程師就是一個神話,不是因為不存在這樣的人,而是因為這個術語沒意義。

Scott 的博文在 Hacker News 上引發了激烈的討論。網友 andrewstuart 對“全棧開發工程師”的理解在參與討論的網友中具有一定的代表性:

我對全棧開發工程師的定義是,他們能夠自己構建和部署一個完整的、可以工作的應用程式,而不需要其他任何人的幫助。那意味著他們能夠編寫前端、後端程式碼,能夠配置伺服器,當然還能夠設計資料庫表。

不過,有網友認為運維技術也應該是開發過程的核心部分。如果花費大量時間構建的應用程式因為運維細節無法按計劃部署,那會導致大量的返工。

有許多網友都持有與 andrewstuart 類似的理解,他們認為全棧開發工程師並不是一個神話。BadassFractal 就是其中一例:

我就做全棧開發,包括 Ops(通過各種 CM 工具配置 AWS 並向上部署應用程式……)、DB(PostgreSQL 用了 5 年……)、後端(獨立構建類似 Rails 的框架……)、前端(可以綜合執行原始 DOM、Backbone 及 React)等所有這一切。

缺點是,我在其中任何一個方面都不是真正的核心專家,因此,其中任何一個領域中的任意一名優秀專家都比我強。

BadassFractal 的後一部分觀點頗具代表性。jvehent 也認為,一個人可以成為全棧開發工程師,但卻無法成為一名全棧專家。對此,有網友指出,企業應該給這兩種人都留有空間。另有網友表示,如果企業在招聘時只盯準了前端和後端均是專家級的開發人員,那非常可惜,因為在一個多人團隊中,他們全面的能力並不能得到有效的發揮。

網友們還有其它一些有趣的觀點。感興的讀者可以自行閱讀

相關文章