熊體凡 田 年 劉清華 萬 立
華中科技大學國家CAD支撐軟件工程技術研究中心,武漢,430074
目前,隨著產品市場由賣方向買方的轉移,激烈的市場競爭使得企業(yè)越來越重視產品開發(fā)過程的管理。產品開發(fā)過程是一個復雜的過程,牽涉到人、事、物各個方面,由一系列技術活動和管理活動組成。技術活動包括產品結構定義、圖紙設計、工程分析等與技術資源的生成和使用密切相關的活動;管理活動包括組織定義、任務分解、時間規(guī)劃、進度控制、質量和成本跟蹤等與項目管理相關的活動[1]。這些技術活動和管理活動,既存在時序邏輯上的關系,又必須在系統(tǒng)的思想下以項目的形式統(tǒng)一組織。因此,對于產品開發(fā)過程的管理,不僅要從宏觀上把握產品開發(fā)的管理活動,控制項目進度和資源分配,還要從微觀上支持開發(fā)人員所涉及的具體設計活動的執(zhí)行,反映過程之間的復雜任務關系。
本文通過研究產品開發(fā)過程中項目管理和工作流的特點及其相互關系,結合其各自的優(yōu)勢,提出一種以項目分解結構樹和多級工作流空間為核心的層次化過程模型,將項目管理和工作流進行有機集成。
目前,有不少學者對項目管理與工作流的集成進行了探討[2-3],其基本方法是:首先將項目按照項目/任務分解模型劃分成一系列相對獨立的任務,然后將項目/任務分解模型映射成為供工作流引擎執(zhí)行的工作流模型,使每一項任務對應于一個工作流,最后由相應的工作流管理系統(tǒng)對任務的各個活動及相關資源進行管理,如圖1所示。
圖1 傳統(tǒng)的集成方法
定義1 子項目是對主項目粗粒度的分解,是一組相關任務的集合。子項目可以繼續(xù)分解成下一級的多個子項目和任務,以滿足管理所需要的粒度要求。
定義2 活動是一系列操作所組成的過程,是項目分解最基本的工作單元,活動受工作流引擎驅動完成某一任務。
項目管理技術支持自頂向下的任務分解,因此,從技術角度出發(fā),無論產品開發(fā)過程多么復雜,都可以通過項目管理中的項目層次分解來對產品開發(fā)過程進行細化。一般來說,對于規(guī)模比較大的項目P,先將其分解成n個具有邏輯順序的子項目Pi,分配給各個部門,分解的數(shù)學表達式為
再根據(jù)各個部門的實際情況,將子項目Pi繼續(xù)分解成若干相對簡單的任務:
式中,Tij為第i個項目下的第j個任務。
一個復雜的產品開發(fā)項目P最終通過層次分解轉變?yōu)橐粋€任務集
圖1中,傳統(tǒng)的項目管理與工作流集成方法在項目分解結構樹的底層引入任務執(zhí)行工作流,從縱向上將整個過程管理強行劃分為面向項目管理的宏觀過程管理和面向工作流的微觀過程管理。這種傳統(tǒng)的集成方法存在如下不足:
(1)項目管理不涉及對活動的管理。任務的具體實現(xiàn)是由底層的工作流管理模型驅動活動來完成的,但是對于項目管理人員而言,任務大多數(shù)都是內部不可見的“黑箱”。在實際工作中,產品開發(fā)項目P被分解為任務集后,任務 Ti j被繼續(xù)細分成一系列操作活動,使每個產品設計人員得到適當?shù)墓ぷ髁?即
式中,Ak為完成任務Tij所需的第k個活動。我們利用工作流的時序約束機制對這些活動之間的各種依賴關系進行管理,但是卻忽略了對具體活動Ak的工作量、進度等指標進行統(tǒng)計。
(2)傳統(tǒng)集成方法中,工作流只涉及對活動的管理,而實際工作的項目過程中還存在諸如反饋、循環(huán)等約束關系。
(3)項目管理和工作流模型之間的數(shù)據(jù)傳輸缺乏自動性和實時性,數(shù)據(jù)無法保證動態(tài)一致。
與傳統(tǒng)的集成方法不同,本文基于產品開發(fā)過程中項目管理和工作流之間的關聯(lián)性,將項目管理和工作流管理進行有機結合,統(tǒng)一到一個模型上,即層次化過程模型,如圖2所示。其中,項目分解結構樹和多級工作流空間是該模型針對項目管理和工作流管理的不同視圖。
實際產品開發(fā)過程中,項目管理和工作流存在三個層次的關聯(lián)性:
(1)項目層次。項目管理本身存在著可以定義的流程[2]。例如,項目管理知識體系(PMBOK指南第四版)中將項目管理過程分成啟動階段、規(guī)劃階段、執(zhí)行階段、監(jiān)控階段和收尾階段,同時,又將每個過程分成若干可以序列化的任務(圖3),這些具有先后順序的任務在實際的項目層次上構成了一個宏觀的時序流程。
(2)任務層次。項目管理通過對產品開發(fā)過程的任務分解得到由一系列子項目和任務組成的項目計劃,這些子項目和任務相互獨立,呈現(xiàn)出離散的特點。但是在實際產品協(xié)同開發(fā)過程中,子項目和任務之間存在著時序和數(shù)據(jù)供給等約束關系,表現(xiàn)出松散耦合的關系。這種關系可以利用工作流定義成約束規(guī)則,使每個子項目/任務對應于工作流中的一個節(jié)點,按規(guī)則順序執(zhí)行,如圖4所示。
圖2 層次化過程模型
圖3 項目階段活動圖
圖4 項目中的約束關系
(3)活動層次。實際工作中,任務經(jīng)過再分,得到一系列操作活動集。這些活動可以是簡單的操作,也可以由一系列活動構成的一個復雜操作。任務的具體執(zhí)行過程就是由這些活動或者操作來完成的。顯然,這些活動的操作序列可以通過工作流來描述[3]。
根據(jù)項目管理和工作流之間這種具有層次性的關聯(lián),本文將層次化過程模型的項目管理和工作流管理視圖也相應地分為三個層次,表現(xiàn)為項目分解結構樹和多級工作流空間。它們共同對項目過程進行綜合的描述。
項目分解結構樹描述項目的全部隸屬關系。項目管理人員通過“項目—任務(子項目)—活動”三層分解,利用該項目管理視圖進行交互式的項目建模。其中,項目層是對產品開發(fā)過程階段性任務的劃分;任務層是對階段性任務進行的細粒度劃分;活動層則是產品開發(fā)過程中的具體操作單元的集合,是任務的細粒度劃分。同時,項目的基本屬性,如項目定義、計劃開始/結束時間等,以及按照項目計劃開始和結束時間計算出來的進度和時間消耗等相關數(shù)據(jù)被作為項目對象的屬性內容,動態(tài)地顯示出來。項目管理人員甚至可以基于該視圖對各種重要的對象屬性進行分析、成本核算,得到關于項目狀態(tài)的報告。
多級工作流空間表達任務之間的時序聯(lián)系和約束規(guī)則。項目管理人員利用這個工作流管理視圖,在三個層次上對項目過程中的業(yè)務流程和規(guī)則進行定義,如圖5所示。項目空間定義產品開發(fā)過程中全局的工作流,覆蓋項目的整個生命周期;任務空間定義相應的任務約束規(guī)則,實現(xiàn)項目任務流轉的自動或半自動化,確保項目有序地進行;任務執(zhí)行空間針對任務執(zhí)行的實際需要,將任務轉換為一組相互獨立的工作單元(活動)組成的執(zhí)行工作流,對上層傳來的應用數(shù)據(jù)進行處理,最終完成任務目標。
圖5 多級工作流空間
本文的層次化過程模型通過項目任務分解進行項目對象建模,通過工作流驅動項目管理過程,保證項目任務有序進行。這種以項目分解結構樹和多級工作流空間為核心,集成項目管理和工作流的方法,與傳統(tǒng)集成方法相比具有如下優(yōu)點:①克服了傳統(tǒng)集成方法中項目管理無法對活動工作量、進度等指標進行統(tǒng)計的問題;②采用工作流處理項目過程中任務間的約束關系,在實現(xiàn)上更為有效;③采用統(tǒng)一的過程模型,避免了項目模型和工作流模型之間存在差異,需要進行轉換的問題;④由于項目管理和工作流集成在一個過程模型中,有利于工作流運行數(shù)據(jù)向項目管理的自動反饋,保證數(shù)據(jù)動態(tài)一致性;⑤可以使復雜的產品開發(fā)流程在項目分解的過程中得到簡化,進而簡化工作流的建模。
按照本文層次化過程模型的思想,基于Inte-PLM平臺開發(fā)了一個基于工作流引擎的項目管理模塊,實現(xiàn)對產品開發(fā)過程的管理。該模塊以項目分解結構為縱軸,以工作流為橫軸,把自上而下的項目計劃與自下而上的任務執(zhí)行集成在一起,通過工作流引擎驅動項目任務的執(zhí)行。
該項目管理模塊涉及到的數(shù)據(jù)對象主要有項目、子項目、任務、活動和工作流,數(shù)據(jù)結構及其相互關系[4]如圖6所示。項目、子項目、任務和活動之間通過父對象ID方便、快速地構建出項目分解結構樹,同時通過項目、子項目、任務與工作流的關聯(lián)(所屬工作流ID),利用工作流描述出項目的業(yè)務流程以及任務間的各種約束關系。
基于工作流引擎的項目管理模塊的運行機制如圖7所示。項目立項后,項目負責人使用項目管理工具(如Gantt圖等)進行產品開發(fā)任務分解建模,安排任務執(zhí)行進度計劃,并結合工作流工具理順各項任務之間的時序和邏輯關系,從而形成一套完整的項目執(zhí)行規(guī)則;工作流引擎按照項目執(zhí)行規(guī)則,為每一個任務在邏輯上規(guī)定一個處理的順序,把各項任務連接成一個過程,產生一系列工作流實例,對執(zhí)行過程進行分析和監(jiān)控,使得項目按照預先定義的順序依次完成。另外,工作流引擎還支持臨時的流程任務,即當某些數(shù)據(jù)文檔需要進行審批或者更改等業(yè)務活動時,任務負責人可以利用圖示化流程建模工具定義工作流程,在工作流引擎的協(xié)調控制下,完成相關信息的處理。同時,企業(yè)管理者可以通過項目監(jiān)控來實現(xiàn)項目任務運行狀態(tài)的跟蹤監(jiān)控,對項目執(zhí)行的相關數(shù)據(jù)進行統(tǒng)計分析,以便對項目執(zhí)行過程進行調控。
圖6 管理對象的屬性及相互關系
圖7 基于工作流引擎的項目管理模塊的運行機制
上述項目管理模塊目前已在某汽車制造企業(yè)的IntePLM系統(tǒng)中使用。在實施該模塊前,該企業(yè)主要依靠項目管理小組采用圖示化的項目管理工具(如Project、Gantt圖等)對產品開發(fā)過程進行簡單的管理和監(jiān)控?,F(xiàn)在通過實施IntePLM項目管理模塊,將IntePLM主動式的流程引擎作為內在的過程驅動動力,以項目任務管理將各業(yè)務活動進行了有機的組織。如圖8所示,項目負責人進行項目創(chuàng)建和結構分解,并結合實際業(yè)務需求定義任務間的約束規(guī)則;工作流引擎驅動項目任務下達到任務負責人,形成一份任務列表;任務負責人接受某一任務后,可根據(jù)實際需要按照標準流程對工作進行分解,召集相關工作人員共同完成任務;當工作人員執(zhí)行相應的操作后,提交任務交付物,該任務完成;當所有任務完成后,整個項目最終完成。
圖8 相關界面及其關系
在這個過程中,相關數(shù)據(jù)的處理和傳遞都是自動完成的,既較好地支持了項目管理的業(yè)務過程,又較大程度地提高了工作效率??梢哉f,IntePLM項目管理模塊實施的優(yōu)勢具體體現(xiàn)在以下幾點:
(1)通過自動化流程完成數(shù)據(jù)采集和處理,既解決了監(jiān)控不具有時效性的問題,又節(jié)省了人力。
(2)通過建立企業(yè)標準化項目流程模版,可減少重復工作。項目流程模版不僅描述一個項目如何分解成更小的任務,而且還表達了分解后的子任務之間的執(zhí)行時序、數(shù)據(jù)要求等約束關系。當遇到一個具體研發(fā)項目時,可以通過套用標準項目流程模版進行任務分解,通過工作流引擎的驅動,實現(xiàn)對子任務的分發(fā)。
(3)通過項目分解將復雜的產品開發(fā)流程簡化,同時把部分工作流建模工作下放到子項目或任務的負責人,讓那些既懂業(yè)務又懂管理的技術人員去設計,使業(yè)務流程更加符合項目的實際業(yè)務流程。
(4)通過把項目過程中的大循環(huán)轉變?yōu)槿蝿諆炔康?、以評審和反饋優(yōu)化為特點的局部小循環(huán),并將循環(huán)納入到工作流管理當中,解決了項目管理不能有效描述因質量、性能等指標達不到要求而出現(xiàn)過程反饋、迭代循環(huán)的問題,同時也使整個開發(fā)過程更符合并行工程的設計思想。
[1]彭武良,盧睿,劉振.產品設計項目過程管理的研究與實現(xiàn)[J].計算機集成制造系統(tǒng),2008,14(1):89-95.
[2]曹健,張申生,牟玉潔,等.項目管理與執(zhí)行集成技術研究[J].計算機集成制造系統(tǒng)-CIMS,2004,10(1):37-43.
[3]孔建壽,張友良,汪惠芬,等.協(xié)同開發(fā)環(huán)境中項目管理與工作流管理的集成[J].中國機械工程,2003,14(13):1122-1125.
[4]陳劍,朱林,劉清華.PDM項目管理模型的研究與實現(xiàn)[J].計算機工程,2003,29(10):110-111.