引言
最近LZ負責了一個規模較大的項目,可謂是亞歷山大。目前這個項目還未結束,離成功看似一步之遙,卻走的非常艱難。由於項目上線時間比較緊,最近LZ是頻繁加班,只不過與以往不同的是,這次是LZ逼着大家伙加班,而不再是被強迫加班的那個人。不由得感慨萬千,有些事情確實是不吐不快。各位猿友就當是聽聽LZ的嘮叨吧。
項目由來
首先,項目的由來必須要稍微介紹一下,以下簡稱該項目為A項目。A項目是一個“大”型項目,之所以說是大型,是因為它直接牽扯到四個項目組,並間接牽扯到兩個項目組,共六個項目組。
最早的時候,A項目是由LZ的項目經理負責,產品經理也是有專人擔當,那時候LZ還是一個程序猿,不過LZ當時在維護老的項目(以下簡稱B項目),因此A項目LZ可謂是一行代碼都沒寫。后來產品經理先離開了項目組,換了一個產品經理。再后來,LZ的項目經理升職,沒時間管理項目組,組里就很快來了一位研發經理,A項目則由新來的研發經理負責。至此,該項目的產品領導和技術領導已經換了一遍。
到了這個時候,LZ已經有些“小”領導的苗頭,帶領着兩個女生依然維護老的B項目(這里PS一下,這里A和B項目其實是同一個project,再通俗點講就是在eclipse里是一個project,而A項目其實就是B里面的一個模塊,只不過這個模塊比較大,所以單獨立項了)。因此,當時雖然還是一個項目組,但卻有種一分為二的感覺。LZ領着兩個女生維護B項目,研發經理領着四個外包一個內部員工開發A項目。
后來A項目里唯一的內部員工因為個人原因離職,我們的研發經理就帶着四個外包繼續做A項目。但其實A項目的進展非常緩慢,因為負責A項目的測試人員從到公司到離職,不是結婚就是懷孕,要嗎就是流產需要休息,一個星期五天班有四天在請假,整個就是來公司結婚生孩子來的,測試一度毫無進展。
沒過一段時間,A項目唯一的測試人員也離職,至此,A項目徹底進入了零進展階段,之前雖然慢,但隔三差五的還會測一測,讓開發人員改改bug。正在此時,雪上加霜,負責A項目的研發經理和產品經理雙雙在同一時間離職。
當時,LZ依舊帶着兩個女生在維護B項目。不過由於研發經理和產品經理離職,LZ的項目經理因為升職為部門經理也越來越忙,自然而然,LZ就接手了整個項目組,這自然也包括了A項目。但此時的A項目,研發經理和產品經理換了一輪並全部離職,開發人員走了一個,測試人員一個都沒有,真可謂是一個大大的爛攤子啊。
但是故事還沒有結束,沒過一個月,當初的四個外包又走了兩人,真正的原A項目成員,僅剩兩個開發。而就是這個月月底,其中一個開發也即將離開。到時,整個A項目的原班人馬將只剩一個開發。
噩耗來臨
盡管A項目一度毫無進展,但LZ並未受到任何壓力。因為這個號稱去年8月份結項的項目,都拖到了今年3月份了,但似乎所有人都並不着急。LZ當然也不着急,本身LZ對這個項目就一無所知,而且LZ一直維護的B項目是公司的核心項目,因此就算沒有A項目,LZ已經忙的團團轉了。
結果美夢剛開始就結束了,就在4月份左右,業務部門某老大直接一封雞毛信扔到我們CTO手里,要求務必盡快將A項目上線。CTO扛不住,自然一聲令下,讓手下的二把手着手梳理這個已經延期半年多的項目。梳理以后發現,這種牽扯到這么多項目組的項目,必須設定一個總負責人,否則如何協調這么多項目組合作開發並配合聯調改bug呢。
是的,你沒有猜錯。LZ就在這個時候成了這個冤大頭,總負責人最終定的是LZ。不過說實話,這也在LZ意料之中,畢竟這個項目原本就屬於LZ的項目組,而LZ的項目經理現在是部門經理自然不太會去管具體的項目,剩下的就只有LZ了。
當時A項目的代碼已經上了UAT(雖然有不少人都知道,這里還是普及一下,UAT就是用戶驗收測試環境),而由於當時A項目的測試是三天打魚兩天曬網,因此當時A項目在上UAT之前根本就沒有經過完整的測試,整個項目可謂漏洞百出。
意料之中,UAT得到了用戶的強烈不滿,偶爾也會有業務同事找LZ反應UAT的糟糕狀況,讓LZ盡快解決。當時LZ也協調過多次,組織幾個項目組一起解決並每周反饋各自的問題,但都效果不佳。
原因很簡單,LZ的項目組與其它幾個項目組都是同級關系,平時互不相干,也沒有上下級關系。LZ的項目組屬於研發X1部,而其余幾個項目組有X2部的,也有X3部的,X1部的部門經理就是當時LZ的項目經理,而X2部和X3部也有各自的部門經理。
有時候,LZ也會求助本部門的部門經理,讓他去找其它兩個部門的部門經理,再由兩個部門經理協調下面的項目組配合我。但實際效果卻非常一般,畢竟我們X1部的部門經理和X2、X3部的部門經理同樣是同級關系,依舊沒有上下級關系,只能是求助,但稱不上命令。因此對方雖然肯定會答應配合,但真正落實到項目組,其實效果已經非常弱化了。
就這樣,A項目經歷了艱難的兩個月的UAT測試,但進展依舊緩慢。雖然比起之前幾乎零進展好了很多,但卻遠遠無法趕上業務部門要求上線的速度。沒有辦法,LZ只能一封雞毛信要求各項目組配合實行兩步走政策,並抄送給了各個項目經理、部門經理、CTO助理包括CTO本人。當時CTO幾分鍾內就回復了一封雞毛信,責令大家盡全力配合。當時的LZ,就像拿到了尚方寶劍一般,當時的各大CTO助理以及部門經理,都紛紛向LZ表示,需要什么人配合盡管開口。如此大的權利,自然也意味着天大的責任與壓力。
話說回來,由於A項目歷時一年半,代碼量巨大,因此光幾個項目組合並代碼就是一項很大的風險。於是LZ所設定的第一步就是先將代碼上線,但不開通A項目功能,只保證原有功能不受影響。第二步才是在UAT環境測試無誤的情況下,嘗試開通A項目功能,達到上線的目的。
於是為了趕着做到第一步,加班的日子開始了。
LZ帶着幾個項目組加了一個星期的班,終於把這一年多的代碼給放到了線上,並且沒有影響到原來的功能和流程。但此時,其它幾個項目組的同事已經有不少人怨聲載道,紛紛對加班表示着憤慨。或許是X2部的某個項目組同事向領導反映了加班的痛苦,X2部部門經理直接一封雞毛信就扔了過來,開始質問LZ,LZ思來想去,一封郵件寫了又刪,刪了又寫。
到底是有一說一,有二說二,還是忍氣吞聲?
或許大部分人會覺得LZ忍氣吞聲了吧,畢竟這才是明哲保身的明智之舉。但各位錯了,LZ一封雞毛信直接殺了回去,倒是殺了個片甲不留,但LZ也知道,這下算是徹底把X2部領導得罪了。
不過好日子才剛剛開始,我們這才完成了第一步,而最難的還是第二步。於是接下來的日子,LZ又帶領大家加了四天的班(每周二和周四是上線日),趁着上線日晚上,不影響業務的前提下,LZ開始帶着大家直接在線上進行驗證。這四天,LZ每天都是凌晨四五點才回家。開始兩天是四個項目組、運維組、DBA組、配置管理組全部都得加班,沒有LZ的允許不准離開。
后面兩天,由於LZ的項目負責的是A項目流程的開始,結果與流程上緊隨其后的一個項目組的接口出現了問題,導致流程一直走不到后面,於是LZ便讓位於流程下游的兩個項目組以及配置管理組正常下班,留下LZ和其余的一個項目組每晚調試接口。
說來也怪,A項目實在是非常不順利,開發、測試、UAT環境已經用了半年多的接口,到了線上竟然不通。具體情況LZ這里就不多說了,介紹起來比較復雜。最終為了保障項目的進度,LZ決定采取保守方案,將接口更改為RMI通信先保證進度(因為LZ的項目與這個項目組已經使用了四年的RMI,而且更改的時間可以在兩個小時內搞定),同時在有時間的時候,繼續查找這個奇怪的問題。
結果這個決定竟然被一封雞毛信就頂了回來,竟然遭到了X3部門的部門經理的反對,而且是嚴厲的反對。這讓LZ一頭霧水,對於LZ的這個決定,LZ思來想去也並沒有覺得有什么不妥。仔細想想,或許是最近LZ一直在調用他們部門的人,換了誰,總會有點不爽吧。
但作為部門經理,不應該如此小肚雞腸吧。這又回到了剛才的話題,有一說一,有二說二,還是忍氣吞聲?
當然要說!
這次還與上次不同,上次只是一時的口舌之爭,這次可是真正的方案決策。如果不按照LZ所說的辦,LZ敢說,進度至少再延遲一個星期,而到時候,背黑鍋的還是LZ自己,畢竟這個項目名義上的負責人還是LZ。
於是LZ一封雞毛信直接殺了回去,這次依然殺了個片甲不留,但是同樣,X3部的部門經理LZ也徹底得罪了。這件事,也就僅僅是幾天前的事。目前方案依然是按照LZ的方案走,明天就開始實施,結果如何還不得知,但LZ最近確實扛了不小的壓力。
所謂進退兩難,就是如此。進,得罪人的一件事。退,項目失敗,領導另選賢良,LZ歸隱山林。
思考
LZ一直在想,這件事進展的這么不順利,到底是因為什么?自從LZ開始玩DOTA,就明白一個道理。輸了不能噴隊友,一定是自己發揮的不好。因此LZ一直在想,自己是不是有什么地方做的欠妥,或者是決策有誤。
但想來想去,LZ也沒想明白到底哪里應該改善,除了那兩次與X2、X3部部門經理的沖突,但就算如此,也最多是少得罪兩個人,項目進度本身也不會有任何變化。而且要說加班,LZ可是至始至終一天沒落,為何就沒人理解LZ的壓力與辛苦呢。想到這,LZ甚至有撂挑子不干的沖動。但理智告訴LZ,臨陣脫逃,是萬萬不可。
如果此時LZ逃了,那么將來必定難成大事,俗話說一朝被蛇咬十年怕井繩,同樣的一件事上,你被打垮一次,那么下一次你就連接都不敢接了,更別提把事情辦成。這件事,LZ絕對不允許它發生,LZ必須拿下這關,哪怕再困難。
這次事情雖然還沒有結束,但也讓LZ明白,沒有人會在你一無所獲的時候理解你,大家理解你的前提是,你把事情干成了。事情干成了,你的所有辛苦都將是可歌可泣的,如果事情失敗,你的所有辛苦都將是你無能的表現。
因此,這件事,LZ必須不擇手段拿下!