初級工程師的困惑
曾經有公眾號的小伙伴后台聯系我,咨詢一些問題。有一個粉絲問過這樣一個問題:
群主,向你請教一個困擾我很久的問題,從畢業到現在,我一直從事大數據平台開發d的工作,主要是搭建CDH周邊產品,並在基礎上開發一些BI產品和內部的分析系統。我很喜歡這份工作,但就是離業務太遠了,很少了解用戶到底需要怎么的BI產品和數據平台。所以每次看到數據分析師接觸真是的也無需求,可以把自己的想法和業務結合起來,得到老板認可的價值,我都會很羡慕。目前公司的大數據平台產品還不是很成熟,需要作為技術平台核心人員的我比較受重視,但是隨着公司數據平台的完善,對於不懂業務的我,是不是會淘汰呢?
收到收到這條消息,我很欣喜。首先,作為一個剛畢業兩年的同學,能有這種居安思危的想法,已經超越了很大一部分職場人。其次,我其實和這位同學有着相似的經歷,很願意去分享一些自己的想法。
技術 or 業務
首先,其實除了很少崗位不需要懂業務外,大部分公司的技術崗位都需要懂業務的,隨着大數據平台的逐步成熟,有了平台開發這樣一個崗位,他們主需要關注平台的功能,不需要關注具體的業務邏輯,隨意大數據平台開發人員存在着和業務脫節的問題。作為開發人員我們經常嘲笑產品經理只懂業務,不懂技術,但是我可以明確的告訴你,只懂技術,不懂業務,在絕大數公司中是不會成為核心骨干的,技術永遠都是服務於業務的,特別是在商業公司中。這也是剛畢業學生和資深工程師的區別,工作5年后,絕大多數工程師都會成為某一領域的業務專家,能夠把業務和技術靈活的結合起來,解決企業實際的問題,以及在看到一些技術問題時候,會通過業務的變通來解決問題。那么在實際工作中,我們如何平衡技術和業務的關系呢?
記住下面一句話:擼代碼的時候別忘了思考!
曾經的同事
我曾經遇到過一個同事,開發了一個XX分析應用系統,但是當業務人員問他這個數據怎么來的時候,他完全搞不明白,只是一句話,這個需要問產品經理。問產品經理固然沒錯,但作為系統核心開發人員,也要清楚的知道自己每個接口開發的邏輯,服務的業務。我們總是嘲笑產品經理不懂技術,產品是不是也會把開發當做擼代碼的機器呢?
即使是作為平台底層的開發工程師,大部分時間都是對讀寫進行優化,但是讀寫的場景你都不了解,怎么去優化呢?只是一味的升級技術?增加內存?上固態硬盤?你需要去了解訪問高峰時在什么時候,哪些場景下讀高並發?哪些場景寫高並發?那個復雜的查詢SQL是在什么業務場景下觸發的?這些都是作為開發工程師需要了解的,也許你花了很多時間和資源去解決的一個慢查詢,只需要通過業務角度的一個轉換就可以去解決掉了。
我的故事
記得之前做數據開發的時候,領導給我們布置了一個任務,去看業務系統的設計文檔,現在想起來,真是感謝領導給自己指了一條明路。后來團隊來了一個高級工程師,進公司的一個月內,把公司的各個業務系統都熟悉了一邊,收集的一些資料都是我們干了兩年都沒有接觸到了。通過這件事,我也養成了這個習慣,進入一家新公司后,首先是通過各種資源,獲取公司目前開發的業務系統知識文檔,熟悉公司在干什么。
當然,這樣說着很輕松,其實要在干好自己本職工作之外,再思考學習,你也許就需要加班。提到加班,很多人已經反感至極,but me too!但是初期都會有這樣一個階段,每個辦公室都會有那么一兩個人走的比較晚,后來你發現慢慢的這幾個人要么走了,要不成為了你的領導。
數據產品
當你熟悉的公司的產品之外,研發人員也可以成為產品經理的。特別是隨着大數據平台越來越普及,來了一個新的職位:數據產品經理,這個職位還真不是一般產品經理能干的。不懂幾個大數據技術棧和后端系統設計的,你還真接不了這個活。
解惑
所以,現在我想給那位大數據開發同學說,趁現在,去了解公司的業務吧,多去和數據分析的同事聊聊,和產品聊聊用戶需求,不要迷茫,也許數據產品就是你的方向。