嘗試做“無線研發工程師”有感

岑安發表於2017-10-18

開始著手寫這個文章的時候,心生感概,好像終於在業務上階段性的理順了一些事情和程式碼。可以擠出那麼一點點時間寫寫自己這一兩個月以來的感受了。

前段時間一直在業務壓力中,熟悉程式碼,改程式碼,堆程式碼。甚至都沒來得及好好的想想業務的加分項,包括可做的更有價值的事情。
原因就是因為組織架構的調整,我們從前端職能走出去,接手了一整塊業務。從前到後,從客戶端到服務端。
而我個人作為團隊的領跑者,作為從“前端”走出去的同學,一定是要先行在跨端跨棧這件事情上的。以便給團隊同學鋪好路,讓大家都能更輕更快的過度到新的“業務職能”中去。

回頭翻我在組織架構調整後第一週的週報,有這麼一段感慨:

“英雄不問出處”,我們是無線研發工程師

這次組織架構調整,前端團隊垂直到業務線,更多的不應該是人從一個大的前端團隊劃分成好幾塊,匯到業務線上做小的前端團隊,那一點意義都沒有。而應該是團隊形態,職能,人的心態一起的變革與升級,技術取向從業務出發,技能擴充從人出發。

“前端”這個詞在這次調整之後,對於我個人,對於團隊而言,都不再那麼重要了 。我自己到今天為止,做了將近6年的“前端”了,說沒有情結,或多或少都有一些。我也自認在“前端”這個領域上有一些認知和沉澱,然而時不我待,無線時代的迅速崛起,端側越來越重的體驗和功能,都在開始挑戰著當下的技術分工。

我說,要求我們走出單一職責,甚至摘掉“前端”這個title的人,不是老闆,而是這個時代。

Web2.0在PC的時代,一個網站,所有的業務幾乎都承載在瀏覽器上,泛泛而談,技術上無非兩種人,“前端”和“後端”,基本就能Cover掉整個業務的實現。
然而無線的時代,移動裝置App的崛起,OS和平臺的差異,導致同樣一個業務,簡單的看,需要四種技術人才來支撐,“IOS開發”,“Android開發”,“前端開發”,“後端開發”。

且不說時間成本,人力資源成本從2個變成4個都會是一個巨大的包袱和挑戰。集團不是說我們的人才策略從“平凡人做非凡事”變成“非凡人,平常心,做非凡事”了麼,既然我們自命“非凡”,那必然要求我們可以承擔的更多,所以,技術棧的擴充,無論從時代還是集團策略來看,已經是必然。

挑戰往往也預示著機遇,我本來還有些偏執,說趁著這次的調整,乾脆把自己和團隊的職能titile摘掉,不再是“前端工程師”,而是“無線研發工程師”。

然而轉念,英雄不問出處,路是要靠自己走出來的,團隊的轉型也不是我一個人的轉型,整個大的無線技術團隊也都需要做“端”的融合這件事情。在“事”的維度我們已然做了不少嘗試了,Hybrid,Weex等等,是時候在“人”的維度做些“融合”的努力了。

Title已經不再重要,時間會證明一切。

到今天為止,總算也是完成了在IOS,Android客戶端一個完整的功能性需求的迭代,服務端能力也隨著業務的bugfix,feature的更新有新的迭代和釋出。至此,我上週在週報裡面說,終於標誌著我們從前端走出去的小團隊有了完整的無線技術棧研發能力。

回頭看IOS和Android

不得不說,頂著壓力學習的過程是痛並快樂著,這跨年的一個多月以來,我經常說自己有好長時間時間沒有過這種每天都看得見自己技能和知識的成長的這種充實的過程了。
每天都有新的輸入,有新的知識入賬。這是以前做“前端”已經好長一段時間無法得到的體驗了。

然而痛苦的點是我在得到這種知識輸入的快感時是頂著業務風險和壓力的,在我不熟悉的領域,我會像一個新人一樣對一個需求能做到什麼程度,需要多少時間沒譜… 同時作為一個業務的技術owner,還不得不揹負業務需要快速迭代,使勁往前跑的責任。

這是我巨大的壓力所在。

所幸通過一個月時間的磨礪,通過一個完整業務需求的迭代,基本算是理順了包括IOS,Android在內的業務程式碼和研發流程。
對端上技術這個領域似乎也有了更廣度的認知。

從前端的角度來看,客戶端IOS,和Android也有很多看似相似的地方,年前在做技術大團隊的“前端技術棧培養”課程的時候,我大概理了一下端上方案的一些共性:
screenshot

不得不說程式設計,或者是UI構建,在某種程度上都是通的。甚至讓我想起了在學校時代做MFC程式設計,原來UI的世界都是這樣八九不離十,瞬間讓我覺得端側技術的世界變得好小…

同時也會發現,前端的世界和客戶端比起來,有太多美好的地方,但是也有太多糟糕的地方:

  • 前端的同學們拼死拼活做工程化這件事情,做到今天,感覺頗成規模,但是對比起IOS環境,完善度和規範度瞬間感覺是戰5渣
  • 前端同學們拼死拼活做的各種元件化方案,基於React也好,基於Vue也好,感覺終於可以做到宣告式,可巢狀,內聚解耦… 但是Android的layout和元件方案似乎天生就有這種feature…

前端的不足讓“前端”這個領域在一步步往“軟體工程”這個方向走的更近。

然而前端在UI構建除錯的即時性是客戶端開發同學們心裡永遠的痛。

  • 儲存即更新,儲存即可見,這在Web領域已經是常態。然而在客戶端,特指“手淘”這個龐然大物背景下。每次程式碼的更新和除錯都是心裡的傷。尤其是Android…
  • 我經常開玩笑說在Android做業務的同學,估計有一半的時間花在了打包上面 ? 。 大家可以想象改一行程式碼需要打包2~3分鐘才可見可調 這種感受麼?

能力最大,責任越大

業務職能垂直化這件事情,我相信我們正走在一條對的路上。對於我們過往的“前端同學”,是一個挑戰,也同樣是一個機會。

當我們拋開了職能的概念,當我們具備了業務所需的所有研發能力。那我們對於業務會有更好的判斷和歸屬。有更順更合理的方式做新的嘗試和創新。

當我們從技術上能整個Own一塊業務的時候,我們要想的就不再是怎麼去支撐PD或者PM同學的需求了,而是怎麼讓這塊業務跑的更快更好。並且我們也有了能力和責任去讓他跑的更快更好。

回頭再來看 “無線研發工程師” 這個Title,忽然覺得好有使命感和厚重感。在當今移動大時代的背後,我希望有一天我自己和我團隊裡的同學都能順理成章的贏得這個Title。

而這一天,我看著,正在到來!


相關文章