模塊化開發(fā)方法,首先保證了復雜IT產(chǎn)品的降階,從分解的角度保證了項目開發(fā)的操作性;模塊化也可以提高整個產(chǎn)品開發(fā)的并行化,大大提高產(chǎn)品開發(fā)的效率;同時,通過交叉優(yōu)化保證各模塊的質(zhì)量,實現(xiàn)“一次達到目的”與傳統(tǒng)“反復做直到滿意”的有機結(jié)合,從而保證產(chǎn)品系統(tǒng)的質(zhì)量。
傳統(tǒng)軟件架構理論一般基于產(chǎn)品功能的靜態(tài)劃分[8],主要從信息流角度考慮模塊單元的內(nèi)聚與耦合關系,更多來自于項目初期基于需求的預測和設計;而敏捷方法更關注過程中需求創(chuàng)新,趨于對終目標的逼近,是一種迭代更替漸進式方式。因此,此種方式下,關于知識產(chǎn)品的模型表述,勢必與傳統(tǒng)軟件架構描述方法有所不同。復雜IT項目的模塊化除了考慮終知識產(chǎn)品的功能特征外,還要考慮開發(fā)過程的協(xié)同與控制問題。為此可以建立IT產(chǎn)品基于小完備單元圖的隨機Petri網(wǎng)模型[16],采用消解規(guī)則進行系統(tǒng)分析,靜態(tài)和動態(tài)分析相結(jié)合,有效地反映產(chǎn)品結(jié)構中任務執(zhí)行或信息傳遞的主要特征,反映知識產(chǎn)品單元之間順序、并行、交叉等多種復雜的網(wǎng)狀動態(tài)結(jié)構關系。
隨機Petri網(wǎng)模型中,用變遷表示單元本身,而變遷之間的關系則代表單元之間的關系。根據(jù)每個變遷(單元)的內(nèi)在特征,可形式化定義為一個七元組即{活動,輸入產(chǎn)品,輸出產(chǎn)品,前置條件,后置條件,環(huán)境,度量指標}。
從小完備單元圖出發(fā),結(jié)合已建立的變遷(單元)間基本關系圖和建立原理可以得到小完備單元圖對應的Petri網(wǎng)基本模型。直接計算該隨機Petri網(wǎng)模型的復雜度很高,可以應用文獻[16]中提供的關系度分解技術,考察小完備單元圖的相應矩陣,將單元進行分組。然后,根據(jù)不同組內(nèi)單元之間原來關系的高出現(xiàn)頻次進行組間連接。多層次的分解,可以形成復雜產(chǎn)品的金字塔型模塊結(jié)構,既包含了靜態(tài)功能信息,又反映開發(fā)過程的動態(tài)信息。
5.2 柔性多項目團隊
柔性團隊是典型的“外科手術式團隊”,其內(nèi)部具有高度的柔性和靈活性,團隊成員之間有深入的溝通和密切的協(xié)作;對外則呈現(xiàn)高度的開發(fā)效率和運行規(guī)范,能夠進行顯性的能力評價和績效考核。柔性團隊的概念模型可以表示為
T=F(Ma, Mr, ST, C, Ms)
其中T指柔性團隊(Self Organizing Teams, or Well-Structured Teams),是具有高度適應能力,自組織與他組織相結(jié)合的項目開發(fā)團隊。Ma指多智能主體(Multi-Agents),即團隊成員,具備能動性、協(xié)作性的知識主體,其中包括用戶方的參與。Mr是指元規(guī)則(Meta Rules),團隊成員相互協(xié)作溝通的基本規(guī)則集。根據(jù)復雜適應理論,該團隊系統(tǒng)由一群行動者組成,他們按照一套規(guī)則與其他人交流,通過探索實現(xiàn)目標,這其中“元規(guī)則”特別重要。它是團隊協(xié)作的基本依據(jù),其他規(guī)則是這些元規(guī)則的不同函數(shù)。ST是共享的隱性知識(Shared Tacit Knowledge),團隊長期協(xié)作過程中所共享的默會知識集。C是指情境(Contextual),是柔性團隊完成具體任務時所面臨的資源、關系、環(huán)境、他人協(xié)作等狀況。Ms是指基于能力的柔性團隊度量(Measures),度量的目的一是與模塊化的結(jié)果——知識產(chǎn)品單元的匹配,為產(chǎn)品單元尋找佳的開發(fā)團隊;二是對團隊的績效進行考評,并動態(tài)更新團隊能力表征,指導團隊的成長演化。
柔性團隊是重量級IT項目管理的基本組織單元。對于模塊化后的開發(fā)任務,一般由多個柔性團隊根據(jù)自身特質(zhì)選擇相應的開發(fā)單元,并納入動態(tài)組織網(wǎng)絡進行管理。每個團隊的敏捷軟件開發(fā)過程必須定義每個活動什么時候、誰、在什么地方、采用什么工具協(xié)助等等具體的細節(jié)場景,同時也要根據(jù)項目的目標、團隊規(guī)模、項目關鍵程度、風險以及不確定性和客戶協(xié)作程度這些不同項目的因素對活動進行裁減和調(diào)整。除了定義單個活動以外,定義多個活動之間相互的關聯(lián)和影響,形成一個完整的過程系統(tǒng)也是關鍵。這需要在開發(fā)過程中定義各種場景,來說明各個活動如何結(jié)合協(xié)作。
5.3 統(tǒng)一產(chǎn)品定義和標準
復雜IT產(chǎn)品系統(tǒng)的開發(fā)強調(diào)相關模塊的兼容性。為了使模塊的開發(fā)團隊一開始考慮復雜產(chǎn)品各個模塊的所有因素,統(tǒng)一的產(chǎn)品定義與技術標準是系統(tǒng)集成研究的關鍵,是支持各模塊開發(fā)團隊工作的必要條件,使各模塊開發(fā)的專業(yè)人員有共同的語言,使用“同一種語言”進行交流。從而使各團隊能相互協(xié)作和共享信息,通過彼此及時、有效地通信和交流,盡早地發(fā)現(xiàn)問題并予以解決,以達到各項工作協(xié)調(diào)一致。
復雜IT產(chǎn)品系統(tǒng)統(tǒng)一的產(chǎn)品定義與技術標準包括產(chǎn)品功能、性能、用戶要求、開發(fā)、質(zhì)量保證、進度計劃等方面,把不同階段可能出現(xiàn)的問題,先期加以研究制定,對產(chǎn)品的功能、性能、可靠性、可測試性、可維修性、可重用性等預先進行定義和標準化,使IT產(chǎn)品開發(fā)一次成功,避免出現(xiàn)大的反復。除了產(chǎn)品定義和標準外,多項目團隊還需要共享的知識資源等的支持,如通用的組件、構件、元素等。
5.4 重載過程適度規(guī)范集
基于優(yōu)化模型的IT開發(fā)重載方法,其理論假設是過程可以通過持續(xù)的改進而提高能力,而過程是能力意味著產(chǎn)出結(jié)果是可預測的。以優(yōu)化和預測為特征的傳統(tǒng)過程管理雖然無法解決軟件開發(fā)難題,但其過程管理模型和框架的規(guī)范性,是保證軟件質(zhì)量的重要內(nèi)容。
敏捷軟件過程主張結(jié)合企業(yè)業(yè)務,開發(fā)自己的軟件過程,這是“Just Enough”策略。該策略指出,在進行軟件過程改進時,應著重領會CMM等過程模型的精神實質(zhì)和基本原理,建立適合自己的過程框架而不是拘泥于CMM等形式。在實施CMM時,必須考慮過程的多樣性,從實際出發(fā)做好文檔和過程管理,把過程管理與企業(yè)的業(yè)務目標緊密結(jié)合起來,同時探索可滿足CMM KPAs的小關鍵活動集合。
另外,為了保證敏捷、適應原則下的過程管理,除了傳統(tǒng)方法的適度規(guī)范集外,更重要的是增加模塊化開發(fā)的協(xié)同機制。這種開發(fā)機制,首先是基于傳統(tǒng)過程框架下分階段的敏捷改進,如敏捷建模、敏捷設計、敏捷開發(fā)、敏捷測試等;然后是基于敏捷思想的過程框架改進,如基于全局的需求變更管理、模型調(diào)配、進程反饋,甚至必要時的全局性迭代重啟。