盼了好久的國(guó)慶節(jié)終于到了,整理一下手邊的工作,工作進(jìn)度的追蹤,code review和工作管理報(bào)告都已經(jīng)完成。終于松了口氣,長(zhǎng)假可以盡情休整一下(雖然回來(lái)工作會(huì)更忙碌),但這段時(shí)間可以有很多的自由時(shí)間分配,打算給自己好好的沖沖電。
閑話少說(shuō),進(jìn)入正題。之所以本人要提出"找工作一定要先了解公司的團(tuán)隊(duì)文化"這個(gè)建議,是因?yàn)樽罱豁?xiàng)工作中的一些事情讓我感觸頗深,所以寫下來(lái),也且當(dāng)發(fā)發(fā)牢騷。
由于最近公司與一個(gè)專業(yè)的軟件公司X公司(不方便直注該公司名稱)簽訂開發(fā)了一套比較大的系統(tǒng),現(xiàn)在到了開發(fā)合同到期, 按雙方領(lǐng)導(dǎo)協(xié)商,開始系統(tǒng)的交接工作。本人被任命參與到這項(xiàng)任務(wù),擔(dān)任移交過(guò)程中所有的技術(shù)支持工作。
交接工作其實(shí)就是對(duì)方公司提交約定要求設(shè)計(jì)文檔,最新的源代碼,接口文檔,我這邊負(fù)責(zé)審閱這些文檔和代碼,再重新按公司文檔要求重新整理,備案,當(dāng)然前題我必須完全整理這些文檔的內(nèi)容和代碼的每個(gè)方法的功能。
就在移交過(guò)程中,發(fā)生一些事情,讓我頭疼了好一陣,才引發(fā)了我對(duì)大家找工作的這條建議。
事情的全部經(jīng)過(guò)大概是這樣,因?yàn)橄到y(tǒng)比較龐大(其實(shí)共有五個(gè)獨(dú)立的子系統(tǒng)組成),所以一個(gè)子系統(tǒng)的進(jìn)行交接,每個(gè)子系統(tǒng)交接安排在兩周至三周時(shí)間。首先交接的就是文檔,當(dāng)我接到文檔后,著實(shí)讓我吃驚不少。文檔基本上看不太明白,不僅內(nèi)容不全,而且基于上與系統(tǒng)對(duì)應(yīng)不上。所謂的設(shè)計(jì)文檔,只有界面設(shè)計(jì)(而且沒有幾個(gè)與現(xiàn)系統(tǒng)能完全對(duì)應(yīng)上的)與數(shù)據(jù)表設(shè)計(jì)外,其它的什么都沒有。沒有辦法,所以讓領(lǐng)導(dǎo)干涉,但多次溝通無(wú)果后(跨公司合作很難), 最終只要放棄對(duì)文檔部分的要求,公司這邊也是希望我這邊通過(guò)掌握他們的代碼,這樣文檔部分就可以由我們邊來(lái)整理了。
當(dāng)然讀代碼并不是件易事,尤其是讀別人寫的代碼。所以我也整理了一套方案,希望對(duì)方公司能提供下面一些簡(jiǎn)單文檔以幫助我順利開展代碼的閱讀工作。
1. 程序清單--包括程序名稱(功能)對(duì)應(yīng)的源代碼文件,對(duì)應(yīng)的數(shù)據(jù)表名 (因?yàn)橛肅#開發(fā),基本上一個(gè)源文件,一個(gè)窗體文件)
2. 接口文檔(主要對(duì)其它子系統(tǒng)的接口部分,因?yàn)樗麄兊膶?shí)現(xiàn)是通過(guò)共享表實(shí)現(xiàn)數(shù)據(jù)交互,所以這塊接口說(shuō)明就更加重要)接口文檔希望他們能整理出 接口的功能說(shuō)明,接口所在的源代碼,接口數(shù)據(jù)表字段說(shuō)明,觸發(fā)的動(dòng)作,觸發(fā)的頻率。
這次對(duì)方公司很合作,三天就把文檔寫完發(fā)給了我們,但質(zhì)量呢?,除了程序清單還算可以看外,接口文檔就丟了幾張數(shù)據(jù)表過(guò)來(lái),而且還有三分之一的表名沒有列到文檔中,其它就什么都沒有的。(這是接口說(shuō)明文檔,當(dāng)然覺得不行了,這個(gè)根本沒有辦法整理), 所以提議想與他們的技術(shù)人員溝通一下,猜想可能對(duì)方是沒有太明白我們接口文檔的要求吧,所以溝通后,與他們的一個(gè)項(xiàng)目經(jīng)理協(xié)商(到里覺很,安排得很好,這樣的任務(wù)與技術(shù)領(lǐng)導(dǎo)溝通問(wèn)題應(yīng)該馬上就能解決了,我刻意先打聽一下這位經(jīng)理的一些情況,聽說(shuō)是有很高的學(xué)歷和資歷),準(zhǔn)備好說(shuō)詞后,就與這個(gè)經(jīng)理進(jìn)行了交流,但結(jié)果讓我有點(diǎn)意外,他強(qiáng)調(diào)這個(gè)文檔沒有問(wèn)題,所以我按原準(zhǔn)備好的說(shuō)詞,與他說(shuō)明接口的重要性,接口文檔應(yīng)該怎么編寫。而他的這次回答,就讓感覺太意外了。他解釋到,接口不是一個(gè)東西(頭一次聽說(shuō)),在他們的設(shè)計(jì)中,所有的代碼設(shè)計(jì)都是個(gè)人邊想邊寫的,而且他們的系統(tǒng)是一個(gè)整體,沒有接口(那幾個(gè)子系統(tǒng)交互的數(shù)據(jù)說(shuō)明沒有,那還不亂了),所以他解析根本沒有"(你們說(shuō)的)接口"這個(gè)東西,是因?yàn)槲覀兲崃艘?(這個(gè)他認(rèn)為不存在的)接口", 所以弄了幾張表給你們。還說(shuō)以前他們給別人做系統(tǒng),別人從沒有這么要過(guò)。同時(shí)故意詢問(wèn)一下他手下幾個(gè)做開發(fā)的人員,"你們知道接口嗎?能按他們要求整理出來(lái)嗎?"結(jié)果他手下很會(huì)意的回復(fù)到,怎么會(huì)有這東西,現(xiàn)在能整理得出數(shù)據(jù)表已經(jīng)不錯(cuò)了,我寫代碼現(xiàn)在早記不清楚,給你們弄表名已經(jīng)夠花時(shí)間的了。(真是無(wú)話可說(shuō)),接下來(lái)他還要"教導(dǎo)"我,說(shuō)我對(duì)接口是一個(gè)錯(cuò)誤的理解,要幫我糾正過(guò)來(lái)。聽他們這樣的回復(fù),真是無(wú)奈的很,但畢竟工作沒完成,無(wú)法向領(lǐng)導(dǎo)交差,還是堅(jiān)持的一點(diǎn)希望他們能按要求交出接口文檔, 但足足說(shuō)了20分鐘,都無(wú)果(可能有人會(huì)問(wèn),怎么會(huì)花這么多時(shí)間,我只能說(shuō)大家都看過(guò)大話西游的唐僧吧)。
最后終于放棄(無(wú)奈啊),無(wú)功而返?;厝ズ?,雖然頭疼,但必竟是自己的任務(wù)沒有完后,只好自己花時(shí)間讀代碼,希望把接口這部分的文檔整理出來(lái)。結(jié)果一看代碼,簡(jiǎn)直讓我哭笑不得,到處都是不知明的變量a1,ttt,text1,不知明的方法button1Onclick, button5Onclick。方法沒有參數(shù),都是通過(guò)全局變量來(lái)傳遞,還有更嚴(yán)重的就是數(shù)據(jù)庫(kù)操作竟然沒有事務(wù)(后來(lái)與他們一個(gè)開發(fā)人員交流后,才得知他根據(jù)就不知道什么是事務(wù),也不知道事務(wù)有什么用途), 與他們經(jīng)理溝通,結(jié)果他很“聰明"來(lái)一個(gè)拖延戰(zhàn)術(shù),沒辦法,系統(tǒng)問(wèn)題太多,不交接對(duì)方公司就不提供源代碼,也就無(wú)法解決問(wèn)題(最終他的戰(zhàn)術(shù)成功).
到現(xiàn)在為止交接過(guò)程就在這種狀況進(jìn)行近一半了,交接了有二個(gè)系統(tǒng)。也陸續(xù)見過(guò)一些他們的開發(fā)人員,都是畢業(yè)二三年的年青程序員,實(shí)話說(shuō)看他們的代碼,真是件非常痛苦的事情(怎么會(huì)有這樣的程序員),但反思過(guò)來(lái),替他們一想,想必他們剛從大學(xué)出來(lái),應(yīng)該也是雄心壯志,也想做一個(gè)優(yōu)秀的程序員(應(yīng)該是誤入了這個(gè)這么糟的團(tuán)隊(duì)所致吧)。其實(shí)我心里一直想問(wèn)他們一個(gè)問(wèn)題,"你們真不擔(dān)心自己的前途和發(fā)展嗎?"(并非我忋人憂天,像他們雖年輕,但時(shí)間一晃就過(guò),照他們現(xiàn)在沒有目標(biāo)規(guī)劃,只是與現(xiàn)在的團(tuán)隊(duì)熬下去的話,到了三十歲以后,那就比較難補(bǔ)救了。)
說(shuō)了這么多,的確啰嗦了。最后還是強(qiáng)調(diào)一下我們觀點(diǎn),找工作,一定要多去了解面試的那個(gè)團(tuán)隊(duì)的文化氛圍。本人認(rèn)為好的團(tuán)隊(duì),才能帶領(lǐng)員工成長(zhǎng)和發(fā)展的。
祝國(guó)慶快樂!
Good Luck!
Yours Matthew!
posted on 2008-09-29 00:48
x.matthew 閱讀(659)
評(píng)論(1) 編輯 收藏 所屬分類:
其它