
這篇文章是受漫談工程師的三觀的啟發(fā)所寫。
常常聽到做業(yè)務的程序員抱怨自己現(xiàn)在做的業(yè)務沒有意思,學不到東西,用不到新技術,用的也都是翻來覆去的技術,得不到成長。很多程序員在經(jīng)歷這個過程時,很多調整不了也就離職了,也許走向了一個新的技術興奮點,有些可能是換了個新的業(yè)務繼續(xù)循環(huán)。那我們程序員在遇到這種事情的時候應該怎么調整,應該向哪個方向走。
現(xiàn)在關于程序員的三觀(技術觀、產(chǎn)品觀和數(shù)據(jù)觀)已經(jīng)算是普天蓋地了,那什么是業(yè)務觀。
業(yè)務開發(fā)最好的體驗就是從一個業(yè)務從起步-> 快速發(fā)展->業(yè)務穩(wěn)定發(fā)展->…… 的過程,而在業(yè)務不同的過程中能夠清晰定位開發(fā)人員在業(yè)務中的角色,能夠從技術的角度支持業(yè)務。
一、程序員的三觀
1、技術觀
技術是程序員的核心競爭立,什么才是好的技術觀。
好的技術觀應該是不排斥新技術,不排斥自己未深入了解的技術。很多新人,甚至很多工作兩三年的開發(fā)者會陷入一種誤區(qū),對一種語言極度熱愛,而對其他的一些語言極度鄙視,變成某種語言宗教成員;作為程序員很多時候像是在做學術一樣,需要不斷探索新的領域,一些技術需要深入掌握,很多技術需要大概知道原理是什么,大概有哪些特性,兼容并包,在一項業(yè)務需要的時候能夠更好的技術選型。
不同的技術很多時候能夠開拓技術眼界,以程序語言為例,在并發(fā)實現(xiàn)的問題上:
·Java 使用線程和線程池的方式來實現(xiàn)
·Golang采用goroutine和channels的機制實現(xiàn)
·Clojure則采用STM(Software transactional memory) 模型來實現(xiàn)
不同的方式有著自己的優(yōu)缺點,在實際應用中,我們可以以這些為借鑒解決我們的實際問題,如最近我們就在KTV 預訂流程中采用了Channel的模型來抽象并實現(xiàn)業(yè)務。
2、產(chǎn)品觀
技術人員在實現(xiàn)產(chǎn)品需求的時候,首先跳入腦海的是實現(xiàn)產(chǎn)品的技術成本,如實現(xiàn)這個產(chǎn)品會對現(xiàn)有的項目造成多大影響,開發(fā)起來有多麻煩等等??紤]這些成本是很有必要的,有了這些成本考慮才能更好的衡量這些需求值不值。但是如果僅僅止步于此,那還沒有形成很好的產(chǎn)品觀。
作為程序員不僅僅要理解產(chǎn)品的實現(xiàn)細節(jié),我們還要知道產(chǎn)品的動機、定位和防線,知道產(chǎn)品為誰而做、為何而做。
例如在漫談工程師的三觀 文章中關于用戶登錄的產(chǎn)品就是一個很好的例子:
比如說每個在線的系統(tǒng)都有密碼重置的功能 —— 我們看看,密碼重置的慣例是什么?
·用戶發(fā)送密碼重置請求后,系統(tǒng)給請求的郵箱發(fā)一個重置郵件
·重置郵件里有個會在指定時間內過期的一次性鏈接,用戶點擊后進入到密碼重置頁面
·用戶設置密碼后,可以用新密碼登錄
·然而,這樣一個簡單的功能,有人會把它做成這樣:
·用戶發(fā)送密碼重置請求后,系統(tǒng)給請求的郵箱對應的賬號設置一個隨機密碼,并發(fā)一個郵件告知隨機密碼
·用戶使用這個隨機密碼登錄
3、數(shù)據(jù)觀
數(shù)據(jù)是真實世界在產(chǎn)品上的一個投影(projection)。好的工程師同樣也應該是對數(shù)據(jù)敏感的工程師。Learn startup 教給我們:build – measure – learn 的循環(huán),這與其說是做產(chǎn)品的方法,不如說是我們學習萬事萬物的方法。
所以數(shù)據(jù)觀的第一步是知道測量什么。想要知道測量什么,需要知道某個產(chǎn)品最重要的 KPI 是什么。 例如我們現(xiàn)在在做的KTV預訂,最重要的是預訂訂單數(shù),其次是預訂成功率,再細化到預訂系統(tǒng)內部就是各預訂渠道的預訂成功率。
測量只是第一步,接下來是分析和解讀數(shù)據(jù)。分析和解讀數(shù)據(jù)的能力是工程師的數(shù)據(jù)觀的重要組成部分。
數(shù)據(jù)分析和解讀數(shù)據(jù)之后,需要形成相應的措施,如果業(yè)務中存在缺陷或者需要優(yōu)化的地方,就需要形成產(chǎn)品需求,推動業(yè)務和產(chǎn)品的發(fā)展,這也許就是人人都是產(chǎn)品經(jīng)理的一個意義吧。
二、業(yè)務觀
業(yè)務觀是一個更高更廣的一種視角,無論是技術、產(chǎn)品還是數(shù)據(jù)分析都是為了業(yè)務更好的發(fā)展,如果讓業(yè)務更好的發(fā)展,這就需要更好的業(yè)務觀。正確的技術觀、產(chǎn)品觀及數(shù)據(jù)觀是支持業(yè)務的基礎,但是一個業(yè)務不僅僅擁有這三個方面。做一個業(yè)務需要知道業(yè)務的流程、必要的業(yè)務細節(jié)。
業(yè)務中需要有產(chǎn)品,這些產(chǎn)品大概如何推廣,銷售環(huán)節(jié)是如何的,每個環(huán)節(jié)技術如何提供幫助,以業(yè)務的視角來看,現(xiàn)在的產(chǎn)品和技術是否合理,能否提供更好的業(yè)務模式。
1、與業(yè)務人員的溝通
很多開發(fā)人員比較討厭與業(yè)務人員(銷售,地推人員,運營人員等)溝通,因為總覺得和這些人不再一個頻道上。其實很多時候業(yè)務人員是擋在真實用戶的最后一層,這一層更加理解真實用戶的需求,比真實用戶能夠進行一定的需求總結。傾聽業(yè)務人員說產(chǎn)品中不通的地方,往往能夠找到系統(tǒng)和產(chǎn)品中的缺陷。
2、技術的角度看業(yè)務
相比業(yè)務人員,技術人員有著技術優(yōu)勢,能夠從技術角度更好的抽象業(yè)務需求。業(yè)務人員提出的大多數(shù)想法或需求,通常在很短的時間內,便可以基本判定技術實現(xiàn)方案的可行性。
學習Java的同學注意了?。?!
學習過程中遇到什么問題或者想獲取學習資源的話,歡迎加入Java學習交流群346942462,我們一起學Java!