|
世上無易事
要是我問你,跑百米容易還是跑馬拉松容易?這還用問!當(dāng)然是跑百米容易了,是吧?其實(shí)我想問的是:亞洲運(yùn)動(dòng)員要拿奧運(yùn)冠軍,是跑百米容易還是跑馬拉松容易?答案似乎就顛倒過來了。近鄰韓國和日本都已經(jīng)出過奧運(yùn)馬拉松冠軍,比起拿百米冠軍,概率要大多了。
有了上面這個(gè)問題墊底,你應(yīng)該可以猜到下面這個(gè)問題的意圖:現(xiàn)在開發(fā)軟件容易還是二十年前開發(fā)軟件容易?現(xiàn)在的軟件開發(fā)是可視化編程,就著框架搭積木,看起來容易多了。可惜,當(dāng)我們的問題變成:通過開發(fā)軟件來賺錢,比起二十年前是不是變得更容易了?答案也顛倒過來了。門檻的降低使得競(jìng)爭(zhēng)者大量涌入,拉低了軟件公司的利潤(rùn)和程序員的入職薪水,更要命的是,客戶的胃口變得越來越大。二十年前,史玉柱在《計(jì)算機(jī)世界》登一個(gè)廣告M6401,歷史性的突破,然后就可以等到訂單,這樣的成功現(xiàn)在還能復(fù)制嗎?
當(dāng)我們從市場(chǎng)競(jìng)爭(zhēng)的視角去看問題的時(shí)候,容易的事情就變得不容易了。不過,很多開發(fā)人員還沒有學(xué)會(huì)市場(chǎng)思維,還是保持著學(xué)校里的學(xué)生思維。在此舉幾個(gè)場(chǎng)景為例,這些場(chǎng)景在我為不同團(tuán)隊(duì)提供服務(wù)時(shí)發(fā)生過很多次,令我印象深刻。
在給某單位做一個(gè)項(xiàng)目時(shí),開發(fā)人員A自作主張加進(jìn)去一些用例。我認(rèn)為這些用例和客戶的愿景關(guān)系不大,可以去掉。A反問道:如果做一個(gè)通用的產(chǎn)品在市場(chǎng)上賣呢?
如果開發(fā)人員很喜歡用這個(gè)學(xué)生味十足的詞。是否做通用產(chǎn)品,這可是一個(gè)重大的商業(yè)決策,開發(fā)人員卻認(rèn)為將這個(gè)系統(tǒng)變成通用產(chǎn)品拿到市場(chǎng)上賣(目標(biāo)客戶變了)是一件輕而易舉的事情。事實(shí)上,這涉及到整個(gè)愿景的轉(zhuǎn)變,甚至公司戰(zhàn)略的轉(zhuǎn)變,而且需求受影響的可能不只是當(dāng)前這個(gè)系統(tǒng)。市場(chǎng)是殘酷的,誰吃肉誰喝西北風(fēng),可不能隨便如果。少說一些如果,多做一些調(diào)研吧!看看客戶的老大什么意思,自家老總什么意思,市場(chǎng)的戰(zhàn)局如何,盡量向最佳答案靠攏。
開發(fā)人員B在寫某信貸風(fēng)險(xiǎn)系統(tǒng)的愿景時(shí)寫道:本系統(tǒng)的目標(biāo)是,銀行風(fēng)險(xiǎn)部能夠?qū)J款做風(fēng)險(xiǎn)評(píng)估。我問道:難道銀行以前不能做風(fēng)險(xiǎn)評(píng)估嗎?B認(rèn)真地回答:不能啊,有我們的系統(tǒng)才行!
很多時(shí)候我們把自己開發(fā)的系統(tǒng)(噢,對(duì),現(xiàn)在流行叫××平臺(tái)了)想得太牛了,以為沒有我們的系統(tǒng),業(yè)務(wù)組織就玩不轉(zhuǎn)了。其實(shí),我們開發(fā)的系統(tǒng)只是組織里面的小零件,和組織廁所里的馬桶沒有本質(zhì)區(qū)別。組織里面還有很多系統(tǒng),其中最值錢的是千百年來一直在使用、現(xiàn)在依然是最復(fù)雜的人肉系統(tǒng),它由父母公司開發(fā)、老師公司不斷升級(jí)、公司以每月每人幾千上萬的租金租用。所以,有時(shí)為了抵消開發(fā)人員這種致命的自負(fù),我會(huì)故意將系統(tǒng)稱為馬桶,你做這個(gè)馬桶是干什么的?
我和開發(fā)人員C聊天。我問:你最近做什么項(xiàng)目?C回答:我在做一個(gè)Java項(xiàng)目。
對(duì)嗎?對(duì)的!這個(gè)項(xiàng)目對(duì)于開發(fā)人員C來說確實(shí)就是一個(gè)Java項(xiàng)目,因?yàn)樗魂P(guān)心項(xiàng)目的核心領(lǐng)域是醫(yī)院、物流還是保險(xiǎn),他只關(guān)心這個(gè)項(xiàng)目能不能提升他的Java技能、對(duì)以后的職業(yè)生涯有無幫助,所以他把這個(gè)項(xiàng)目叫做Java項(xiàng)目十分正確。可惜,這是從開發(fā)人員的角度看問題,而沒有從客戶的角度看問題。并不只是剛參加工作的Java程序員會(huì)這樣回答,有一次,我問一位有將近十年開發(fā)工作經(jīng)驗(yàn)的架構(gòu)師最近做什么項(xiàng)目,架構(gòu)師回答:在做一個(gè)數(shù)據(jù)倉庫項(xiàng)目。繼續(xù)聊下去,我才知道其實(shí)他做的是某通信公司的客戶關(guān)系管理系統(tǒng),里面用到了數(shù)據(jù)倉庫,而數(shù)據(jù)倉庫的知識(shí)恰好是他比較缺乏而且感興趣學(xué)習(xí)的,所以他干脆把這個(gè)項(xiàng)目稱為數(shù)據(jù)倉庫項(xiàng)目了!
開發(fā)人員D喜歡鉆研底層,明明分配給他的工作是編寫一段計(jì)費(fèi)的C#代碼,他偏偏要花時(shí)間深入研究到編譯器、操作系統(tǒng)甚至硬件,而且確實(shí)也搞清楚了一些門道。雖然工作是耽擱了,但D獲得了勤奮好鉆研的名聲。
其實(shí)軟件開發(fā)還有另一個(gè)更值得鉆研的底層:怎樣才能使這段代碼更容易維護(hù)和擴(kuò)展?這段代碼達(dá)到的功能和性能對(duì)涉眾意味著什么?過分熱衷于鉆研底層,我認(rèn)為這樣的行為更像是偷懶而不是勤奮,畢竟比起離開電腦去搞清楚質(zhì)管部和生產(chǎn)部之間有什么利益上的沖突,研究MSIL的語法要容易得多、愉快得多。我們不要忘記,能帶來利潤(rùn)的是另一個(gè)更深不可測(cè)的底層藏在涉眾心底里的各種希望和擔(dān)心。

兩個(gè)底層
it知識(shí)庫:做有市場(chǎng)思維的開發(fā)人員,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。