“預(yù)防勝于救火”,道理都懂,但是當(dāng)面臨成本、時(shí)間等壓力時(shí),最易被放棄的就是質(zhì)量,在HW做過(guò)很多次這樣的事情,雖然每次壓力山大,但是收獲頗多。

  分享的第一個(gè)案例是我們的產(chǎn)品在08年由于中標(biāo)了印度某運(yùn)營(yíng)商, 中標(biāo)以后,這個(gè)項(xiàng)目就由印度的同事交付以及維護(hù),這個(gè)項(xiàng)目每個(gè)月能夠給運(yùn)營(yíng)商帶來(lái)幾百萬(wàn)美刀的收入,加上項(xiàng)目是合營(yíng)的,利潤(rùn)還是不錯(cuò)的。由于印度同事對(duì)產(chǎn)品的理解不夠深入,以及產(chǎn)品本身代碼質(zhì)量并不高,所以在08年年底交付以后,網(wǎng)上問(wèn)題一直不斷,但是因?yàn)槔麧?rùn)還不錯(cuò),由于印度人自己和自己人打交道,所以質(zhì)量問(wèn)題一直沒(méi)有成為T(mén)op 1的問(wèn)題。

  但是09年的時(shí)候這個(gè)項(xiàng)目的甲方的高層領(lǐng)層換了人,換個(gè)領(lǐng)導(dǎo)以后就會(huì)把這個(gè)事情擺上臺(tái)面,甚至提出這些質(zhì)量問(wèn)題如果不解決的話,后續(xù)的合同不續(xù)簽。

  印度的同事因?yàn)閷?duì)產(chǎn)品接觸的時(shí)間才一年多,我雖然接觸也才2年,但是因?yàn)槲以趪?guó)內(nèi)接觸的資料會(huì)比他們多一些,加上我在當(dāng)時(shí)的團(tuán)隊(duì)里技能稍微好一些,于是領(lǐng)導(dǎo)就把這個(gè)“偽專家”給拋出去了。萬(wàn)事開(kāi)頭難,和印度的同事除了語(yǔ)言他們那非常重的口語(yǔ)我經(jīng)常聽(tīng)不懂以外,還有他們做了近2年的定制開(kāi)發(fā),很多功能已經(jīng)和最早的產(chǎn)品已經(jīng)不一樣了,怎樣在短期內(nèi)快速的解決明顯的問(wèn)題,我心里真是沒(méi)有底,不知道自己能不能完成這個(gè)任務(wù)。

  接到任務(wù)以后,和他們郵件、電話做了充分溝通以后,了解到他們最突出的問(wèn)題:網(wǎng)上運(yùn)行不穩(wěn)定,以至于他們每天晚上安排一個(gè)兄弟把集群里每個(gè)機(jī)器挨個(gè)重啟一遍,這樣大部分情況下能夠確保能跑一天,但是每天這么重啟也不是辦法。在和他們商量以后,計(jì)劃分2步走:

  1、止血: 先確保不用每天手工的重啟

  2、在實(shí)驗(yàn)室環(huán)境搭建同樣的環(huán)境,將主要流程在實(shí)驗(yàn)室進(jìn)行壓測(cè),重現(xiàn)問(wèn)題。

  第一針止血,他們的要求很簡(jiǎn)單,就是不要每天半夜起來(lái)人工重啟。這個(gè)要求簡(jiǎn)單,用perl寫(xiě)了一個(gè)watchdog的腳本,這個(gè)腳本原理很簡(jiǎn)單,但是發(fā)揮了很重要的作用。因?yàn)樗粌H能夠發(fā)現(xiàn)服務(wù)掛