從錯(cuò)誤中學(xué)到更多

          開(kāi)發(fā)進(jìn)行到尾聲了,但 bug 仍然層出不窮。總的來(lái)說(shuō),算是一個(gè)比較失敗的項(xiàng)目,原因很多,有外在因素也有我作為一個(gè) SA 不可推卸的責(zé)任。正好借加班的時(shí)間寫點(diǎn)總結(jié),也算是在失敗總吸取教訓(xùn),從錯(cuò)誤中感受更多吧。

          首先是開(kāi)發(fā)流程。我是 xp 的堅(jiān)定支持者,但在項(xiàng)目中由于外界原因還是采用了傳統(tǒng)的開(kāi)發(fā)流程,沒(méi)有迭代,就是需求 -> 設(shè)計(jì) -> 程序員進(jìn)場(chǎng)開(kāi)發(fā) -> bug 。由于程序員進(jìn)場(chǎng)時(shí)間較晚,一上來(lái)就開(kāi)始開(kāi)發(fā),沒(méi)有時(shí)間進(jìn)行培訓(xùn)和團(tuán)隊(duì)的融合。然后開(kāi)發(fā)中缺少溝通,就是一個(gè)人負(fù)責(zé)一塊,開(kāi)發(fā)完了再做其它。結(jié)果開(kāi)發(fā)到現(xiàn)在,還有人不清楚我們項(xiàng)目的全貌,到底是為了解決什么業(yè)務(wù)。

          然后是開(kāi)發(fā)框架。使用了公司的框架,而我們作為 SA (我們是雙 SA ),都是第一次接觸,程序員也就一個(gè)人用過(guò)。我們最早是達(dá)成共識(shí)采用 SSH 的組合(我至少還算是了解吧,其它人也都用過(guò)),但由于上層因素沒(méi)有實(shí)施(這也導(dǎo)致我好長(zhǎng)一段時(shí)間進(jìn)入不了狀態(tài))。開(kāi)發(fā)前期大家都在探索這個(gè)框架(的確很難用,出錯(cuò)機(jī)制較差,配置文件很多,耦合較強(qiáng) ... ),在一堆莫名奇妙的問(wèn)題中摸索前行,花費(fèi)大量的精力。而比較搞笑的是,在大家開(kāi)始學(xué)習(xí)這個(gè)框架之時(shí),我作為 SA ,因?yàn)橐獙懸欢阎粸閼?yīng)付客戶的設(shè)計(jì)文檔(后面就沒(méi)人看過(guò)),錯(cuò)過(guò)了和大家共同進(jìn)步的機(jī)會(huì),后面總是感覺(jué)“低人一等”。

          在業(yè)務(wù)方面也存在很多問(wèn)題。很多業(yè)務(wù)邏輯并沒(méi)有以很好的載體保存下來(lái),在需求文檔中很多邏輯并沒(méi)有體現(xiàn)。我維護(hù)了一套 pd 的業(yè)務(wù)模型,從概念模型 -> 物理模型 -> 數(shù)據(jù)庫(kù),這解決了后面的一些溝通問(wèn)題,但由于更多體現(xiàn)的是靜態(tài)的實(shí)體及關(guān)聯(lián),對(duì)于一些動(dòng)態(tài)的業(yè)務(wù)流程沒(méi)法體現(xiàn)。我們 SA 之間有時(shí)在一些問(wèn)題上的理解還存在分歧(討論過(guò)也達(dá)成過(guò)共識(shí),但沒(méi)有記錄下來(lái),后面可能就忘了),程序員就更是無(wú)所適從。談到這,我更感受到 DDD 這本書(shū)的價(jià)值,他所提倡的開(kāi)發(fā)人員參加模型的討論,形成項(xiàng)目的模型語(yǔ)言,并不斷隨著業(yè)務(wù)進(jìn)行演化。。。好多理念都是項(xiàng)目經(jīng)驗(yàn)的結(jié)晶啊。

          在開(kāi)發(fā)管理上我也是無(wú)所作為。 Junit 都沒(méi)有推廣下去,更別說(shuō) TDD 了,這也與框架相關(guān),它就沒(méi)提供寫 test case 的地方,等我搞明白一堆配置文件,做出脫離 web 容器的 test 框架,都開(kāi)發(fā)一大半了,說(shuō)起 test 的好處,大家也表示不理解(或者表示理解但沒(méi)時(shí)間 = 沒(méi)理解),就讓他們慢慢 debug 吧!代碼的質(zhì)量也沒(méi)有保證,程序員不明白代碼的味道,更別說(shuō)理解重構(gòu)的意義以及進(jìn)行恰當(dāng)?shù)闹貥?gòu)了。一個(gè)函數(shù)寫上 100 多行,什么邏輯都混在一塊,但由于時(shí)間較緊,我也只好睜一只眼閉一只眼“功能完成就行吧!也不是我一個(gè)人在管”,到現(xiàn)在很多代碼混成一團(tuán),展現(xiàn)層直接調(diào)用 dao (又是框架惹得禍),相同的邏輯 copy n 處,我也是后悔莫及。

          今天先寫失誤,明天寫從中學(xué)到的東西,從錯(cuò)誤中學(xué)到的也許更多!

          posted on 2006-09-20 21:24 pesome 閱讀(902) 評(píng)論(1)  編輯  收藏 所屬分類: 生活隨筆

          評(píng)論

          # re: 從錯(cuò)誤中學(xué)到更多 2006-09-30 23:37 summer

          基于測(cè)試驅(qū)動(dòng)不是那么容易搞的,測(cè)試用例的編寫時(shí)間比寫代碼時(shí)間都要長(zhǎng)。
            回復(fù)  更多評(píng)論   

          <2006年9月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          導(dǎo)航

          統(tǒng)計(jì)

          公告

          主要記錄作者在學(xué)習(xí)java中的每一步足跡。除非特別說(shuō)明,所有文章均為本blog作者原創(chuàng),如需轉(zhuǎn)載請(qǐng)注明出處和原作者,如用于商業(yè)目的,需跟作者本人聯(lián)系。
          歡迎大家訪問(wèn):

          常用鏈接

          留言簿(16)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊(cè)

          收藏夾

          java技術(shù)

          人間百態(tài)

          朋友們的blog

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 客服| 雷波县| 阳山县| 清流县| 北京市| 新邵县| 武宁县| 慈利县| 塘沽区| 清河县| 慈溪市| 溧阳市| 太仆寺旗| 永安市| 绍兴县| 肇庆市| 威海市| 张北县| 米林县| 金沙县| 泉州市| 山西省| 小金县| 新蔡县| 阿拉尔市| 雷山县| 章丘市| 墨江| 小金县| 宿松县| 吴旗县| 临泉县| 柳江县| 皮山县| 都昌县| 平乐县| 天等县| 玉溪市| 余庆县| 宾川县| 云南省|