IT項(xiàng)目管理的方法分享-項(xiàng)目管理軟件
發(fā)布時(shí)間:2022/6/30 9:43:00
作為一名從事應(yīng)用軟件開(kāi)發(fā)很多年頭的IT老兵,從個(gè)人編程、開(kāi)發(fā)小軟件,到組織開(kāi)發(fā)大大小小的各類應(yīng)用系統(tǒng),從最傳統(tǒng)的瀑布模型開(kāi)始入門(mén),在實(shí)踐中又接觸、使用過(guò)不少的軟件工程模型、開(kāi)發(fā)過(guò)程方法、組織級(jí)成熟度模型、管理體系等等,近幾年敏捷開(kāi)發(fā)又成為熱門(mén)?各種各樣的新鮮名詞和套路也是應(yīng)接不暇。項(xiàng)目管理軟件
面對(duì)層出不窮的新生事物,回顧自己多年來(lái)的開(kāi)發(fā)經(jīng)歷,發(fā)現(xiàn)很多東西確實(shí)在不斷變化著,而有些東西其實(shí)并沒(méi)有發(fā)生根本的改變,而且各自有各自的適用場(chǎng)合,F(xiàn)將有關(guān)的觀點(diǎn)歸納如下,拋磚引玉,與大家探討:
1、不變的是工程過(guò)程,變化的是管理過(guò)程。
在所有的軟件開(kāi)發(fā)活動(dòng)中,各種活動(dòng)可以被歸為兩大類,一類是工程類活動(dòng),一類是管理類活動(dòng)。這是借用了美國(guó)項(xiàng)目管理學(xué)會(huì)(PMI)在PMBOK中的概念。工程類活動(dòng)是指那些直接制造產(chǎn)品的活動(dòng),這類活動(dòng)是受到產(chǎn)品生產(chǎn)工藝約束的,是產(chǎn)品制造中的“硬邏輯”,最典型的就是蓋樓必須先打地基。管理類活動(dòng)則是指其他那些輔助性活動(dòng),是用來(lái)保障工程類活動(dòng)高效實(shí)施的,可以根據(jù)各方面因素的實(shí)際條件而靈活掌握的,是生產(chǎn)過(guò)程當(dāng)中的“軟邏輯”,比如施工工期和資源如何安排、是三人干兩個(gè)月還是兩人干三個(gè)月等等。
按照類似的概念,在軟件開(kāi)發(fā)當(dāng)中也存在著這樣兩種不同的活動(dòng)——具有硬邏輯特征的軟件工程活動(dòng)和具有軟邏輯特征的軟件開(kāi)發(fā)管理活動(dòng)。仔細(xì)推敲就會(huì)發(fā)現(xiàn),雖然現(xiàn)在各種開(kāi)發(fā)方法名目繁多,但其核心的工程過(guò)程并沒(méi)有發(fā)生變化——就是最基本的瀑布式軟件工程過(guò)程。
2、需求、設(shè)計(jì)、編碼、測(cè)試、發(fā)布。
無(wú)論是那種開(kāi)發(fā)方法,無(wú)論開(kāi)發(fā)的是大型軟件還是一個(gè)小功能,無(wú)論開(kāi)發(fā)項(xiàng)目組人數(shù)多與少,上述這個(gè)過(guò)程都是始終有效的,這個(gè)就是應(yīng)用軟件開(kāi)發(fā)中的“硬邏輯”。但是,圍繞這樣一個(gè)工程過(guò)程,在具體實(shí)施過(guò)程的管理方式上,卻可以是千差萬(wàn)別:
A、按照上述這個(gè)工程過(guò)程,一步一個(gè)腳印的穩(wěn)步前行,就是常說(shuō)的“瀑布式”方法(瀑布式工程過(guò)程并不等同于瀑布式管理過(guò)程,不能混為一談,必須加以區(qū)分);項(xiàng)目管理軟件
B、先根據(jù)粗略的需求快速實(shí)現(xiàn)一個(gè)原型系統(tǒng),然后在此基礎(chǔ)上進(jìn)一步導(dǎo)出正式的需求,再嚴(yán)格按照上述的工程過(guò)程實(shí)現(xiàn),就是所謂的“原型法”;
C、將整體需求分成許多個(gè)部分,反復(fù)使用上述工程過(guò)程,每一次只實(shí)現(xiàn)一部分目標(biāo)功能,使之能夠快速投入使用,從而形成“快速迭代”;
D、在互聯(lián)網(wǎng)速度的推動(dòng)下,進(jìn)一步細(xì)分需求,并極力促成技術(shù)、業(yè)務(wù)等相關(guān)人員的密切溝通,進(jìn)一步加速迭代,縮短開(kāi)發(fā)周期,大幅提升應(yīng)用開(kāi)發(fā)的響應(yīng)速度,這就是“敏捷”;
因此,縱觀這些年來(lái)軟件開(kāi)發(fā)方法的變化,軟件產(chǎn)品的制造工藝并沒(méi)有發(fā)生根本性改變,更多的變化則是在制造過(guò)程的組織管理方式上不斷尋求新的出路,以適應(yīng)不斷提高的快速響應(yīng)的要求。
既然不同的是管理方式,那么不同的開(kāi)發(fā)管理模式下,開(kāi)發(fā)過(guò)程的組織方式自然也就應(yīng)該有所不同。如果采用傳統(tǒng)的瀑布式開(kāi)發(fā)管理過(guò)程,那么軟件工廠的管理方式可能較為合適,而如果采用敏捷方法,那么軟件工作室的組織方式也許更適應(yīng)(請(qǐng)參見(jiàn)《軟件工廠、軟件作坊、軟件工作室》一文)。
這里順便說(shuō)一下對(duì)CMMI的看法。作為一個(gè)組織級(jí)的、系統(tǒng)化的模型,是許多專家的經(jīng)驗(yàn)教訓(xùn)的結(jié)晶,具有非常高的參加價(jià)值。在這個(gè)模型中試圖把各方面相關(guān)工作的實(shí)質(zhì)、必須的關(guān)鍵點(diǎn)都識(shí)別出來(lái)并建立起有機(jī)的聯(lián)系。但是它并沒(méi)有給出在某個(gè)實(shí)際環(huán)境中的具體操作要求,這是實(shí)施者需要解決的問(wèn)題。有些企業(yè)實(shí)施CMMI之后叫苦不迭,我認(rèn)為問(wèn)題不是出在CMMI本身,而是出在實(shí)施環(huán)節(jié),沒(méi)有能夠掌握CMMI的實(shí)質(zhì),沒(méi)有能夠結(jié)合實(shí)際條件活學(xué)活用,很多情況下是在操作層面上機(jī)械照搬了別人的“成功模板”,結(jié)果削足適履,這樣結(jié)果當(dāng)然會(huì)難受。我認(rèn)為的正確姿勢(shì)是,把CMMI模型的內(nèi)容看做組織級(jí)能力中的“硬邏輯”,然后根據(jù)自身?xiàng)l件的實(shí)際情況,設(shè)計(jì)相應(yīng)的“軟邏輯”,因地制宜制定各種制度流程,來(lái)推動(dòng)那些“硬邏輯”的實(shí)現(xiàn)。在這些軟邏輯當(dāng)中,前面提及的各種管理方式都是可以根據(jù)實(shí)際需要而采用的。
從這個(gè)角度來(lái)說(shuō),與其從敏捷出發(fā)考慮如何解決組織級(jí)“大敏捷”的問(wèn)題,不如考慮在類似CMMI的組織級(jí)模型中如何運(yùn)用“敏捷”的管理思路和管理方法,也許會(huì)有意想不到的收獲。
無(wú)論是“傳統(tǒng)”的瀑布方法,還是“現(xiàn)代”的敏捷方法,目標(biāo)只有一個(gè),就是以最優(yōu)的效率完成軟件開(kāi)發(fā)任務(wù)。沒(méi)有必要為了敏捷而敏捷,而是應(yīng)該掌握敏捷的思想、方法、技巧,活學(xué)活用;谏鲜鲞@樣的認(rèn)識(shí),不同的軟件開(kāi)發(fā)管理方法,都有各自的特點(diǎn)和適用場(chǎng)景,并非存在絕對(duì)的優(yōu)劣。作為軟件開(kāi)發(fā)的管理者,在具體的軟件開(kāi)發(fā)項(xiàng)目中,始終牢牢抓住軟件工程過(guò)程的基本規(guī)律,結(jié)合實(shí)際條件,靈活運(yùn)用不同的管理方式。