TJS_IMIS項(xiàng)目經(jīng)歷
2002年10月,也就是剛開始研究生學(xué)習(xí)不久,我迎來了一個(gè)新的挑戰(zhàn)。導(dǎo)師接到一個(gè)特種設(shè)備監(jiān)察檢驗(yàn)所的信息集成系統(tǒng),由于實(shí)驗(yàn)室只有我和一位博士師兄有相關(guān)的項(xiàng)目經(jīng)驗(yàn),我的企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)似乎更勝一籌,導(dǎo)師把項(xiàng)目管理、系統(tǒng)架構(gòu)的重任交到我手上。對當(dāng)時(shí)的情景印象非常深刻,導(dǎo)師在開會(huì)討論時(shí)簡單介紹了項(xiàng)目的情況,然后提名讓我做PM,當(dāng)時(shí)有幾名博士和碩士師兄師姐以及同級的同學(xué)
一共六七個(gè)成員在場,大家一致通過。我知道我是憑借著以前的項(xiàng)目經(jīng)驗(yàn)得到導(dǎo)師的賞識并委以重任,雖然充滿信心,但也有些緊張。雖然我有超過兩年的企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn),但作為項(xiàng)目管理人員,還是頭一遭。以前對項(xiàng)目管理的認(rèn)識都是停留在理論和觀察上,現(xiàn)在則是來真的了。當(dāng)時(shí)我剛完成工作流定義工具的開發(fā),還沒歇會(huì),研究生課程也比較緊,這真是一個(gè)巨大而全新的挑戰(zhàn)。我給自己打氣:這是一次挑戰(zhàn),也是一個(gè)機(jī)會(huì)。我花了幾天時(shí)間整理總結(jié)了過去的項(xiàng)目經(jīng)驗(yàn)和對項(xiàng)目管理的認(rèn)識,然后跟導(dǎo)師確認(rèn)了項(xiàng)目能安排的資源。
以前作為項(xiàng)目組成員,總是由一個(gè)team leader帶著,現(xiàn)在自己也要成為team leader了。我相信自己一定行的,成功屬于有準(zhǔn)備和努力的人。我花了一個(gè)星期的時(shí)間去特檢所做了系統(tǒng)調(diào)研(由于特檢所跟學(xué)校不在同一個(gè)城市,一次調(diào)研要跑好幾趟,真是累?。?,基本上了解了特檢所的總體要求,他們希望能有一個(gè)信息集成系統(tǒng),包括內(nèi)部信息管理系統(tǒng)負(fù)責(zé)管理所內(nèi)日常工作,信息發(fā)布系統(tǒng)負(fù)責(zé)對外發(fā)布信息,電話查詢系統(tǒng)提供對外查詢接口,移動(dòng)辦公系統(tǒng)輔助技術(shù)人員外出工作。花幾天時(shí)間對調(diào)研情況進(jìn)行了整理,并通過參考和比較選定了幾種關(guān)鍵的技術(shù),完成初步的調(diào)研報(bào)告和技術(shù)方案,提交給導(dǎo)師(項(xiàng)目監(jiān)督,呵呵),然后重重松了口氣。來回奔波確實(shí)很折磨人,雖然以前也經(jīng)常出差,但象這次這樣奔波倒還是第一次,不過還是很有成就感。在確定技術(shù)方案的時(shí)候,我參考了大量資料和案例,也咨詢了一些經(jīng)驗(yàn)人士,并根據(jù)項(xiàng)目組開發(fā)人員和特檢所的實(shí)際情況(成本、已有資源,工作方式等),給出了幾種技術(shù)方案和重點(diǎn)推薦方案。由于內(nèi)部信息管理系統(tǒng)只是在所內(nèi)部使用,而且客戶端數(shù)量不多,我選定了C/S作為系統(tǒng)的構(gòu)架,雖然從長遠(yuǎn)角度來說應(yīng)該考慮系統(tǒng)的兼容性而選擇先進(jìn)的B/S架構(gòu),但考慮到技術(shù)風(fēng)險(xiǎn)、技能風(fēng)險(xiǎn)(開發(fā)組成員都是第一次參加正式項(xiàng)目)、成本等因素,C/S仍是首選。而簡單的信息發(fā)布系統(tǒng)則可以用ASP+IIS搞掂,無須額外的應(yīng)用服務(wù)器,雖然涉及到少量提交頁面,但訪問量著實(shí)太少,性能和安全等問題基本上可以不用考慮。至于移動(dòng)辦公系統(tǒng),由于客戶給出的預(yù)算著實(shí)不是太充裕,秉著節(jié)儉實(shí)用的原則,同時(shí)考慮客戶的員工素質(zhì),選定了以PDA作為數(shù)據(jù)錄入、存儲(chǔ)、查詢設(shè)備,通過PDA與工作計(jì)算機(jī)交換數(shù)據(jù)的方案。電話查詢系統(tǒng)則只需選用價(jià)格適中的電話交換機(jī)設(shè)備就OK了。
調(diào)研報(bào)告提交后的幾天,我開始著手準(zhǔn)備項(xiàng)目計(jì)劃事宜。當(dāng)時(shí)可以參與項(xiàng)目的成員有七個(gè)左右(包括我在內(nèi)),其中只有一個(gè)博士師兄有過工作經(jīng)驗(yàn),但他不會(huì)有太多的時(shí)間投入,其他的成員都沒有實(shí)際項(xiàng)目經(jīng)驗(yàn),只是學(xué)過程序設(shè)計(jì)課程,做過課程設(shè)計(jì),而且熟悉Delphi的偏多。我根據(jù)系統(tǒng)的規(guī)模和大致需求,以及開發(fā)資源,估計(jì)了可能存在的風(fēng)險(xiǎn),確定了項(xiàng)目時(shí)間為六個(gè)月,其中考慮到分析設(shè)計(jì)人員有一定經(jīng)驗(yàn),而開發(fā)人員存在技能風(fēng)險(xiǎn),將需求分析/系統(tǒng)設(shè)計(jì)時(shí)間定為60天,編碼/單元測試90天(采用迭代開發(fā)模式),整合測試/培訓(xùn)/實(shí)施30天。雖然之后由于一些估計(jì)不足的風(fēng)險(xiǎn)(項(xiàng)目組成員全部是學(xué)生,存在不穩(wěn)定因素)導(dǎo)致項(xiàng)目時(shí)間有所調(diào)整,但項(xiàng)目進(jìn)度基本上在控制之中。
當(dāng)項(xiàng)目正式立案簽約后,就要開始需求分析了。在我?guī)б粋€(gè)成員進(jìn)行需求分析的一個(gè)月里,我才知道調(diào)研那段時(shí)間所受的痛苦是那么的輕微,與客戶溝通+文檔整理+來回奔波+學(xué)業(yè)+技術(shù)培訓(xùn),真正讓我體驗(yàn)了工作的艱辛。在需求分析的同時(shí),我整理了以前積累的技術(shù)文檔資料以及系統(tǒng)框架對項(xiàng)目組成員進(jìn)行了培訓(xùn),并讓一個(gè)基礎(chǔ)較好的成員作為助手,指導(dǎo)開發(fā)人員熟悉相關(guān)制度、文檔和代碼規(guī)范、系統(tǒng)框架、版本管理知識等等。需求分析期間,我體會(huì)到了溝通的重要,也提高了自己的溝通表達(dá)能力,雖然這是第一次接觸的業(yè)務(wù),但通過反復(fù)溝通,我基本上了解了整個(gè)業(yè)務(wù)流程,同伴主要負(fù)責(zé)部分部門業(yè)務(wù)細(xì)節(jié)的溝通,也較好地完成了任務(wù)。幸運(yùn)的是,客戶的高層領(lǐng)導(dǎo)非常重視這個(gè)項(xiàng)目,創(chuàng)造了良好的環(huán)境配合我們的工作。在與用戶溝通的時(shí)候,也遇到了一些問題。盡管他們一直都在用系統(tǒng)(用foxpro開發(fā))輔助工作,但他們對計(jì)算機(jī)的了解程度還是比較低,在溝通時(shí),時(shí)刻要注意不能使用計(jì)算機(jī)專業(yè)術(shù)語,而應(yīng)該用他們領(lǐng)域的語言描述需求,編寫需求分析說明書時(shí)只能使用用戶的語言。部分用戶對他們本身的需求比較模糊,這時(shí)候需要結(jié)合他們的實(shí)際工作和信息系統(tǒng)的功能進(jìn)行分析解釋,讓需求逐漸清晰。同伴非常認(rèn)真負(fù)責(zé),學(xué)習(xí)能力也很快,我們通過努力按時(shí)完成了需求分析。需求分析說明書提交給客戶后,我并沒有松口氣。根據(jù)以前的經(jīng)驗(yàn),客戶是非常相信軟件開發(fā)方的,要求他們在需求分析說明書sign in時(shí),他們會(huì)立刻簽名的。他們相信開發(fā)方已經(jīng)很好地理解了他們的需求,但事實(shí)上可能并非如此。我與導(dǎo)師一起跟他們說明了具體情況和風(fēng)險(xiǎn),要求他們認(rèn)真審核我們的需求分析說明書??蛻粢脖憩F(xiàn)出了較高水準(zhǔn),他們花一個(gè)星期的時(shí)間對需求進(jìn)行了確認(rèn),并最終簽字通過。雖然后來需求也發(fā)生了一些小變化,但總體來說,當(dāng)時(shí)的需求分析是非常成功的,基本上沒有影響項(xiàng)目
進(jìn)度。后來項(xiàng)目慶功會(huì)的時(shí)候,老板(導(dǎo)師的昵稱,呵呵)特別強(qiáng)調(diào)了需求分析的成功和所起到的作用,我被一再點(diǎn)名,弄得怪不好意思,J?;叵肫饋?,在整個(gè)需求分析過程中,過去項(xiàng)目經(jīng)驗(yàn)起了重要的作用,但我其間經(jīng)常向一些有經(jīng)驗(yàn)的前輩學(xué)習(xí)并且抽空學(xué)習(xí)相關(guān)的文檔資料和軟件工程書籍,保持思考,更是起關(guān)鍵性作用。整一個(gè)過程是我對以前經(jīng)歷總結(jié)的過程,也是不斷學(xué)習(xí)、思考的過程。能在工作中不斷學(xué)習(xí)、進(jìn)步,這是最讓我興奮的。
當(dāng)需求分析完成的時(shí)候,出來的成果不單是需求分析報(bào)告,還有一幫摩拳擦掌的兄弟姐妹。經(jīng)過培訓(xùn)和他們自身的努力學(xué)習(xí),他們已經(jīng)不再是雛鳥(他們的用詞是“菜鳥”,呵呵)了。我看過他們的代碼,與他們就開發(fā)過程的看法進(jìn)行了交流,發(fā)現(xiàn)他們真的是學(xué)習(xí)和理解能力非常強(qiáng)的人,“手下”高手如云,我對這項(xiàng)目越來越有信心了。
下一步是系統(tǒng)結(jié)構(gòu)設(shè)計(jì)了。劃分功能模塊是首先要考慮的問題。 “高內(nèi)聚,低耦合”是模塊劃分的原則。我根據(jù)這個(gè)原則按照他們提出來的四個(gè)業(yè)務(wù)需求,將信息集成系統(tǒng)劃分為四個(gè)子系統(tǒng):內(nèi)部信息管理系統(tǒng),信息發(fā)布系統(tǒng),電話查詢系統(tǒng),移動(dòng)辦公系統(tǒng),他們都存在輕度的數(shù)據(jù)耦合。其中內(nèi)部信息管理系統(tǒng)是最復(fù)雜的子系統(tǒng),根據(jù)他們內(nèi)部部門的劃分和工作之間的聯(lián)系,劃分為八個(gè)大的模塊:系統(tǒng)維護(hù)、人事管理、公文流轉(zhuǎn)、質(zhì)量管理、檢驗(yàn)管理、財(cái)務(wù)管理、儀器與資料管理、報(bào)表管理。這八個(gè)模塊耦合程度低,而且高內(nèi)聚。四個(gè)子系統(tǒng)共用一個(gè)中心數(shù)據(jù)庫,選用MS SQL SERVER,達(dá)到數(shù)據(jù)共享,不會(huì)出現(xiàn)信息孤島,很好地解決了舊系統(tǒng)存在的問題。鑒于他們的統(tǒng)計(jì)報(bào)表、證書的格式經(jīng)??赡馨l(fā)生變化,我設(shè)想專門獨(dú)立一個(gè)報(bào)表管理模塊,為系統(tǒng)管理員提供一個(gè)修改報(bào)表格式的工具,隨時(shí)可以修改報(bào)表的顯示格式;并且提供一個(gè)查詢管理工具,系統(tǒng)管理員可以無須編程就可以定義查詢條件和顯示的內(nèi)容,這樣就提供了這樣一種可能:系統(tǒng)管理員可以控制不同的用戶使用同一個(gè)查詢功能得到不同的結(jié)果顯示(調(diào)用不同的查詢條件和顯示結(jié)果要求)。在編寫設(shè)計(jì)文檔過程中,我經(jīng)常召集項(xiàng)目組的成員開小組會(huì)議,提出我的想法與他們進(jìn)行討論,大家各抒己見,逐漸完善系統(tǒng)總體設(shè)計(jì)說明書。我在參考一些流行產(chǎn)品的系統(tǒng)結(jié)構(gòu)和界面的同時(shí),也根據(jù)自己的經(jīng)驗(yàn)提出自己的新思路,得到導(dǎo)師、師兄和客戶的肯定和支持。后來事實(shí)證明,這個(gè)系統(tǒng)的結(jié)構(gòu)保證了整個(gè)系統(tǒng)穩(wěn)定運(yùn)行,而且速度、性能、工作效率都完全滿足客戶的要求,得到客戶較高的評價(jià)。確定了系統(tǒng)的總體結(jié)構(gòu)后,我設(shè)計(jì)了系統(tǒng)的用戶界面,并提交原型給客戶。客戶在項(xiàng)目開發(fā)工作尚未正式開始之前,就了解了未來系統(tǒng)的全貌及以后的工作方式,他們對此給予了肯定。
開發(fā)工作正式拉開了序幕。在正式開發(fā)之前,我與開發(fā)人員統(tǒng)一了思想,每個(gè)成員負(fù)責(zé)一到兩個(gè)模塊的開發(fā),強(qiáng)調(diào)重視單元設(shè)計(jì)文檔、單元測試文檔的編寫,我特別強(qiáng)調(diào)了單元測試的重要性(即使如此,還是有些開發(fā)人員在前期忽視了單元測試,結(jié)果測試人員進(jìn)行模塊整合測試時(shí)發(fā)生許多錯(cuò)誤,不過后來經(jīng)過多次溝通,基本上開發(fā)質(zhì)量得到了保證)。開發(fā)過程中,每周我組織兩次項(xiàng)目組會(huì)議,周一成員匯報(bào)計(jì)劃,周五總結(jié)一個(gè)星期的工作;還建議通過不定期的小組討論進(jìn)行交流,解決遇到的難題。開發(fā)人員都感到通過交流可以學(xué)習(xí)到很多新的東西,也加快了開發(fā)速度,減少不必要的錯(cuò)誤,避免了走彎路。Teamsource的使用保證了版本管理。我在承擔(dān)一定開發(fā)工作的同時(shí),將主要精力放在以下方面:協(xié)調(diào)、監(jiān)督組員的工作;監(jiān)控項(xiàng)目的進(jìn)度;與客戶、導(dǎo)師溝通;組織定期的項(xiàng)目組會(huì)議。其間我們也遇到了一些困難,但通過大家的共同努力,還是克服了種種困難,保證了開發(fā)進(jìn)度基本上按計(jì)劃進(jìn)行。開發(fā)前期,我向?qū)煻嘁藘蓚€(gè)沒有任何開發(fā)經(jīng)驗(yàn)和編程基礎(chǔ)的同學(xué)(之前因?yàn)闆]有編程基礎(chǔ)所以沒有加入項(xiàng)目組),讓他們熟悉系統(tǒng)的需求,配合開發(fā)人員的單元測試工作。在后面的整合測試中,他們也起到了中堅(jiān)作用。其間我向?qū)熃ㄗh與客戶方商量派一個(gè)用戶定期過來測試已經(jīng)成型的模塊,這個(gè)措施也保證了系統(tǒng)一直沿著正確的方向并且按照時(shí)間進(jìn)度計(jì)劃前進(jìn)。經(jīng)過兩個(gè)半月的開發(fā)工作,具備大部分功能的系統(tǒng)已經(jīng)出來了,我提出花幾天時(shí)間對系統(tǒng)進(jìn)行整合,形成第一個(gè)完整的測試版本,在我們測試過后提交給用戶進(jìn)行測試。這個(gè)提議得到導(dǎo)師的贊同,這樣接下來的時(shí)間里,我們繼續(xù)完善系統(tǒng)的功能,而客戶則可以抽空對我們的系統(tǒng)進(jìn)行測試,并及時(shí)向開發(fā)人員反饋他們的意見。也許是當(dāng)初需求分析做得細(xì)致的緣故,客戶在測試過后只提出了少量更改意見,這對我們項(xiàng)目組的成員是莫大的鼓舞,而我更是興奮不已。但我沒有放松,我知道現(xiàn)在還沒有真正成功,在后面還有很多重要的任務(wù)沒有完成。在最后的一個(gè)月時(shí)間里,我們沒有松懈,根據(jù)用戶的反饋和要求繼續(xù)完善系統(tǒng)功能。直到最后交付給客戶正式使用后,我們還是或多或少對系統(tǒng)功能進(jìn)行了變更和完善,畢竟需求不是一成不變的。整一個(gè)開發(fā)過程體現(xiàn)了我們的團(tuán)隊(duì)合作精神和認(rèn)真負(fù)責(zé)的作風(fēng)。每一個(gè)項(xiàng)目組成員在后來的項(xiàng)目總結(jié)中都表示學(xué)到了很多書本上學(xué)不到的東西,為以后的工作積累了寶貴的項(xiàng)目經(jīng)驗(yàn)。他們?nèi)慷紝ξ冶硎玖烁兄x,我有一種苦盡甘來的感覺。
開發(fā)過程比較順利,但最后的系統(tǒng)交付卻出現(xiàn)了一些問題。系統(tǒng)培訓(xùn)時(shí),客戶方的用戶由于工作任務(wù)比較繁重,對培訓(xùn)產(chǎn)生了抵觸情緒。開始通過行政干預(yù)(讓客戶方的高層領(lǐng)導(dǎo)出面),但上有政策下有對策,他們終于全部出席參加培訓(xùn)了,但身在曹營心在漢。我知道如果用戶得不到培訓(xùn)的話,使用系統(tǒng)時(shí)會(huì)出現(xiàn)很多不必要的麻煩,特別是我們與客戶不在同一個(gè)城市,不能做到及時(shí)的“售后服務(wù)”。我決定和那些用戶進(jìn)行交流,交換一些觀點(diǎn)。我首先征求他們的意見,發(fā)現(xiàn)他們沒心機(jī)參加培訓(xùn)的原因之一是他們認(rèn)為一直在用計(jì)算機(jī)系統(tǒng),新系統(tǒng)也相差不了多少。我針對他們的這種看法,大概介紹了新系統(tǒng)的思想和工作方式,引起了他們的興趣。我趁機(jī)指出新系統(tǒng)與舊系統(tǒng)在工作方式和流程上的區(qū)別,強(qiáng)調(diào)熟悉系統(tǒng)對提高工作效率的作用。本來我是抱著試試的態(tài)度,沒想到卻收到意外的效果,可能是他們對我比較信任的緣故(他們認(rèn)為“研究生,很厲害的”,呵呵,而且在需求分析期間,我也跟他們混得比較熟),而他們對領(lǐng)導(dǎo)卻有些抵觸情緒。我發(fā)現(xiàn)通過這個(gè)項(xiàng)目,組織、協(xié)調(diào)、溝通、表達(dá)能力都得到很大的提高,而且好象還有些“個(gè)人魅力”(通過表揚(yáng)、鼓舞,大大提高了開發(fā)人員的工作效率和熱情),呵呵。
隨著培訓(xùn)的結(jié)束、系統(tǒng)的上線,這個(gè)項(xiàng)目也該畫上個(gè)圓滿的句號了,盡管還有一年的維護(hù)期(雖然我一直強(qiáng)調(diào)“服務(wù)”的概念,但對于這個(gè)系統(tǒng)來說,那些維護(hù)工作都是輕量的了,而且我已經(jīng)培養(yǎng)出一大批人才可以勝任這個(gè)工作了,心里美滋滋的,呵呵)。這是我第一次作為team leader,就獲得了成功,我知道這不是靠運(yùn)氣的,而是自己不斷學(xué)習(xí),不斷總結(jié),并充分調(diào)動(dòng)開發(fā)人員的積極性和發(fā)揮他們的優(yōu)勢的結(jié)果,這是團(tuán)隊(duì)合作的成功,其間所經(jīng)歷的艱辛讓我至今難忘,而所學(xué)到的東西、所取得的進(jìn)步卻是一筆巨大的財(cái)富。后來到特檢所時(shí),聽他們領(lǐng)導(dǎo)介紹,我們開發(fā)的系統(tǒng)在省內(nèi)同級單位中處于領(lǐng)先地位,某些工作方式甚至是國內(nèi)首創(chuàng)。
這次項(xiàng)目經(jīng)歷給我?guī)砹思夹g(shù)的提升,但更主要的是各方面能力(組織、協(xié)調(diào)、溝通、表達(dá))的提高。特別有成就感的是我沒有因?yàn)轫?xiàng)目任務(wù)的繁重而影響學(xué)業(yè),每門課成績都是良好以上。
posted on 2005-10-24 20:09
瘦猴 閱讀(362)
評論(0) 編輯 收藏