1. 程式人生 > >Java Web項目管理得失談

Java Web項目管理得失談

gin 風暴 事情 能夠 alpha case 成了 開發環境 ubunt

去年5月份,公司項目較少,我就組織了一個用於公司內部辦公管理的項目(以下稱OA)。第一個目的是為了讓公司裏面一些技術較差的人員得到真正編程的鍛煉;第二個目的是為了使用空閑的人員為公司開發一個產品,在內部推行科學管理,以後也可以考慮銷售。

結果一直到今年4月份,這個項目才算上線,開發進度一拖再拖,代碼質量很差。回過頭來考慮原因,有以下幾個:

1)程序員技術能力弱

2)對JSF技術不熟悉

3)JSF框架有Bug,並且可用tag較少,不足以應付項目,還需要額外開發自定義tag

4)人員變動頻繁

5)按照<<Software Engineering>>最新版的建議和日立公司開發流程結合指定的開發流程不合理

a)設計階段連web界面的每個控件(tag)的表現形式都描述的清清楚楚,花費了大量的人力

b)開發流程如下

use-case設計-》畫面設計-》系統建模-》數據庫設計-》編碼-》代碼評審-》

單體測試式樣書編寫-》單體測試

集合測試式樣書編寫-》集合測試

這個開發流程看上去很完美,其實由於國內項目進度要求都很高,其實不能支付這樣高昂的開發成本,並且如果項目管理不當,很多文檔寫了,卻沒有人遵守。




6)管理人員對代碼審查把關較弱

7)缺乏一個合格的項目經理,我因為兼顧公司很多事情,項目經理只是掛名而已,唯一把好關的就是數據庫設計是自己親自做的

8)對OA的復雜業務(特別是考勤業務)缺乏經驗,設計人員也是邊設計邊改。


以上說的是問題,下面也說說說收獲:

1)程序員得到了實戰的機會,原來我公司的能力弱的程序員一直沒有機會編程,只是做一些測試工作,這次讓不少程序員得到了較大提高

2)對JSF基礎知識的掌握,通過實戰和編寫文檔等方式教育,培養了一個了解JSF技術的團隊

3)OA是公司內部第一個多人開發的大型Web系統,從這個過程中發現國內項目普遍不能承受<<Software Engineering>>和日本開發流程中的“完美”過程管理,因此對後來的OA開發流程進行了簡化:

use-case設計(包含Review)->美工畫面設計

->數據庫設計

->程序員編寫基礎畫面->整合美工的畫面->編碼->代碼評審(特別加強)->程序員交叉測試(按照use-case要求)

4)代碼評審的工作如何更加有效呢

要求程序員先編寫調用代碼(有點類似測試驅動開發的方法,這個時候很多類和方法其實不存在,所以編譯不會通過),技術管理人員評審調用代碼,沒有問題後程序員再逐一實現各個類和方法,最後技術管理人員再作一次代碼評審。為了保證質量,降低成本,代碼評審工作是重中之重。

5)使用了NetBeans6.5+UBuntu8.10的開發環境,一個獲得了較好的開發速度(Linux性能好),而且避免了windows的盜版問題,Eclipse配置比較麻煩,NetBeans更好上手。

6)找到了ICEFaces Framework進行後續開發,ICEFaces能夠提供web 2.0的一切特性,並且只要編寫純Java代碼,降低了程序員的負擔,JSF所有的基礎知識都能夠使用。


因此,我認為現在OA的Alpha3開發出來的產品一定比之前的更快、更好,而且功能強大。不過還要繼續實踐下去。

後續1(2009-7-19):

由於金融風暴的到來,公司出現了嚴重的赤字,很多事情不能繼續進行,其中也包括OA項目。在我暫時離開公司的這段時間,我的技術之火並沒有因此熄滅。我親自開發和研究ICEFaces技術。

首先,我使用基於woodstock可視化jsf項目的icefaces1.8.1,其中發現了icefaces1.8.1也有不少的bug(比如ice:tree使用bind屬性時可能導致一些問題),不過好在我的技術底子比較厚,總能找到辦法繞過去。在發現sun不再繼續支持woodstock項目後,icefaces.org也放棄了對該項目的支持,因此,我們已經不能在netbeans6.7當中找到visual icefaces1.8.1的身影了。開始這對我是一個打擊,因為我的英語網站已經寫了一段時間了,4000行java代碼已經完成了。

不過很快我發現了jsf的今後方向facelets已經能和icefaces很好的結合起來開發,我花了一周的時間將原有代碼移植到新的框架中來,很快我就發現很多的優點:

1)facelets帶來了更快的性能

2)facelets提供了準確的報錯信息

3)xhtml比jsp要求嚴格,更能早發現錯誤

4)facelets提供的模板特性能夠極大得提升網頁開發的效率

具體內容可以查看我的兩篇文章<<使用Facelets開發JSF程序>>、<<使用ICEFaces+Facelets開發Web程序>>

再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!https://blog.csdn.net/jiangjunshow

Java Web項目管理得失談