對(duì)于一個(gè)軟件公司而言,在做項(xiàng)目或產(chǎn)品的過(guò)程中,為何要應(yīng)用一定的技術(shù)框架呢?相信有一定規(guī)模一定歷史積淀的軟件公司里,都存在著自己特有的技術(shù)框架,我們應(yīng)用框架開(kāi)發(fā)無(wú)外乎是本著提高代碼的重用性、降低開(kāi)發(fā)應(yīng)用模塊的技術(shù)難度,增強(qiáng)軟件的維護(hù)性,進(jìn)爾達(dá)到提高工作效率、降低生產(chǎn)成本的目的。這也是技術(shù)框架存在的根本和意義所在。
本人是個(gè)對(duì)技術(shù)的推崇者或者說(shuō)是有些圖騰崇拜的人,從學(xué)習(xí)和使用
java
的第一天開(kāi)始,就對(duì)這種純粹的面向?qū)ο蟮木幊陶Z(yǔ)言產(chǎn)生了濃厚的興趣,從早期秉燭夜讀《
java
編程思想》、《
java
核心技術(shù)卷
I
、卷
II
》到《
J2EE
設(shè)計(jì)與模式》。。。《深入淺出
Hibernate
》。。。《
Spring in Action
》等,切身感受到當(dāng)今主流
java
應(yīng)用技術(shù)的發(fā)展,也很感謝前輩們?yōu)榇蠹议_(kāi)創(chuàng)了應(yīng)用技術(shù)之先河,為我輩指明了發(fā)展的方向和前進(jìn)的道路。
在當(dāng)今技術(shù)潮流日新月異的時(shí)代各種各樣的技術(shù)框架林林總總,很難去評(píng)價(jià)個(gè)中孰優(yōu)孰劣,個(gè)人覺(jué)得在項(xiàng)目開(kāi)發(fā)過(guò)程中最適合的框架就是最好的,以項(xiàng)目的規(guī)模和特點(diǎn)來(lái)決定對(duì)技術(shù)框架的選型。現(xiàn)就個(gè)人對(duì)于框架的開(kāi)發(fā)的一些體會(huì)和大家一起交流一下,前端采用類
Struts
模式做
MVC,
我覺(jué)得
MVC
的精華所在就在于請(qǐng)求的匯集和請(qǐng)求的分發(fā),采用
filter+mainservlet
的方式,在
filter
類中可以進(jìn)行對(duì)各種請(qǐng)求的約束和限制處理,同時(shí)可以進(jìn)行對(duì)請(qǐng)求合法性的判定和校驗(yàn),也可以實(shí)現(xiàn)達(dá)到負(fù)載均衡的處理,也可以根據(jù)實(shí)際的項(xiàng)目需要設(shè)置多個(gè)
filter
類進(jìn)行分類過(guò)濾。通過(guò)
filter
類的合法的請(qǐng)求全部由統(tǒng)一的
mainservlet
主控器接口進(jìn)行分發(fā)處理,在這里可以添加對(duì)線程的約束和控制,以保證所有請(qǐng)求可以順利的分發(fā)。業(yè)務(wù)邏輯層采用
Action+BPO
的模式,
Action
作為動(dòng)作的描述,
BPO
作為對(duì)于動(dòng)作進(jìn)行響應(yīng)的業(yè)務(wù)邏輯處理。持久層部分采用
Hibernate
和
DAO+VO
兩種模式并存的方式,持久層部分之所以采用兩種模式處理,主要是考慮到業(yè)務(wù)邏輯的復(fù)雜度,對(duì)于多表及連和復(fù)雜的業(yè)務(wù)查詢處理,感覺(jué)配置
Hibernate
文件也相當(dāng)?shù)膹?fù)雜(也許是本人應(yīng)用
Hibernate
的深度還不夠,對(duì)
HQL
語(yǔ)言的認(rèn)識(shí)還比較膚淺),因而還采取傳統(tǒng)的
jdbc
訪問(wèn)模式來(lái)處理。事務(wù)處理用
Spring
框架來(lái)進(jìn)行處理。在表示層的
jsp
中只進(jìn)行
tag
的屬性設(shè)置和
java
的表達(dá)式的輸出,所有的
java
邏輯代碼全部用
tag
來(lái)進(jìn)行封裝。有興趣的朋友可以發(fā)
e-mail
給我,來(lái)進(jìn)行此框架的交流
E-mail:syangsheep@163.com,
同時(shí)也歡迎大家拿出自己應(yīng)用的框架來(lái)一起進(jìn)行交流和探討。
本人經(jīng)歷過(guò)小到
3-4
人,大到
140
人以上的項(xiàng)目開(kāi)發(fā),現(xiàn)就個(gè)人做
PM
的一些經(jīng)驗(yàn)和體會(huì)與大家一起交流和探討。個(gè)人認(rèn)為做為
PM
應(yīng)具備如下幾個(gè)性格特點(diǎn):自信、執(zhí)著、果敢、細(xì)心、公正、迭代。一、自信:自信源于實(shí)踐經(jīng)驗(yàn)積累的寶貴財(cái)富,在一個(gè)項(xiàng)目進(jìn)行過(guò)程中,各種各樣的問(wèn)題和不可預(yù)知的困難將貫穿項(xiàng)目始終,身為三軍統(tǒng)帥的
PM
如果自己都沒(méi)有信心把項(xiàng)目做好,那嗎項(xiàng)目的最終結(jié)果也就可想而知了。二、執(zhí)著:不能輕易放過(guò)任何暴露出來(lái)的問(wèn)題點(diǎn),這里不單指技術(shù)層面的,包含各種可利用的資源。失敗的項(xiàng)目或者說(shuō)垃圾的項(xiàng)目不是一下子就被定性的,它是由于在一個(gè)個(gè)的問(wèn)題點(diǎn)上處理不當(dāng)積累起來(lái)的,最終導(dǎo)致項(xiàng)目失敗的惡果。三、果敢:當(dāng)項(xiàng)目處在某個(gè)關(guān)鍵的三岔路口時(shí),應(yīng)該做出及時(shí)準(zhǔn)確的方向判斷,切忌優(yōu)柔寡斷,這是需要相當(dāng)?shù)挠職獾模彩歉矣诔袚?dān)責(zé)任的一種氣魄。四、細(xì)心:當(dāng)項(xiàng)目達(dá)到一定規(guī)模的時(shí)候,由于精力有限,不可能細(xì)化到每個(gè)人每個(gè)點(diǎn),肯定會(huì)出現(xiàn)管理的盲區(qū),這樣不但需要?jiǎng)澐趾脤哟巍訉颖O(jiān)督,同時(shí)也需要對(duì)個(gè)別點(diǎn)進(jìn)行抽查抽測(cè),不能親歷親為只靠一些小范圍的會(huì)議交流總結(jié),往往不能準(zhǔn)確的定位到問(wèn)題的關(guān)鍵點(diǎn)上。五、公正:不管在什嗎樣規(guī)模的開(kāi)發(fā)團(tuán)隊(duì)里,維系團(tuán)隊(duì)精神、使團(tuán)隊(duì)更加具有凝聚力最根本的原則就是做事公正,很難想象一個(gè)人心渙散、充滿怨言的團(tuán)隊(duì)能夠做出高品質(zhì)的產(chǎn)品。六、迭代:我在這里所說(shuō)的迭代不單單指程序代碼的迭代,它是一個(gè)
PM
在項(xiàng)目進(jìn)行過(guò)程中不斷總結(jié)經(jīng)驗(yàn)教訓(xùn)不斷完善的一種迭代。只有勇于批評(píng)和自我批評(píng)的人才能夠不斷的完善自己,不斷的進(jìn)步,成為一名合格的項(xiàng)目經(jīng)理。
??? 小結(jié):上述是我就本人在擔(dān)任PM過(guò)程中的一些心得和體會(huì),至于具體的運(yùn)作模式則是仁者見(jiàn)仁、智者見(jiàn)智了,在此不再贅述了,歡迎大家一起來(lái)交流和探討。
這里定義的項(xiàng)目經(jīng)理是狹義的,單指軟件項(xiàng)目經(jīng)理。既然說(shuō)到軟件行業(yè)的項(xiàng)目經(jīng)理,當(dāng)然就不得不說(shuō)一下軟件行業(yè),個(gè)人認(rèn)為當(dāng)今的軟件行業(yè)公司大體可以分為三類:一流軟件公司開(kāi)發(fā)標(biāo)準(zhǔn)如
Sun
公司、微軟等(開(kāi)發(fā)當(dāng)今主流的語(yǔ)言如
java
、
C#
);二流軟件公司在遵循標(biāo)準(zhǔn)的前提下開(kāi)發(fā)規(guī)范、定制流程如
IBM
、
BEA
等(開(kāi)發(fā)各種中間件,定制業(yè)內(nèi)遵守的流程規(guī)范);三流軟件公司在遵循標(biāo)準(zhǔn)、依托規(guī)范的前提下做應(yīng)用,如。。。(太多了不贅述了)。當(dāng)然我的這種劃分單指就軟件領(lǐng)域而言,并不代表公司的綜合實(shí)力及財(cái)富排名的位置。(大家不要用雞蛋扔我哦,要扔就用人民幣吧,嘿嘿)
下面進(jìn)入正題,談?wù)勎覍?duì)項(xiàng)目經(jīng)理(
Project Manager
以下簡(jiǎn)稱
PM
)的認(rèn)識(shí)和看法。本人在軟件行業(yè)摸爬滾打了
6
年,在
PM
的位置上茍活了
2
年,記得有位國(guó)外的軟件大師(名字記不得了)曾經(jīng)說(shuō)過(guò):“沒(méi)有寫(xiě)過(guò)
10
年程序的人就不要說(shuō)自己是一名程序員。”我汗,勉強(qiáng)只能算半個(gè)程序員了。咦,咋又跑題了呢,不好意思哦。個(gè)人認(rèn)為,
PM
大體可以分為三類:一、即懂技術(shù)又懂管理的
PM
;二、不懂技術(shù)懂管理的
PM
;三、懂技術(shù)不懂管理的
PM
。第一種我相信是任何軟件公司都渴望的,也是比較難求的人才,當(dāng)然也是本人最為推崇的。它對(duì)于一個(gè)人的綜合素質(zhì)要求比較高,要有縝密的邏輯思維,準(zhǔn)確的判斷力、果敢的決策力,卓識(shí)的大局觀,對(duì)編程的濃厚興趣等等。它應(yīng)該是多種職業(yè)的綜合體:軟件架構(gòu)師、軟件工程師、測(cè)試工程師、風(fēng)險(xiǎn)評(píng)估師、會(huì)計(jì)師、律師、理財(cái)師、人力資源師、培訓(xùn)師、翻譯、心理咨詢師等集大成者,我認(rèn)為可以定義為刷子型人才(多專多能,哇噻,公司豈不是賺大了)。第二種我相信也是在相當(dāng)規(guī)模的軟件公司普遍存在的,往往公司的意圖和出發(fā)點(diǎn)很好,希望
PM
專管協(xié)調(diào)組織,控制項(xiàng)目整體進(jìn)度,不做具體事情,殊不知一個(gè)不懂技術(shù)的人談何控制項(xiàng)目進(jìn)度,在我供職的公司里曾經(jīng)發(fā)生過(guò)這樣一件真實(shí)的事情,測(cè)試人員提交的
bug
單,
PM
整理后分發(fā)給具體負(fù)責(zé)的開(kāi)發(fā)人員,一個(gè)開(kāi)發(fā)人員在對(duì)一個(gè)
button
屬性的修改的工時(shí)描述單上注明需要半天的時(shí)間修改,
PM
不加任何思索的回饋給測(cè)試人員,引為笑談。項(xiàng)目經(jīng)理對(duì)承擔(dān)項(xiàng)目個(gè)體職責(zé)如果不夠了解,將很難控制項(xiàng)目進(jìn)度,很難把握項(xiàng)目進(jìn)展過(guò)程中的瓶頸,很難就項(xiàng)目進(jìn)展過(guò)程中出現(xiàn)的問(wèn)題做出準(zhǔn)確地判斷并制定出合理的解決方案。第三種我覺(jué)得更準(zhǔn)確地應(yīng)該定義為主管開(kāi)發(fā)的
PM
比較合適,這樣的人普遍是編程高手,可以解決技術(shù)問(wèn)題,攻克技術(shù)難關(guān),但由于個(gè)人思維的局限性難以對(duì)項(xiàng)目整體進(jìn)行把控,協(xié)調(diào)好各個(gè)環(huán)節(jié)的資源,這樣的可以成為不錯(cuò)的將才,但難以成為帥才。(待續(xù))
?? 第一次登錄BlogJava,第一次寫(xiě)寫(xiě)隨筆,感謝blogjava提供了這樣一個(gè)社區(qū)。