Email:fangweng@taobao.com
Blog:http://blog.csdn.net/cenwenchu79
其實(shí)想說(shuō)這句話(huà)很久了,和很多同事接觸,有時(shí)候或多或少的都會(huì)發(fā)現(xiàn)大家會(huì)陷入在自己的一畝三分地里面.
主要表現(xiàn)得癥狀
1. PD的需求就是目標(biāo),踏實(shí)的實(shí)現(xiàn),不懂的就猜。
2. 經(jīng)驗(yàn)蓋過(guò)一切,設(shè)計(jì)系統(tǒng)就是要夠完備夠復(fù)雜。
從開(kāi)發(fā)人員角度來(lái)看,第一種人多半比較有自己的想法,同時(shí)也有不少的工作經(jīng)驗(yàn),同時(shí)可能對(duì)技術(shù)比較著迷。另一種人多半是剛剛工作或者經(jīng)驗(yàn)不足,要么就是習(xí)慣性把工作當(dāng)任務(wù),而不是愛(ài)好,寫(xiě)程序也就是一份賺錢(qián)的活。但看起來(lái)其實(shí)各自都在自己的一畝三分地上搗鼓,忘記了作為一個(gè)開(kāi)發(fā)人員最基本的原則:“滿(mǎn)足客戶(hù)需求”。
先說(shuō)1類(lèi)型吧,在我們的Team有一個(gè)剛畢業(yè)一年多的同學(xué),很勤奮,不論從學(xué)習(xí)以及工作,實(shí)實(shí)在在,踏踏實(shí)實(shí)。我們這邊來(lái)需求,通常大需求我們都會(huì)全體過(guò)一下,一些小點(diǎn)的需求他就自己考慮一下就作了。那天正要上線(xiàn),突然說(shuō)了一下設(shè)計(jì)修改的內(nèi)容,發(fā)現(xiàn)不僅滿(mǎn)足不了PD原有的需求,而且給系統(tǒng)帶來(lái)了緩存暴增的隱患。然后找來(lái)PD一談,其實(shí)他要的功能已經(jīng)在現(xiàn)有系統(tǒng)中已經(jīng)實(shí)現(xiàn),只是需要做部分的修改,而不需要新的去建立一套機(jī)制。這樣的情況其實(shí)在前前后后出現(xiàn)了不少次數(shù)了,但其實(shí)一直沒(méi)有和他細(xì)談。后來(lái)我下班時(shí)候和他一起回家的時(shí)候說(shuō):“很多時(shí)候, PD為了讓你理解,從開(kāi)發(fā)的角度想要去描述一個(gè)需求,但其實(shí)最終失去了他自己想要的東西。因此對(duì)你來(lái)說(shuō)第一步不是急忙的去考慮如何實(shí)現(xiàn)PD的想法或者和他爭(zhēng)論他的設(shè)計(jì)是否合理,而是需要先問(wèn)他:你想要什么,想要實(shí)現(xiàn)的東西最終目的是什么,能滿(mǎn)足客戶(hù)的什么需求?當(dāng)他能夠說(shuō)清楚他想要什么,也知道要的東西能給客戶(hù)帶來(lái)什么價(jià)值的時(shí)候,我們?cè)倩剡^(guò)頭來(lái)看,究竟應(yīng)該怎么做?”這其實(shí)和我每次和同學(xué)分享一些設(shè)計(jì)的時(shí)候步驟是一樣的,首先為什么要這么做,然后才是考慮如何從我的目標(biāo)去尋找行動(dòng)的方法方式,不然你會(huì)發(fā)現(xiàn)你和別人討論了許久的東西,實(shí)現(xiàn)出來(lái)的時(shí)候已經(jīng)背離了你的目標(biāo)很遠(yuǎn)。因此在做任何需求或者設(shè)計(jì)的時(shí)候第一個(gè)問(wèn)題就要問(wèn)自己為什么要做,作的過(guò)程中時(shí)刻要記得我的目標(biāo)是什么。這讓我想起了我在離開(kāi)阿軟的那些日子和王堅(jiān)博士談話(huà)以及聽(tīng)他的一些對(duì)于設(shè)計(jì)的理念,很多時(shí)候還沒(méi)有到規(guī)模化的情況下,先解決客戶(hù)的需求,在解決客戶(hù)需求以后,逐步的去考慮規(guī)模化問(wèn)題的設(shè)計(jì)。(當(dāng)然不是說(shuō)第一版設(shè)計(jì)就可以隨便作,良好的基礎(chǔ)能夠提升后續(xù)改進(jìn)的速度)。
二類(lèi)型的就比較多了,其實(shí)是很多開(kāi)發(fā)人員的通病,包括有時(shí)候我自己也會(huì)陷入這樣的誤區(qū)。通常情況下有兩種場(chǎng)景會(huì)陷入這樣的誤區(qū),同時(shí)當(dāng)事人卻又不愿意改變。第一種情況就是覺(jué)得自己有不少的經(jīng)驗(yàn),同時(shí)對(duì)技術(shù)很執(zhí)著,希望設(shè)計(jì)出來(lái)的都是很完美的,一次發(fā)布就可以滿(mǎn)足個(gè)1,2年,但其實(shí)從這些年的設(shè)計(jì)角度來(lái)看,首先系統(tǒng)都是不斷迭代進(jìn)化的,因此一步到位的說(shuō)法基本上不靠譜(除非就是一模一樣的場(chǎng)景代碼重復(fù)使用),其次系統(tǒng)的架構(gòu)要做的足夠靈活,通常情況就需要先做核心功能,預(yù)留出足夠的空間和切入點(diǎn),這樣對(duì)未來(lái)擴(kuò)展和需求變化有足夠的適應(yīng)度。從這兩點(diǎn)來(lái)看,其實(shí)設(shè)計(jì)初期就是要求找到客戶(hù)最想要的,擴(kuò)展可以實(shí)現(xiàn)客戶(hù)可能要的,防范客戶(hù)沒(méi)有估量到的。但這其實(shí)就需要和我們的產(chǎn)品設(shè)計(jì)師有充分的交流,好的產(chǎn)品設(shè)計(jì)師不會(huì)告訴你你怎么去實(shí)現(xiàn),但是他會(huì)告訴你我想要的是什么,這些能給客戶(hù)帶來(lái)什么,這時(shí)候你可以告訴他我能夠通過(guò)什么方式來(lái)滿(mǎn)足你的需求。這樣的開(kāi)發(fā)和產(chǎn)品設(shè)計(jì)交流的結(jié)果才是技術(shù)化的產(chǎn)品,大家各司其職,同時(shí)也通曉對(duì)方領(lǐng)域的一些情況,對(duì)對(duì)方領(lǐng)域的只能給出建議,不是指導(dǎo),這點(diǎn)在TOP我很慶幸有很好的黑羽同學(xué),我們的交流就是這樣產(chǎn)生良性互動(dòng)。這有點(diǎn)撤遠(yuǎn)了,剛才說(shuō)了第一種場(chǎng)景,然后說(shuō)說(shuō)第二種場(chǎng)景,就是初期其實(shí)大家都沒(méi)有明確細(xì)節(jié),但是在實(shí)施過(guò)程中開(kāi)發(fā)人員會(huì)根據(jù)自己的接觸面來(lái)選擇一些技術(shù)和架構(gòu)設(shè)計(jì),最后看起來(lái)很復(fù)雜,很完美,但其實(shí)越是復(fù)雜的設(shè)計(jì)背后有越多的隱患。但是此時(shí)因?yàn)橐呀?jīng)設(shè)計(jì)好了,就不愿意再去簡(jiǎn)化,也不愿意聽(tīng)任何人的意見(jiàn),其實(shí)這是很危險(xiǎn)的。我過(guò)去也犯過(guò)類(lèi)似的錯(cuò)誤,但是其實(shí)當(dāng)你冷靜下來(lái),想想那句話(huà),我們的目標(biāo)是什么:“滿(mǎn)足客戶(hù)需求”,這時(shí)候你就會(huì)考慮,這么復(fù)雜的系統(tǒng)會(huì)不會(huì)給客戶(hù)帶來(lái)更多的不穩(wěn)定以及復(fù)雜度,其實(shí)客戶(hù)不關(guān)心你背后如何實(shí)現(xiàn)的,但是你需要滿(mǎn)足客戶(hù)的最基本的需求,用起來(lái)方便,高效,實(shí)實(shí)在在提供了解決問(wèn)題的手段。
今天下午面試了一個(gè)外部的同學(xué),工作年限比我長(zhǎng),看了簡(jiǎn)歷也經(jīng)歷了很多項(xiàng)目,同時(shí)在描述的時(shí)候?qū)懥藢?duì)高并發(fā),分布式等等都很熟悉和熱衷,我開(kāi)始看了簡(jiǎn)歷就擔(dān)心,可能我這邊不一定要他,因?yàn)槲遗滤_(kāi)口就是說(shuō)一大堆如何做高并發(fā)和分布式的內(nèi)容。在我看來(lái)如果你沒(méi)有搞清楚你什么時(shí)候要用牛刀,什么時(shí)候要用剪刀的人,和你談?wù)撆5兜臉?gòu)造其實(shí)沒(méi)啥意思,因?yàn)樵谖铱磥?lái),技術(shù)只要你肯花時(shí)間去學(xué),沒(méi)什么學(xué)不到的,但是做事方式和項(xiàng)目設(shè)計(jì)經(jīng)驗(yàn)卻是長(zhǎng)時(shí)間積累的。幸好今天和他一談,他對(duì)于技術(shù)的態(tài)度以及架構(gòu)設(shè)計(jì)的思想都和我想的比較接近,不是為了技術(shù)而技術(shù),不是為了過(guò)程而過(guò)程,了解如何從簡(jiǎn)如繁,再?gòu)姆比牒?jiǎn),最終能夠找到自己的目標(biāo)。當(dāng)然后來(lái)還是談了很多技術(shù)細(xì)節(jié)的問(wèn)題,畢竟干活還是要一個(gè)好手,作了那么多年如果沒(méi)有經(jīng)驗(yàn)和技術(shù)積累也是很可怕的事情。最后我問(wèn)了他兩個(gè)問(wèn)題:1.你學(xué)習(xí)一個(gè)新技術(shù)的過(guò)程是怎么樣的?2.你和你同事如果在設(shè)計(jì)方案上有沖突你怎么解決?他告訴我他學(xué)習(xí)新技術(shù)首先會(huì)去考慮這個(gè)技術(shù)的特點(diǎn)是什么,和其他技術(shù)的差別,他的擅長(zhǎng)領(lǐng)域是什么,這樣才能夠用到實(shí)處。第二個(gè)問(wèn)題他和我說(shuō)就是開(kāi)會(huì)討論,最后大家群體決定。我對(duì)他第一個(gè)問(wèn)題感到很滿(mǎn)意,因?yàn)槲揖托枰@樣的同事,第二個(gè)問(wèn)題我給了他一個(gè)建議,其實(shí)在很多時(shí)候,將別人的架構(gòu)設(shè)計(jì)的優(yōu)點(diǎn)融入到自己的設(shè)計(jì)中,不再以方案作為邊界,那么大家最終就很容易達(dá)成一致,因?yàn)槟阍诮邮軇e人的思想時(shí)其實(shí)能夠看到自己的不足,同時(shí)對(duì)待別人不是用否定的態(tài)度,會(huì)讓你更容易得到認(rèn)可和接受。(這點(diǎn)作起來(lái)需要不斷的改變程序員自身的好勝個(gè)性,我起碼還是出于變化中…)
我記得我小時(shí)候上政治課的時(shí)候,老師給我們劃分了三種人:有能力但是沒(méi)有道德的人是危險(xiǎn)的人,沒(méi)有能力但是有道德的人是對(duì)社會(huì)無(wú)害的人(覺(jué)得像葛優(yōu)說(shuō)的那個(gè)對(duì)社會(huì)無(wú)害的海龜一個(gè)概念),有能力同時(shí)也有道德的人是對(duì)社會(huì)有益的人。我覺(jué)得其實(shí)程序員也就可以從兩個(gè)緯度看:
1. 有能力,有經(jīng)驗(yàn),對(duì)技術(shù)有追求。
2. 對(duì)產(chǎn)品化和客戶(hù)沒(méi)有任何感覺(jué)。
擁有了素質(zhì)1但是沒(méi)有素質(zhì)2,那么最多也就只能說(shuō)是試驗(yàn)室的花朵,在大學(xué)搞搞研究還不錯(cuò),實(shí)際要做出產(chǎn)品來(lái)可能就是紙上談兵,好鋼始終用不到刀刃上,有力沒(méi)地使。
素質(zhì)1有所欠缺,素質(zhì)2很明晰,對(duì)自己目標(biāo)不斷追求,其實(shí)這樣的人,有時(shí)候笨鳥(niǎo)也會(huì)飛的比聰明的鳥(niǎo)更高。
擁有1,2的人,當(dāng)然就是最好的人,只需要學(xué)會(huì)做人那么就可以發(fā)揮自己的能量。(程序員有時(shí)候就是很難改變自己的個(gè)性,去學(xué)會(huì)如何溝通和理解)
最后一類(lèi)就是自以為有1和2的人,這類(lèi)人最怕就是面試的時(shí)候被考官通過(guò),那么后續(xù)的問(wèn)題就大了。
說(shuō)了怎么多,其實(shí)也無(wú)非想說(shuō)出一個(gè)程序員這些年的經(jīng)歷,從做開(kāi)發(fā)到做基礎(chǔ)平臺(tái),到做業(yè)務(wù)平臺(tái),該怎么踏實(shí)做事,該在什么時(shí)候找到自己的瓶頸,該在什么時(shí)候改變自己的狀態(tài),都需要自己好好的讓自己冷靜下來(lái)想想。做基礎(chǔ)平臺(tái)需要耐得住寂寞,同時(shí)也要知道自己是有客戶(hù)的,服務(wù)不好客戶(hù),那么基礎(chǔ)組件平臺(tái)就是玩具。做業(yè)務(wù)平臺(tái)需要學(xué)會(huì)去分析和溝通,需要去了解每一個(gè)層次的設(shè)計(jì)如何協(xié)作,同時(shí)在兼顧業(yè)務(wù)需求的同時(shí)滿(mǎn)足隱性需求(穩(wěn)定性,可用性,響應(yīng)速度,規(guī)模化等等)。但歸根到底,能給開(kāi)發(fā)人員不斷能量的不是技術(shù)本身,而是你用技術(shù)給你的客戶(hù)帶來(lái)的價(jià)值,對(duì)你的認(rèn)可是長(zhǎng)期做事的一個(gè)最基本的動(dòng)力,因?yàn)楫?dāng)你現(xiàn)在覺(jué)得純做技術(shù)能夠支持你不斷向前走的時(shí)候,其實(shí)在不遠(yuǎn)的將來(lái)你會(huì)體會(huì)到原來(lái)過(guò)程和目標(biāo)是同樣重要的。走出自己的一畝三分地,給自己多一點(diǎn)的空間,會(huì)讓自己看得更遠(yuǎn),走的更高。