大學(xué)期間,我熱愛(ài)觀看央視“贏在中國(guó)”節(jié)目。學(xué)到了很多做事的方法和做人的方式,雖然對(duì)于什么是創(chuàng)業(yè),在創(chuàng)業(yè)中會(huì)遇到什么問(wèn)題等等一些都未知,但那份年輕人的沖動(dòng)和對(duì)于創(chuàng)業(yè)的興奮已經(jīng)被激發(fā)到極點(diǎn)。畢業(yè)找工作,我毅然選擇了一家從事旅游行業(yè)的創(chuàng)業(yè)型互聯(lián)網(wǎng)小公司。
面試階段,一個(gè)相互選擇的階段。在大學(xué)期間,我運(yùn)用J2EE技術(shù)給某朋友成功建立一家從事游戲虛擬物品交易平臺(tái),無(wú)形中已經(jīng)培養(yǎng)了一定的需求溝通,需求挖掘,設(shè)計(jì),項(xiàng)目管理等能力。加上我是一張“白紙”(價(jià)值觀等都未受到任何公司的影響)和對(duì)于創(chuàng)業(yè)的那份沖勁。老板理所當(dāng)然的選擇了我,由我來(lái)負(fù)責(zé)一個(gè)項(xiàng)目的全部工作。公司給我提供我認(rèn)為過(guò)得去的工資,也是我所喜好的創(chuàng)業(yè)型小公司,我認(rèn)為很有前途(年少無(wú)知,不知后路的艱辛)。我也選擇了公司。這就是我第一家的公司。
工作階段,充當(dāng)孫悟空的階段。最簡(jiǎn)單的開(kāi)發(fā)模式,最簡(jiǎn)單的項(xiàng)目管理方式,最簡(jiǎn)單的上線過(guò)程,最簡(jiǎn)單的線上故障處理。一切都是那么簡(jiǎn)單。簡(jiǎn)單的讓我換第二份工作的時(shí)候讓人覺(jué)得這幾年的工作都毫無(wú)進(jìn)步可言。
簡(jiǎn)單的開(kāi)發(fā)模式,老板一個(gè)概念的產(chǎn)生,沒(méi)有產(chǎn)品,直接拋到開(kāi)發(fā),開(kāi)發(fā)要么模仿別人的網(wǎng)站要么自己捉摸該怎么實(shí)現(xiàn),然后進(jìn)入編碼,沒(méi)有代碼review,沒(méi)有單元測(cè)試,沒(méi)有回歸測(cè)試,不關(guān)注代碼風(fēng)格,不注重代碼質(zhì)量。功能實(shí)現(xiàn)了就算完了。后來(lái)改進(jìn),有產(chǎn)品分析設(shè)計(jì)產(chǎn)生prd,開(kāi)發(fā)人員按照prd進(jìn)行開(kāi)發(fā),有時(shí)進(jìn)行部分重構(gòu),代碼質(zhì)量也沒(méi)有太多的提升。
簡(jiǎn)單的項(xiàng)目管理方式,概念出來(lái),開(kāi)發(fā)人員大致揣測(cè)出老板的意圖之后,開(kāi)始分模塊,估算時(shí)間,分配人員功能模塊。老板看到項(xiàng)目時(shí)間需要3個(gè)月,老板對(duì)我們說(shuō),不可能需要這么長(zhǎng)時(shí)間吧,給你們一個(gè)月半的時(shí)間給我完成吧,最后經(jīng)過(guò)討價(jià)還價(jià),老板說(shuō)再加半個(gè)月,你們不能再說(shuō)了,最后我們被老板“強(qiáng)奸”了。項(xiàng)目也有版本控制,但是沒(méi)有分支,只有主干,多個(gè)不同時(shí)間點(diǎn)的需求上線都在同一個(gè)主干上開(kāi)發(fā),導(dǎo)致有時(shí)候因?yàn)楹竺鏁r(shí)間點(diǎn)的需求影響了前面時(shí)間點(diǎn)需求的上線。
最簡(jiǎn)單的上線過(guò)程,開(kāi)發(fā)人員自學(xué)linux系統(tǒng)管理,自己通過(guò)ftp把主干代碼上傳部署,而且都是老板訪問(wèn)不了網(wǎng)站我們才知道出故障了,接著開(kāi)發(fā)人員在主干上改bug,改完bug重新部署,發(fā)現(xiàn)之前的bug沒(méi)了,出現(xiàn)了新的4個(gè)bug。繼續(xù)修改bug,部署…無(wú)限循環(huán)。
最簡(jiǎn)單的線上故障處理,數(shù)據(jù)庫(kù)負(fù)載過(guò)高、web服務(wù)器負(fù)載過(guò)高、服務(wù)器硬件壞了、網(wǎng)絡(luò)線路,機(jī)房斷電等等問(wèn)題出現(xiàn)之后,唯一的辦法就是停止網(wǎng)站服務(wù)進(jìn)行修復(fù)。
每周五下午例會(huì),討論的問(wèn)題都沒(méi)有積累下來(lái),沒(méi)有被分享給其他團(tuán)隊(duì)成員,更不可能分享給新員工。
上面的流程基本上都是由開(kāi)發(fā)人員負(fù)責(zé),開(kāi)發(fā)人員此時(shí)就是多角色,類似孫悟空,需要不斷轉(zhuǎn)換角色。更重要的是,上述所有流程和項(xiàng)目管理都只是關(guān)注項(xiàng)目自身。沒(méi)有關(guān)注團(tuán)隊(duì)知識(shí)的積累,人員的培訓(xùn)。本質(zhì)上就是不關(guān)注“成長(zhǎng)”。我作為項(xiàng)目經(jīng)理,我承認(rèn)自己之前的不足,但值得慶幸的是我在離開(kāi)之前做了一些比較有意義的事情,我讓部門開(kāi)發(fā)人員每個(gè)星期輪流做分享,讓整個(gè)部門的人能夠?qū)W到更多的知識(shí)。
后來(lái)來(lái)到淘寶,在這里能學(xué)到很多東西,因?yàn)檫@里有完善的培訓(xùn)體系,注重員工的個(gè)人成長(zhǎng)。一個(gè)小插曲,我在新員工手冊(cè)里看到sprint這個(gè)單詞,我想在業(yè)內(nèi)算比較牛的公司竟然還會(huì)把spring寫成sprint,后來(lái)接觸到了scrum敏捷開(kāi)發(fā),我才知道原來(lái)sprint是scrum的一個(gè)迭代周期。那個(gè)羞啊。哈哈。
來(lái)到淘寶,猛然有一種柳暗花明又一村的感覺(jué),以前我做的事情都有涉及到,但在腦海中沒(méi)有一個(gè)成形的框架,零零散散。
下面來(lái)講講跟我之前不一樣的地方。
開(kāi)發(fā)模式:
l 周五的雙周pk,產(chǎn)品排好需求優(yōu)先級(jí),項(xiàng)目經(jīng)理根據(jù)團(tuán)隊(duì)的人力資源pk需求,哪些可以完成,哪些人力不夠。這里要著重強(qiáng)調(diào)工時(shí),每個(gè)人每天都是按照4小時(shí)來(lái)算,其他4小時(shí)主要學(xué)習(xí),更好的完成工作。4個(gè)小時(shí)是根據(jù)團(tuán)隊(duì)平時(shí)工作效率來(lái)計(jì)算的,也有可能是5或6個(gè)小時(shí)。不同時(shí)期不同項(xiàng)目每個(gè)人都有不同的變化曲線。
l Pk下來(lái)的需求,技術(shù)團(tuán)隊(duì)在周一進(jìn)行任務(wù)拆分,然后大家領(lǐng)取各自的任務(wù)。
l 每個(gè)團(tuán)隊(duì)有自己的任務(wù)墻(故事墻),主要就是讓大家在每天的15分鐘晨會(huì)上列出各自的每天要完成的任務(wù)。
l 每天早上15分鐘的晨會(huì),一個(gè)是讓大家都能在某個(gè)時(shí)間點(diǎn)之前趕到公司開(kāi)會(huì),另一個(gè)就是讓大家清楚自己今天要做什么。晨會(huì)主要描述:1 我昨天做了什么 2 我遇到了哪些問(wèn)題,自己解決了可以簡(jiǎn)單分享給同事,解決了不了可以讓團(tuán)隊(duì)來(lái)幫忙一起解決。 3 今天我要做什么
l 每雙周要做回顧,看看出現(xiàn)了什么問(wèn)題,哪些地方可以再改進(jìn)。
l 最后就是分享,有技術(shù)分享,業(yè)務(wù)分享。
這個(gè)開(kāi)發(fā)模式對(duì)比以前有以下幾個(gè)優(yōu)點(diǎn):
l 團(tuán)隊(duì)資源的合理利用,不會(huì)出現(xiàn)老板說(shuō)幾個(gè)月完成然后底下的人拼命的加班,讓大家對(duì)技術(shù)的興趣越來(lái)越高,工作的越來(lái)越快樂(lè)。成長(zhǎng)也越來(lái)越快。
l 讓大家明確知道自己今天要做什么。
l 分享,不但自己是分享的參與者也會(huì)是分享的發(fā)起人。不管是哪種角色,你都能學(xué)到很多很多。通過(guò)分享,團(tuán)隊(duì)的進(jìn)步會(huì)非常快。
開(kāi)發(fā)流程:
l 編碼、單元測(cè)試
l Findbugs
l Mvn test
l Code review(重構(gòu),然后從頭開(kāi)始)
l 提交代碼到svn
這個(gè)開(kāi)發(fā)流程主要關(guān)注的是代碼的提升,保證代碼的質(zhì)量,通過(guò)代碼審查讓盡早發(fā)現(xiàn)不合理的地方。
上線流程:
l 提前一個(gè)星期申請(qǐng)上線
l 單元測(cè)試
l 提測(cè)給測(cè)試團(tuán)隊(duì)
l 打包
l 發(fā)上線計(jì)劃,預(yù)發(fā)冒煙,發(fā)布生產(chǎn)環(huán)境
這個(gè)流程我不是很熟悉,所以不作評(píng)論了。
有了這些比較優(yōu)秀的模式和流程,也需要工具的配合。
代碼版本控制:svn,并發(fā)開(kāi)發(fā)的需求需要用到分支,主干代碼盡量保證隨時(shí)可以上線。
項(xiàng)目的管理:maven,開(kāi)發(fā)模式,測(cè)試模式,生產(chǎn)模式配置的切換,也可以和hudson進(jìn)行持續(xù)集成。
讓我最有感觸的就是淘寶非常注重知識(shí)的積累和員工的成長(zhǎng)。在這里我感覺(jué)我真的成長(zhǎng)了,有踏實(shí)的感覺(jué),少了浮躁。這篇文章并不是說(shuō)小公司不好,也是因?yàn)樵谥澳羌夜窘佑|的面廣,所以來(lái)淘寶知道自己哪些對(duì)于自己更重要,但也并不鼓勵(lì)你畢業(yè)就去小公司,因?yàn)閷?duì)你的成長(zhǎng)不好。每個(gè)人的路都是唯一的,大家喜歡怎么走就看大家自己的了,每個(gè)選擇都是獨(dú)一無(wú)二的,這樣才能活出獨(dú)一無(wú)二的生活,絢爛的生活。