什麼是「全端工程師/開發者」?當一個人能獨立完成一個產品,所需技能點不單只是「程式設計師」!|專家論點【黑貘】
在上一篇提到工程師有三種,事實上這三種並沒有優劣的差別,甚至是有各自的 Roadmap 與技能點樹,不應該是從「實作」到「管理」那樣的階層,而原始的標題是「工程師有三種,你想當哪一種?」,不是「工程師其實被分為這三種『階層』,而非『類型』?」,而這樣的標題是總編設定的,我本身也不反對,因為這也是很不錯的反思。
而如原文所說,這是 25 年前的想法,雖然現在已經不完全適用,因為 25 年後的今天已經有不同的想法,但現在還不急著推進到現在,因為在 2006 年的經驗之後已經有不一樣的想法,其中有一個很重要的時間點,就是 10 年前(2012年)時,有人提出一個很重要的觀念,也就是 Fullstack Developer(全端開發者)。
在 20 年前,大約 2003 年的時候,當時有一個有趣的經驗,在那時我請朋友幫我寫了一個簡單的 GSLB (Global Server Load Balance) 的系統,也是用最簡單的 DNS 之間的回應時間與 Routing(路徑)去實作,以現在的 CDN 角度是一個非常陽春的系統,但當做出來後,不只發揮到讓使用者體驗速度變快,更重要的是當建立兩個以上的機房後就不會被 IDC 綁死。因為可以輕易的調整權重或是預設值改變流量,所以有了很大的 Bargaining Power(議價能力)。
當時發現,原來一個工程師若掌握了技術能力,且這個能力讓公司或是自己有更大的彈性空間,就可以有更高一階的視野看到更多的方向,其中也包含若是一個工程師從 Business Logic(企業邏輯),到底層功能的可能性(尤其是有可行性分析),如果可以更加理解,不只是能幫公司找到新方向,還能為自己開拓更廣的未來。
而在 2006 年時,經過幾次 SourceForage 專案的失敗後,也慢慢的摸索出一個 MVP (Minimal Viable Product) 的實作方式,最後做出從 BBS 個人版後的里程碑:「部落格觀察」。
那時發現,若是一個人身兼程式設計師、專案企劃、行銷、內容、系統管理者、…… 會有不錯的機會,更容易做出「有價值」的東西。
在 2010 年後在工程師圈有一個越來越熱的說法:「Fullstack Developer」,什麼是全端開發者呢?基本上概念是,當有一個人能夠「獨立」完成一個「產品」,所需要的技能點不會只是「程式設計師」這樣而已,還包含下面幾點:
- Server, Network, and Hosting Environment.
- Data Modeling
- Business Logic
- API layer / Action Layer / MVC
- User Interface
- User Experience
- Understanding what the customer and the business need
來源:What is a Full Stack developer?
但在我的經驗中,一個 Fullstack Developer 不該只有如此,因此我還加上了下面這 6 點,等於有 13 點:
- Marketing / Advertising
- Product and Resource Management
- Social Network Experience
- Content / Opinion Provider
- Admin / Officer Role
- Business Developer
在 2014 年時我當時的想法是:
當時的理論基礎是:若你能夠對這環節有經驗,你在職場上的溝通與協同會好很多,在做可行性分析時就不會太災難…
但又有人說當你有這方面的經驗,就有足夠的 Bargain Power 在職場過活,但說穿了我的重點是:「現在的社會過於強調管理與行銷的價值,都忘了本質還是在生產」的這想法….
應該說,若一件專案是以「產品」為核心,所有的參與者應該是對這樣的產品有概念,而不是只做自己環節就好,就是每一個人都能夠體認其他環節參與者在做的事,以及面臨到其中的困難與需求,而每一個參與者能夠多少知道打造產品的 Know-How,只是你的專業與專長讓負責的環節能夠做得更好,也就是說:
先要能夠「合作」,再求「分工」。
這概念在「thatgamecompany」也實作過,所以才能夠做出像「Journey/時之旅人」那樣的作品,每一個環節都能夠連結的很好,而不是每一個環節的人各作各的然後只是「組合」起來,而非融合或統合。因為每一個人都能對產品有認知與認同,這才會真的做好真正的工作。
只是這又是 10 年前的觀念了,呵呵…..
瀏覽 2,315 次