王銳
摘 要:工程化軟件開發(fā)需要對軟件開發(fā)整個(gè)過程進(jìn)行有效的組織.和管理,由此產(chǎn)生了一系列軟件開發(fā)組織和管理方法,其主要目的是.形成一種載體,用以敘述和傳遞關(guān)于軟件開發(fā)的經(jīng)驗(yàn)教就然而,由于軟件開發(fā)的一些天然.特性(比如復(fù)雜性和不可見性)的存在,使得描述軟件開發(fā)過程的軟件開發(fā)與組織方法也天然的帶著一定的抽象性.由此帶來了很多概念上的誤導(dǎo)和實(shí)踐中的爭論,影響了上述目的的達(dá)成.例如,對于究竟該如何選擇和定義合適的軟件開發(fā)過程以更好地滿足某個(gè)特定項(xiàng)目的要求,目前仍然缺少可靠的手段.甚至有些面向工業(yè)界的調(diào)研報(bào)告表明:在實(shí)際軟件項(xiàng)目開發(fā)中,過程改進(jìn)(例如引入新的工具或者方法)的主要驅(qū)動力是佚聞.試圖厘清軟件組織與管理話題的若干核心概念,系統(tǒng)梳理軟件組織和管理方法的特征,并且以軟件發(fā)展的歷史為主線,介紹軟件組織與管理方法的歷史沿革,整理出這種歷史沿革背后的緣由.在此基礎(chǔ)上,討論和總結(jié)若干發(fā)現(xiàn),以期為研究者和實(shí)踐者提供參考。
關(guān)鍵詞:軟件工程;軟件過程;軟件項(xiàng)目管理;軟件過程管理
1 概述項(xiàng)目管理
軟件項(xiàng)目管理,其管理的對象是各類軟件項(xiàng)目。具體軟件而言,軟件項(xiàng)目管理是應(yīng)用方法、工具、技術(shù)以及人員能力來完成軟件項(xiàng)目,實(shí)現(xiàn)項(xiàng)目目標(biāo)的過程.整個(gè)軟件開發(fā)過程中的目標(biāo)識別、狀態(tài)跟蹤以及偏差糾正是軟件項(xiàng)目管理的三大核心要素。完整的軟件項(xiàng)目管理包含很多內(nèi)容,例如成本和工作量的估算、計(jì)劃和進(jìn)度跟蹤調(diào)整以及風(fēng)險(xiǎn)分析與控制等,都屬于軟件項(xiàng)目管理的范疇(可以參考第6版PMBOK來了解項(xiàng)目管理知識領(lǐng)域).盡管抽象概念上具有相似性(例如,所有管理活動都應(yīng)該包含目標(biāo)識別、狀態(tài)跟蹤以及偏差糾正這三大核心要素),軟件項(xiàng)目管的具體方法和實(shí)踐會因?yàn)轫?xiàng)目特征呈現(xiàn)出不同的經(jīng)驗(yàn)和教訓(xùn)。
2 項(xiàng)目管理當(dāng)下的研究背景
隨著計(jì)算機(jī)應(yīng)用的快速普及,軟件產(chǎn)品的功能越來越多,復(fù)雜性也越來越大,軟件產(chǎn)品階段包括需求分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)開發(fā)等,每一個(gè)階段都有專業(yè)的系統(tǒng)需求分析師、系統(tǒng)設(shè)計(jì)師、程序員等完成關(guān)聯(lián)任務(wù),并且涉及到不同的部門,導(dǎo)致項(xiàng)目的風(fēng)險(xiǎn)管理、成本管理以及進(jìn)度管理難度加大l[]。因此,軟件項(xiàng)目研發(fā)需要引人現(xiàn)代項(xiàng)目管理思想,實(shí)施嚴(yán)格的進(jìn)度管控,控制軟件開發(fā)周期,降低軟件研發(fā)成本。
3 項(xiàng)目管理容易出現(xiàn)的兩大問題
一、相比較于軟件的發(fā)展,軟件過程具有滯后性。
這個(gè)原因易于理解,因?yàn)檐浖^程本身就是經(jīng)驗(yàn)教訓(xùn)的總結(jié)往往都是在現(xiàn)實(shí)中出現(xiàn)軟件開發(fā)能力不能支持人們對軟件需求和期望這樣的問題之后,相應(yīng)的軟件過程和開發(fā)方法才會開始演進(jìn),以解決上述問題從這個(gè)意義上說,除非要解決的問題出現(xiàn)顯著變化,否則,對軟件過程的研究和探索的重點(diǎn)則仍然應(yīng)該放在如何更好地使用現(xiàn)有過程和方法上,而不必去創(chuàng)造新的方法。
二、簡潔、直觀的過程。
我們發(fā)現(xiàn),能夠讓開發(fā)者廣為認(rèn)同和使用的軟件過程幾乎都有一種外在的簡潔軟件開發(fā)本身具有的復(fù)雜性和不可見性已經(jīng)使得開發(fā)者之間的交流面臨著諸多困難,因此,為了能夠形成一致的愿景,所使用的軟件過程必須具有一種外在的簡潔性整個(gè)軟件系統(tǒng)應(yīng)如何開發(fā)?應(yīng)分成哪些階段?每個(gè)階段要實(shí)現(xiàn)什么樣的目標(biāo)?每個(gè)階段與整體之間的關(guān)系是什么?諸如此類的問題,需要整個(gè)開發(fā)團(tuán)隊(duì)達(dá)成共識正因如此,我們不難理解具有外在簡潔性的SCRUM方法之所以能夠長期占據(jù)各類敏捷方法首位的原因當(dāng)然,按照Royce的說法,簡單的軟件過程是不能應(yīng)對復(fù)雜軟件項(xiàng)目的開發(fā)的因此,僅僅保持外在的簡潔是不夠的,還需要盡可能詳細(xì)地規(guī)劃每個(gè)主要開發(fā)階段的具體流程,才能形成一個(gè)具有指導(dǎo)意義的可以工作的軟件過程
4 解決方法
(l)組建專業(yè)化團(tuán)隊(duì)。
選定項(xiàng)目總體負(fù)責(zé)人,根據(jù)軟件項(xiàng)目工作計(jì)劃,劃分軟件產(chǎn)品功能模塊,由熟悉該領(lǐng)域的人進(jìn)行詳細(xì)分工,明確團(tuán)隊(duì)成員職責(zé),防止團(tuán)隊(duì)成員推樓扯皮、挑肥揀瘦,并且要積極的營造一種團(tuán)隊(duì)協(xié)作良好、人員積極向上、開發(fā)經(jīng)驗(yàn)共享的工作范圍,凝聚和增強(qiáng)團(tuán)隊(duì)?wèi)?zhàn)斗力,穩(wěn)定團(tuán)隊(duì)成員心態(tài),降低流動頻率,落實(shí)進(jìn)度計(jì)劃。
(2)創(chuàng)新軟件開發(fā)技術(shù),縮短實(shí)施周期。
軟件項(xiàng)目產(chǎn)品要吸收新技術(shù)、新理念,比如軟件復(fù)用技術(shù)和CASE技術(shù)。軟件復(fù)用可以利用組件、接口、類等提高程序的復(fù)用性,一次開發(fā)處處使用,這樣即可以降低軟件出錯率,也可以縮短編程時(shí)間;利用CASE技術(shù)可以提高軟件開發(fā)、部署和運(yùn)行的支持力度,使用先進(jìn)的工具提高軟件開發(fā)效率。
5 結(jié)束語
隨著軟件項(xiàng)目復(fù)雜度的增大,在軟件項(xiàng)目研發(fā)中引人先進(jìn)的工程管理理念具有重要的作用和意義。項(xiàng)目進(jìn)度控制可以從需求階段、實(shí)施階段和收尾階段進(jìn)行嚴(yán)格的控制,采用先進(jìn)的軟件工程技術(shù)和理念保證軟件研發(fā)順利進(jìn)行,盡可能縮短軟件項(xiàng)目研發(fā)周期,具有重要的作用和意義。
參考文獻(xiàn)
[1]榮國平,邵棟,華金茹.一種基于目標(biāo)驅(qū)動的軟件開發(fā)過程知識管理方法:.
[2]郭書琴.軟件開發(fā)管理方法綜述[J].中國科技信息,2017(14):54-55.
[3]何耀欽.軟件系統(tǒng)工程:方法和管理的結(jié)合[J].系統(tǒng)工程(01):13-18.
[4]羅新,尼建軍.軟件項(xiàng)目風(fēng)險(xiǎn)管理綜述[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版)(21):18-21.
[5]童麗娟.軟件維護(hù)方法綜述[C]// 河南省冶金行業(yè)低碳冶金與節(jié)能減排學(xué)術(shù)研討會論文集.2011.