大佬分享:為什麼碼農要了解業務?
最近一位分析界的老前輩對我很無奈地搖搖頭,“這幫程式設計師,不食人間煙火哪!”我也深有感觸,全世界的碼農都一個樣。
這讓我想起了,同樣也是他,在多年之前,對我提了警醒——要重視業務。從那之後,我一直狂奔在技術+業務的雙修道路上。
放在以前,碼農這個族群一定是稀罕動物。但在今天,這個世界最不缺的應該就是碼農了,未來最廉價的也將是碼農。僅有泛泛一技,在未來並不吃香,因為那是要被機器人所取代的。
這個世界,缺的是技術過硬又精通業務的工程師,缺的是真正能解決實際業務問題的人,缺的是複合型的人才。
碼農不是工程師,碼農只是會寫程式碼,只會明確需求和邏輯的情況下寫程式碼。工程師則不一樣,懂得用技術怎麼解決實際業務問題,用技術驅動業務的發展。
什麼叫業務?
先來明確這個問題。
業務是一個很實在的東西,看得見感受得到,接地氣兒。
業務就是我們所能理解和感受的世界,就是這個世界或者某個行業的運轉邏輯、流程與現狀,是結果表象,是能夠被看見和感受的,也是內在本質,是能夠被洞察和感知的。
業務就是這個世界發生了什麼,什麼時候,誰參與,怎麼發生,結果如何。
業務就是什麼時候,誰在哪裡,買了什麼東西,花了多少錢,用什麼支付。
業務就是這個行業怎麼發展起來的,現狀如何,未來趨勢如何,用了什麼技術,有什麼企業,商業模式如何,盈利能力如何,目前主要面臨什麼問題,消費者有什麼特點,等等。
世界很複雜,單個細分行業的業務也很複雜。
為什麼要了解業務?
談到這個,碼農們一定有所不悅,“熟悉業務是需求分析師做的事,跟我們沒有關係。”
打個不恰當的比喻。有10個人經過一棟寫字樓,突然從樓上掉下來幾塊磚頭,砸中了9個人,其中就有7個碼農,3個碩士,1個博士(原諒我又犯職業病,拿資料說話了)。而沒被砸到的那個人,恰好因為了解到之前經常發生這樣的事而繞道行走。
如果你只會寫程式碼,你不是不可替代的,而是可有可無的。因為這年頭,會JAVA、C、Python的程式設計師,在大街上一抓一大把。現在已經開始提倡,程式設計從娃娃抓起了。10後都開始跟你搶飯碗了,你怕不怕?
但話也不是那麼極端,除非你的技術很牛逼,在國內或者某個行業內能夠排上號的。但技術牛逼的人,也不是隻是技術超群,還常常因為能夠利用手中的技術解決某方面的業務問題,做了哪些突出的貢獻。我們出來混,也是要拿成果說話的,做過什麼專案,有什麼價值。這種價值往往就是針對業務而說的。
IT研發與業務需求方常常是一對冤家,常常因為一個業務功能實現爭辯得耳紅面赤。研發覺得這個功能很low,沒什麼技術含量,業務方卻認為這個功能卻很有用,需要花功夫做細做深做好。現實情況是,功能做出來了,卻很難用,或者經常用不了,或者資料不對。研發想做點高大上的功能,業務方卻認為太虛了,沒什麼用。(IT與業務方那點事就不多說了,大家都心知肚明~~)
多年經驗反覆告誡我,鑑定一個功能是不是好功能,唯一的標準是看它能否支撐業務、改善業務、推動業務,也即應用效果。一個產品,只要有30%的功能,讓業務使用者用起來很爽,感覺幫助很大,就已經是一個不錯的產品了。
我們都認同,技術驅動業務。但我們不一定明白,正是由於業務的某些強烈需求,才推動技術的發展與落地。
說這些,我是想說,作為技術人員,我們既要仰望星空,也要腳踏實地,既要追逐騰飛的技術,也要重視落地的業務。
如果一個業務人員很懂技術,那將很可能是技術人員的災難。因為那樣的話,業務人員會很強勢,又或者那樣就沒有技術人員什麼事了。
當然,也不難想象,一個真正懂看資料的測試人員,就好比一個真正懂用演算法的業務人員一樣難得。
業務與資料的關係
真實(而不是杜撰、模擬、偽造)、可量化、可被記錄的資料一定會反映真實世界某方面的業務情形。而現實當中很多業務場景都可由資料體現出來。
零售是業務場景最繁多且最貼近我們生活的行業,可以從中找到很多方便理解的例子。
當你在一個酷熱難耐的夏天上午10點,走進位於公司附近的全家便利店,使用微信支付,花了3.5元,買了一瓶無糖330ml摩登罐的可樂,而且刷會員卡攢了100積分,而收銀員MM返回給了你一張POS單據,這時你所發生的這一切都已經通過收銀記錄在了全家的資料庫裡。更糟糕的是,店裡的攝像頭也已經把你在店裡的一舉一動錄了下來了,轉化成為一幀幀影像資料。
這就是,業務資料化。
店長通過資料分析發現,最近3.5元330ml摩登罐可樂的銷量比上月增長了20%,而消費者中75%是20-35歲的男性,相比之下,300ml塑料瓶裝的可樂銷量卻下滑40%。店長權衡比較了一下,300ml塑料瓶裝可樂利潤低,330ml摩登罐可樂目前更受年輕人歡迎,考慮到日漸增長的租金壓力,做了一個大膽的決定——下架300ml塑料瓶裝可樂,增加330ml摩登罐可樂的商品。(又拿資料說話了。)
這就是,資料業務化。
或者,資料驅動業務。
當我開始接觸一個行業時,我通常會花2-3周的時間去了解這個行業的業務,然後就大致清楚這個行業有什麼樣的資料,可以做哪方面的分析,解決什麼問題。
當遇到不好理解的分析結果時,我經常使用業務聯想法,設身處地去體會結果所反映的業務場景是什麼樣的。
如何瞭解業務?
這個說大了,就是如何看這個世界。每個人有每個人的方法論,每個人有每個人的世界觀,每個人有每個人的邏輯思維。
我們都知道,觀念的轉變是最難的,也有很多不確定性。有些人可能因為自己的切身體會一天就改變了之前幾十年根深蒂固的看法,有些人任由三姑六婆苦口婆心地勸說就是不肯改變自己的擇偶觀,卻有可能因為自己年歲漸大不斷降低自己的標準。
但最好也及早要形成科學的思考方法,幫助正確地理解這個世界。
以“面-線-點”的方式可以較為全面、系統、深入地瞭解一個行業,然後是某個垂直領域,最後再到具體業務場景。
佛系文化的流行,使得年輕一代降低對這個世界的關注度,一切都無所謂,一切都漠不關心。
這個世界從來沒有變好過,但我們每個人都是這個世界的匆匆過客,都是行走在自己的人生路上不斷領略這個世界的美與醜。這世間的風景,這世間的悲歡離合,如果我們積極地探索與領悟,也不枉來這世間走一遭。
保持好奇心,可以驅動我們的思考,強化我們的認知,豐富我們的內在。
這是我想說的第二個方面。
懷有好奇心,就會漸漸地敏銳觀察這個世界,多問自己一些為什麼。
我家附近原來有個沃爾瑪超市,現在地產商將它裝修一番,引入了不少餐廳,剛開張不久,我就去那裡吃飯,吃的是烤鴨,一個多兩個月後,再去那裡吃飯,發現有一半的餐廳已經關門了。
在去地鐵站的那條路上,每天人流如梭,一點點,即使到了深夜,依然有很多人在門口排隊買奶茶。然而,僅僅隔了一個店鋪的喜茶,做不下去,關門了。兩三個月前又換成粉店,路轉粉。每天下班路過時,發現店裡顧客不到10個,門可羅雀。
為什麼每家一點點奶茶店門口,不管是什麼時候都是很多人,他們是托兒還是真的顧客?
因為喜歡新鮮,不喜歡在冰箱裡存太多菜,且附近沒有菜市場,所以常去買菜的還是附近的錢大媽。但我卻沒怎麼去更近的一家生活超市,店面比較大,除果肉蔬菜外,也賣油鹽醬醋,還有生活用品,但奇怪的是顧客卻不到錢大媽的1/10。
為什麼幾乎所有潮州牛肉店都很多人,有很多甚至在門口排了很長的隊?
觀察到這些,常常會陷入思考,為什麼會發生這些,新零售到底改變了什麼?
再舉個例子。
去年拿保溫杯泡著枸杞的中年男火了。
關於這個,我又問了自己幾個問題:拿著保溫杯泡著枸杞的是不是都是中年男?如果是,這個特徵能否被資料量化?可否考慮加入到演算法模型當中,加以應用起來?
雖然很多問題,我沒有找到答案,但多問自己問題,會引發自己不斷深入思考,不斷激發自己好奇心,不斷去研究。
很多業務知識都是零散的,不可能在短時間內完全瞭解,可以在日常不斷積累。
關於日常積累業務知識,可以經常詢問懂業務的人。這是我想說的第三個方面。
剛進公司的時候,我以為業務很簡單。很快,我就發現裡面的坑不少。加上所在團隊的成員也是剛入職不久的,問問題沒處可問。過了一個月之後,我發現隔壁團隊有兩個十年左右的老員工,業務很熟,而且人特好。於是,我幾乎一遇到業務問題,就跑過去“騷擾”他們,他們也很樂意解答,如果他們不清楚,他們也會告訴我應該去找誰瞭解。大約半年之後,我基本摸透了順豐的資料和業務情況。我也和那兩位老員工建立了不錯的友誼,即使後來換了部門,我也經常過去找他們。
跟懂業務的人搞好關係,遇到業務問題,多諮詢他們,這是最有效最接地氣的辦法。
多看書,這是我想說的第四個方面。
比如說,從事新零售領域方面的工作,總得先了解新零售是怎麼回事。你可以去聽專家們忽悠,但這樣的機會很少,而且時間也有限,說不定成本還很高。
讀書則不一樣。讀書,意味著主動了解,主動去構建自己的知識體系。
讀書的重要性,這裡不多言了。
另外在這裡推薦一下我的交流群:236283328 我主要是提供一個免費平臺,群內會 Java 工程化、高效能及分散式、高效能、深入淺出。效能調優、Spring,MyBatis,Netty 原始碼分析和大資料等視訊及文件資料,因為分享的是Java進階資料,所以小白勿入群,謝謝!
如果您讀這篇文章的時候,您恰好也是一位資料人。我還想告誡一句:我們不能脫離業務去看資料,而是要時刻從業務角度去理解資料。
我們不敢期望可以完全理解這個世界,但也憧憬著我們不單可以在程式碼的世界裡暢快馳騁,論劍江湖,也可以放下身段洞察芸芸眾生之百態,領悟人間世俗之真情。
如果真的可以的話,就沒有需求分析師什麼事了。
相關文章
- 為什麼要虛擬化,為什麼要容器,為什麼要Docker,為什麼要K8S?DockerK8S
- 為什麼還要記密碼密碼
- 為什麼要閱讀原始碼原始碼
- Google 大佬們為什麼要開發 Go 這門新語言?Go
- 為什麼要閱讀核心原始碼?原始碼
- 為什麼要removeREM
- 為什麼要敏捷?敏捷
- 【知識分享】伺服器為什麼要測壓需要注意什麼伺服器
- 程式碼之間為什麼要加空格?
- 為什麼我要垂直對齊程式碼
- 為什麼中國的程式設計師總被稱為碼農?程式設計師
- 為什麼大部分碼農做不了架構師?架構
- 【知識分享】跨境業務為什麼選擇海外伺服器伺服器
- 為什麼要code reviewView
- 我們為什麼要閱讀webpack原始碼Web原始碼
- 農業認養APP的開發要點是什麼APP
- petite-vue原始碼剖析-為什麼要讀原始碼?Vue原始碼
- 這幾款小遊戲為什麼能到千萬級流水 幕後大佬傾情分享遊戲
- 分享為什麼不加微信分享呀
- 作為程式設計師為什麼要閱讀原始碼程式設計師原始碼
- 為什麼要學習 RustRust
- 為什麼要學習 Julia
- 為什麼要指令重排序?排序
- 為什麼要學習 Vim?
- 為什麼要選擇SQL?SQL
- MySQL為什麼要set namesMySql
- 為什麼我要豎向對齊程式程式碼
- 你為什麼不分享?
- 大齡碼農經驗那麼豐富,為什麼很多公司都不招?
- 設計師為什麼要學程式設計,開發者為什麼要學設計?程式設計
- 為什麼 JavaScript 的 this 要這麼用?JavaScript
- Python是什麼?為什麼要掌握python?Python
- 為什麼我要垂直對齊程式碼(你也要如此!)
- 為什麼要學習Netty?Netty
- 為什麼要貢獻開源
- 前端為什麼要工程化?前端
- 為什麼要分庫分表?
- 為什麼要特徵標準化特徵