流光溢彩

          修天爵而人爵隨之
          posts - 8, comments - 3, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          GdieOA項目進(jìn)行了有3個多月,整個項目組成員廢寢忘食全力以赴,不可不謂辛苦。然而最終的效果卻不盡人意,付出了比別人多許多卻比別人差許多,這實在是一件令人痛心的事。我想每個人都應(yīng)該從這次項目中吸取足夠的經(jīng)驗教訓(xùn),避免以后再出現(xiàn)這種情況。沉思良久,我總結(jié)失敗原因主要有以下幾點:
          1.沒有認(rèn)真做好需求分析。由于種種原因,GdieOA項目剛一上馬整個項目組成員便忙于編寫代碼,這種看似趕進(jìn)度的方法結(jié)果恰恰適得其反。由于需求不明確,大家都是通過對照原javaoa項目的功能進(jìn)行編碼,但這樣往往會忽略各個模塊之間的深層關(guān)系。
          ??????我記得在Samland第一次拿代碼回去的前4天,vince突然跟我說他有一個模塊發(fā)布的功能,而當(dāng)他的Department發(fā)布后會插入到我的module表中且頂層module的parentid會置為null。因為之前我在做module的時候是沒有考慮將頂層module的parentid置為空的,急得我只能在接下來3天拼命地對我原有模塊進(jìn)行修改。這工作量不亞于重做這個模塊。我想如果我們大家之前把需求都能明確下來,各人了解各人的模塊需要什么操作,這些操作會怎樣影響他人的模塊,而他人的模塊又會怎樣影響到自己的模塊。在全面理清這些需求后再進(jìn)行編碼,往往可以事半功倍。

          2.對項目采用何種技術(shù)需要認(rèn)真斟酌。我記得軟件工程七大原則中有一條“盡量采用新技術(shù)進(jìn)行開發(fā)”。但我想采用新技術(shù)也是有條件的,若條件不符合就盲目追求新技術(shù)這樣是很危險的,尤其是當(dāng)項目組中沒有一個人算得上完全掌握這種技術(shù)的時候。
          ??????我想采用新技術(shù)至少應(yīng)考慮下面幾個因素:
          ??????1)? 新技術(shù)成熟度。一個技術(shù)的成熟度很大程度上影響了其可使用度。如果技術(shù)不成熟,到處找不到有關(guān)文檔,使用后也不知道有沒有副作用,又或者必須犧牲其他性能來換取當(dāng)前功能的實現(xiàn),這時這種技術(shù)使用起來就很困難,也難以讓人放心。
          ??????2)? 新技術(shù)的可掌握程度。在這里我指的是項目組成員掌握新技術(shù)所需的時間、精力和其他代價。當(dāng)項目組是一邊學(xué)習(xí)一邊開發(fā)時,這是個不可忽視的因素,因為這將直接影響甚至決定項目能否按時完成。如果項目進(jìn)度較緊而新技術(shù)掌握起來需要相當(dāng)一段時間,那么此時不推薦使用新技術(shù)而應(yīng)采用其他替代技術(shù)。
          ??????3)? 新技術(shù)的實用性。當(dāng)然,采用新技術(shù)很大程度是因為人們追求新技術(shù)帶來的新特性和新功能。在某種情況下新技術(shù)能提供給我們無以倫比的便利性和舊技術(shù)無法比擬的強大的功能,這可以使我們頂住前面兩個因素的壓力不惜一切去學(xué)習(xí)并采用新技術(shù)。如果這種技術(shù)的功能實在是“十里之內(nèi)只此一家”,那么采用它也是無可厚非的事情。但我想這時候項目的組織者應(yīng)該充分權(quán)衡整個項目的可操作性和開發(fā)難度,根據(jù)新情況修改項目計劃,使項目開發(fā)有條不紊,忙而不亂。
          ??????當(dāng)然應(yīng)考慮的因素遠(yuǎn)不止以上幾點,但咎于本人才疏學(xué)淺目前只能想到這些。把話題說回到GdieOA,一開始選擇JSF想必大家都沒什么非議,因為一方面是可以學(xué)習(xí)多一些先進(jìn)技術(shù)的理論,另一方面更可以利用這個項目好好實操一番。然而一個計劃為兩個月的項目,使用一個星期時間自習(xí),一個星期時間培訓(xùn),一個星期時間適應(yīng),我想這個代價實在不小。這明顯違反了上述的第二點。而相比之下,JSF并不是一個非常成熟的技術(shù),它很多方面都需要進(jìn)一步改進(jìn)。采用這種技術(shù)實在需要承擔(dān)一定風(fēng)險。

          3.團(tuán)隊合作中溝通重于一切。并不是說幾個人坐在一起就算是團(tuán)隊,一個團(tuán)隊是有組織的,分工明確的個人的集合。本人還沒上過軟件工程這門課,但我初步知道團(tuán)隊的幾種組織形式。一種是金字塔形的由基礎(chǔ)成員到架構(gòu)人員的形式,有一種則是扁平的眾人平等的形式。金字塔形的模式便于成員調(diào)度和統(tǒng)一管理,扁平式則有利于成員群策群力發(fā)揮所長,但其決策能力往往不及前者。
          ??????在GdieOA中,我們基本上是采用扁平的組織形式,組長更多的是起著發(fā)布信息而非工作調(diào)度的作用。在這種組織形式下,成員之間的交流起著非常重要的作用。我想在GdieOA這個項目中,這點上我們還是很欠缺的。8月份因為大家有較多機(jī)會聚在一起共同開發(fā),所以技術(shù)問題的討論相對較頻繁。可一進(jìn)入9月,隨著大家的事情越來越多,我們這些老友們能夠真正聚在一起六人行的機(jī)會越來越少。往往遇到問題都無法相互討論,只能自己找資料解決,這大大降低了開發(fā)效率。我想所謂極限編程謂之極限也主要是因為共同開發(fā)的兩個人之間的交流大大促進(jìn)了效率的緣故吧。
          ??????在這里我也想再舉一個例子,就像我們搞數(shù)學(xué)建模一樣,如果拿我們小組的每個成員一一與別人相比,可能是有不及而無過之。但就因為我們3個人在3天里能充分溝通、彼此信任,所以最終才能取得現(xiàn)在的成績。我們做項目就像搞競賽一樣,需要的不單單是技術(shù),更多的是溝通。一個人技術(shù)很牛并不能轉(zhuǎn)化為整個團(tuán)隊的技術(shù)牛,但溝通交流可以讓我們做到1+1+1>3。在數(shù)學(xué)建模比賽中,有一句話令我感觸良深:無論何時都要充分相信隊友。我想如果沒有足夠的交流,無論如何也無法達(dá)到這種境界。
          ??????實際上,GdieOA的開發(fā)中,我們幾個人與Gdie之間的交流貧乏也是一個不足之處。雖然這或多或少受到地理因素的影響,但我相信如果我們大家都有相互溝通的愿望,任何客觀因素都不是障礙。

          4.項目管理人員應(yīng)充分重視加強團(tuán)隊的凝聚力和自信心。我聽老師說過為什么sysu的cser到了大三后都不想搞計算機(jī)的原因。就是因為在平時的學(xué)習(xí)和訓(xùn)練中老師沒有重視提高學(xué)生的信心和團(tuán)隊的凝聚力。寫程序就像打羽毛球一樣,每個人都是滿懷希望去嘗試去學(xué)習(xí),但如果換來的是一次又一次的失敗,那漸漸地大家都不想學(xué)打羽毛球了。加拿大的Waterloo大學(xué)計算機(jī)系的學(xué)生畢業(yè)后幾乎個個都去microsoft工作,microsoft也非常渴望招收他們那樣的學(xué)生,甚至還請專機(jī)去接送他們。Waterloo大學(xué)的cser并不是最聰明的,但是入學(xué)后老師們通過無數(shù)個project的訓(xùn)練,一個project一個目標(biāo)地建立學(xué)生的信心和強化他們的能力,最終使他們的學(xué)生成為計算機(jī)界的搶手貨。
          ??????可惜在GdieOA中,我們并沒有看到這種情況,相反因為過多的挫折造成成員們在后期幾乎個個失去信心,如果項目的管理者能夠正視這個問題,采取適當(dāng)措施,我想大家都很樂意繼續(xù)進(jìn)行這個項目。

          ??????沒想到寫著寫著就寫這么多了,以上觀點純屬個人意見,由于本人見識淺薄必定存在許多貽笑大方之處,希望大家不吝指正。有什么意見也希望大家提出來互相討論。

          by zhenghx
          2006年11月26日


          評論

          # re: GdieOA項目心得 by zhenghx (原創(chuàng))  回復(fù)  更多評論   

          2006-11-26 09:21 by Tauruser[匿名]
          good

          # re: GdieOA項目心得 by zhenghx (原創(chuàng))  回復(fù)  更多評論   

          2006-11-26 10:11 by Zou Ang[匿名]
          的確,非常符合實際,其實初期的時候沒有仔細(xì)進(jìn)行設(shè)計,沒有考慮好各自的分工,甚至中間推倒重建都有一定的關(guān)系

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 阿鲁科尔沁旗| 铁岭市| 民权县| 溧阳市| 中西区| 九江县| 太康县| 交口县| 兴隆县| 洛南县| 四川省| 巴林右旗| 友谊县| 柏乡县| 武鸣县| 赣州市| 禄丰县| 和林格尔县| 卓尼县| 扬中市| 淳化县| 调兵山市| 广州市| 泸西县| 河北省| 扬中市| 辰溪县| 盈江县| 宝鸡市| 镇宁| 卓尼县| 八宿县| 加查县| 射洪县| 渝中区| 江永县| 铁岭市| 洛扎县| 襄城县| 德清县| 富平县|