筆者過去曾經(jīng)與一流的北京.NET好手及臺灣Architect共創(chuàng)夢幻團隊,來成就企業(yè)主的跨國信息系統(tǒng),這期間考驗了團隊每個成員的溝通能力、彈性程度、設(shè)計能力、實作能力及測試能力,透過同步設(shè)計(Co-Design)外包模式的運行,讓團隊每個人均能大展長才。為達(dá)到此目的,項目管理由過去對簡單的同組織單一項目管理,逐漸發(fā)展成跨組織跨公司多項目的管理方式,本文將針對軟件外包之項目管理分享實務(wù)經(jīng)驗及相關(guān)的運作策略。
從項目管理轉(zhuǎn)型為項目領(lǐng)導(dǎo)
對于跨不同文化組織的項目管理,首要重視的是項目管理的整體性。這與傳統(tǒng)項目經(jīng)理的管理模式相差甚遠(yuǎn),后者通常以自己組織與文化利益為基礎(chǔ)考慮。這種強調(diào)以架構(gòu)為中心的項目管理模式主要以聯(lián)合作業(yè)(Joint-Force)方式來進(jìn)行,團隊的成員對聯(lián)合作業(yè)都有基本的專業(yè)素養(yǎng)及能力,以團隊的整體成功為目標(biāo),當(dāng)發(fā)生影響到整體目標(biāo)時,通常以此整體目標(biāo)為導(dǎo)向,而非以個人或公司的部分利益為主的項目領(lǐng)導(dǎo)模式運作將主導(dǎo)一切。
傳統(tǒng)的項目管理,項目經(jīng)理習(xí)慣按照項目管理的硬技術(shù)排定所有的流程及事情,項目成員按照項目經(jīng)理制定程序執(zhí)行事情,常常造成溝通不良、彈性不夠的團隊,最后資源不足,草草收場或政策性結(jié)案。以架構(gòu)為中心的項目管理強調(diào)不斷顧全整體、協(xié)調(diào)、反饋、I&I、規(guī)劃的過程,根據(jù)團隊的資源,協(xié)作出的效果??梢韵胂?,所有的團隊成員或許單看每個人都不是秀的,但是整體運作結(jié)果卻是非常理想的。在上述的項目管理的本質(zhì),我們會發(fā)現(xiàn)有下列幾個基本特質(zhì):
項目成員不再局限在公司內(nèi)部,而是來自不同團隊之外部資源共同跨國組成。
項目成員對項目執(zhí)行均有一定基本程度的了解,而能夠透過每次的互動定義出團隊每個迭代的目標(biāo)。
項目成員均有規(guī)劃的能力,對執(zhí)行計劃的規(guī)劃擅長以不同的構(gòu)面運用不同的價值角度思考。
項目團隊的所由成員均為主動型成員,而非一般主動與被同型混和團隊。
軟件外包首重架構(gòu)規(guī)劃
為了解決上述的環(huán)境變化所造成的影響,項目管理模式本著順應(yīng)變化的原則及思考本質(zhì),以架構(gòu)為中心之聯(lián)合作業(yè)的項目管理(Architecture-Centric Joint-Force Project Management)應(yīng)運而生。在介紹其特色之前,先對架構(gòu)及項目做個概略說明,用以表達(dá)Boundary。在架構(gòu)思維上,以系統(tǒng)架構(gòu)(Systems Architecture)為化。一個系統(tǒng),又稱一個信息,又稱一個知識,上帝所創(chuàng)造的世界萬物是一個系統(tǒng),太陽系是一個系統(tǒng),一粒沙子也是一個系統(tǒng)。依此觀點,組成沙子的結(jié)構(gòu)與行為合一產(chǎn)生沙子的系統(tǒng)架構(gòu),而架構(gòu)不再局限軟件架構(gòu)、硬件架構(gòu),更擴展到企業(yè)架構(gòu)、知識架構(gòu)、思考架構(gòu)應(yīng)用上,這是一個很有趣的現(xiàn)象。過去架構(gòu)師對架構(gòu)從無法表述到可以利用許多工具方法自由地表述,如企業(yè)架構(gòu)師可以利用架構(gòu)框架方法來描述架構(gòu)。
軟件外包實務(wù)管理特色
1. 以架構(gòu)為中心的項目管理
好的項目管理必須要有好的項目管理架構(gòu)。項目管理架構(gòu)的終極目標(biāo),是要創(chuàng)造高質(zhì)量的系統(tǒng),以架構(gòu)為中心的專案管理也是一個I&I的過程,其運作方式如下圖所示。完成該程序一次,表示完成一個Iteration,是用于產(chǎn)品或項目規(guī)劃。從圖中您可以發(fā)現(xiàn),所有的軟件創(chuàng)作過程均須回到Architecture Design團隊,項目經(jīng)理在運作排定時程的方式,需要有兩種策略,一為項目開發(fā)團隊按照軟件開發(fā)程序執(zhí)行事情的先后順序,二為架構(gòu)團隊依照“定時不定量”原則于每次固定時間發(fā)布(Release)目前架構(gòu)描述版本。從圖(見下)中,您可以發(fā)現(xiàn)架構(gòu)會掌握系統(tǒng)的全貌來調(diào)和出符合各種觀點的系統(tǒng)。
再來針對Mid-Course Corrections來做說明,一輛汽車若進(jìn)維修廠維修時,常常會檢查汽車零件是否需要更換,微調(diào)讓團隊運作更順利,同理,一個團隊“找對的人上車、請不對的人下車”也是一件很自然的過程,而Mid-Course Correction就是這個作用。在每次的Iteration結(jié)束前,團隊必定從中學(xué)習(xí)到很多經(jīng)驗,而這些經(jīng)驗也將做為下個Iteration的基礎(chǔ),因此調(diào)整團隊讓其于下個Iteration運作中更順暢是一個寶貴的經(jīng)驗過程。而每次的經(jīng)驗累積后就變成企業(yè)經(jīng)營的智慧,能夠幫助企業(yè)成長,避免未來犯錯。
2. 重視規(guī)劃藝術(shù)。
計劃總是趕不上變化,但是若沒有計劃,一定應(yīng)付不了變化,所以計劃的藝術(shù)油然而生。試想,一個一直在練習(xí)計劃的團隊,組出各式各樣的情境來應(yīng)變實際執(zhí)行的狀況,讓項目計劃雖然有風(fēng)險(Risk),但是可以掌握的,這是一件多么美好的事情!因此,項目規(guī)劃不在于主計劃多么完美,而在于您所準(zhǔn)備的備胎計劃是否靈活充足,以及計劃是否可被地執(zhí)行。計劃通常分為兩種,一種為Top-Down Plan,由項目經(jīng)理制定目標(biāo)與方向,一種為Bottom-Up Estimation,由Group Leader估算實際達(dá)成所需時程及資源,來共同研擬出可執(zhí)行的計劃。
以架構(gòu)為中心的規(guī)劃方式強調(diào)Backward Planning及Dynamic Planning,其掌握的精神即為利用動態(tài)規(guī)劃過程,不斷修正計劃,讓計劃的結(jié)果與實際執(zhí)行結(jié)果一致,這是一個整合的過程,把計劃做UPDATE整合到原計劃中,并在且Revision History記錄演變的過程,達(dá)到計劃與變化均能兼顧的目的。
3. 不同的團隊文化結(jié)合
只要對團隊產(chǎn)出物有所貢獻(xiàn)的均視為Project Stakeholders,然而,項目管理者在組立團隊時需要把白領(lǐng)與藍(lán)領(lǐng)分開。兵法有云:兵分兩路,因為常常白領(lǐng)有許多噪聲會影響項目的因素,但并未做決策,并不代表藍(lán)領(lǐng)團隊需要受到直接沖擊。成熟的項目團隊知道所有Issues只要尚未決策一律按照原定計劃執(zhí)行,把這些通常會來自不同的文化團隊成員組立的過程中,團隊紀(jì)律是不可或缺的一環(huán),也是一個關(guān)鍵的成功因素。
4. 塑造敵人來營造團隊士氣
異質(zhì)型的項目團隊在假設(shè)敵人時,若假設(shè)錯誤,將會造成項目問題,但若假設(shè)正確,將會獲得令人意想不到的效果。筆者過去曾執(zhí)行一個異質(zhì)系統(tǒng)整合項目,其經(jīng)驗是,我們假設(shè)變動的需求是我們的敵人,同時也允許需求是可變動的。除此之外,都是我們的資源。在這樣的假設(shè)下,我們發(fā)現(xiàn)一件有趣的過程,客戶也一起參與變成我們的Worker,一起來把新舊系統(tǒng)做串接及測試。
5. 先整合后分工
在臺灣,很多人習(xí)慣先分工再整合:每件工作拿過來就先做分工。這是很危險的,因為在不了解全貌的狀況下冒然分工,未來可能會發(fā)生很大的誤差。以架構(gòu)為中心會解決這個問題,您會發(fā)現(xiàn)所有的資料都會匯集到架構(gòu)師及項目經(jīng)理那里。雙方同時用不同的觀點為項目質(zhì)量、時程、成本、風(fēng)險等因素把關(guān),強化項目成功的機會。
6. 決策小組的執(zhí)行力及重要性
異質(zhì)團隊的項目管理有個很重要的竅門,及成立決策中心做決策,因為觀點不同,所以需要決策中心。筆者過去的經(jīng)驗是將客戶、項目經(jīng)理、Program Manager、Chief Architect組成決策小組,有投票權(quán)及否決權(quán),然后Group Leader / Stakeholder有辯駁權(quán)及說明權(quán),透過有效的運作決策機制,來決定項目的共同方向及執(zhí)行效率,這個經(jīng)驗可以分享給各位,不過決策中心一把尚方寶劍,只有在解決不了的問題才會到?jīng)Q策中心(團隊智慧能解決的問題就解決了,不需進(jìn)決策中心),通常會由項目經(jīng)理不定時的召開決策會議。
7. 簽訂合同時會決定未來的格局發(fā)展
最后,追本溯源,一個項目的成功于否在簽約時就可以決定未來的格局發(fā)展,尤其是針對異質(zhì)性整合系統(tǒng),它需要甲、乙雙方均投入資源,共同成就,而在擬約過程就應(yīng)該考慮雙方的責(zé)任義務(wù),免得造成不必要的誤解及變成項目執(zhí)行的絆腳石,因此團隊若能在簽約前,以架構(gòu)為中心執(zhí)行POC(Proof of Concept),制作雛型(Prototype),將會對簽約有很大的保證,是個降低風(fēng)險的方法。
結(jié)語
成功的軟件外包項目管理實務(wù)需要以領(lǐng)導(dǎo)、授權(quán)、培育及學(xué)習(xí)的成熟態(tài)度來引領(lǐng)團隊,并配以架構(gòu)為中心的項目管理技術(shù)來落實,更重要的是好的外包項目管理不是著重在解決問題,而是完全以預(yù)防問題為項目領(lǐng)導(dǎo)方向,因此于合同擬定階段到最后實現(xiàn)及運行整個過程,依照先整合后分工,重視規(guī)劃藝術(shù),擅長異質(zhì)團隊文化結(jié)合,塑造團隊?wèi)?zhàn)斗氣息,并利用決策小組共同做出決策等策略來共創(chuàng)外包合作團隊,來達(dá)到項目目標(biāo)。
從項目管理轉(zhuǎn)型為項目領(lǐng)導(dǎo)
對于跨不同文化組織的項目管理,首要重視的是項目管理的整體性。這與傳統(tǒng)項目經(jīng)理的管理模式相差甚遠(yuǎn),后者通常以自己組織與文化利益為基礎(chǔ)考慮。這種強調(diào)以架構(gòu)為中心的項目管理模式主要以聯(lián)合作業(yè)(Joint-Force)方式來進(jìn)行,團隊的成員對聯(lián)合作業(yè)都有基本的專業(yè)素養(yǎng)及能力,以團隊的整體成功為目標(biāo),當(dāng)發(fā)生影響到整體目標(biāo)時,通常以此整體目標(biāo)為導(dǎo)向,而非以個人或公司的部分利益為主的項目領(lǐng)導(dǎo)模式運作將主導(dǎo)一切。
傳統(tǒng)的項目管理,項目經(jīng)理習(xí)慣按照項目管理的硬技術(shù)排定所有的流程及事情,項目成員按照項目經(jīng)理制定程序執(zhí)行事情,常常造成溝通不良、彈性不夠的團隊,最后資源不足,草草收場或政策性結(jié)案。以架構(gòu)為中心的項目管理強調(diào)不斷顧全整體、協(xié)調(diào)、反饋、I&I、規(guī)劃的過程,根據(jù)團隊的資源,協(xié)作出的效果??梢韵胂?,所有的團隊成員或許單看每個人都不是秀的,但是整體運作結(jié)果卻是非常理想的。在上述的項目管理的本質(zhì),我們會發(fā)現(xiàn)有下列幾個基本特質(zhì):
項目成員不再局限在公司內(nèi)部,而是來自不同團隊之外部資源共同跨國組成。
項目成員對項目執(zhí)行均有一定基本程度的了解,而能夠透過每次的互動定義出團隊每個迭代的目標(biāo)。
項目成員均有規(guī)劃的能力,對執(zhí)行計劃的規(guī)劃擅長以不同的構(gòu)面運用不同的價值角度思考。
項目團隊的所由成員均為主動型成員,而非一般主動與被同型混和團隊。
軟件外包首重架構(gòu)規(guī)劃
為了解決上述的環(huán)境變化所造成的影響,項目管理模式本著順應(yīng)變化的原則及思考本質(zhì),以架構(gòu)為中心之聯(lián)合作業(yè)的項目管理(Architecture-Centric Joint-Force Project Management)應(yīng)運而生。在介紹其特色之前,先對架構(gòu)及項目做個概略說明,用以表達(dá)Boundary。在架構(gòu)思維上,以系統(tǒng)架構(gòu)(Systems Architecture)為化。一個系統(tǒng),又稱一個信息,又稱一個知識,上帝所創(chuàng)造的世界萬物是一個系統(tǒng),太陽系是一個系統(tǒng),一粒沙子也是一個系統(tǒng)。依此觀點,組成沙子的結(jié)構(gòu)與行為合一產(chǎn)生沙子的系統(tǒng)架構(gòu),而架構(gòu)不再局限軟件架構(gòu)、硬件架構(gòu),更擴展到企業(yè)架構(gòu)、知識架構(gòu)、思考架構(gòu)應(yīng)用上,這是一個很有趣的現(xiàn)象。過去架構(gòu)師對架構(gòu)從無法表述到可以利用許多工具方法自由地表述,如企業(yè)架構(gòu)師可以利用架構(gòu)框架方法來描述架構(gòu)。
軟件外包實務(wù)管理特色
1. 以架構(gòu)為中心的項目管理
好的項目管理必須要有好的項目管理架構(gòu)。項目管理架構(gòu)的終極目標(biāo),是要創(chuàng)造高質(zhì)量的系統(tǒng),以架構(gòu)為中心的專案管理也是一個I&I的過程,其運作方式如下圖所示。完成該程序一次,表示完成一個Iteration,是用于產(chǎn)品或項目規(guī)劃。從圖中您可以發(fā)現(xiàn),所有的軟件創(chuàng)作過程均須回到Architecture Design團隊,項目經(jīng)理在運作排定時程的方式,需要有兩種策略,一為項目開發(fā)團隊按照軟件開發(fā)程序執(zhí)行事情的先后順序,二為架構(gòu)團隊依照“定時不定量”原則于每次固定時間發(fā)布(Release)目前架構(gòu)描述版本。從圖(見下)中,您可以發(fā)現(xiàn)架構(gòu)會掌握系統(tǒng)的全貌來調(diào)和出符合各種觀點的系統(tǒng)。
再來針對Mid-Course Corrections來做說明,一輛汽車若進(jìn)維修廠維修時,常常會檢查汽車零件是否需要更換,微調(diào)讓團隊運作更順利,同理,一個團隊“找對的人上車、請不對的人下車”也是一件很自然的過程,而Mid-Course Correction就是這個作用。在每次的Iteration結(jié)束前,團隊必定從中學(xué)習(xí)到很多經(jīng)驗,而這些經(jīng)驗也將做為下個Iteration的基礎(chǔ),因此調(diào)整團隊讓其于下個Iteration運作中更順暢是一個寶貴的經(jīng)驗過程。而每次的經(jīng)驗累積后就變成企業(yè)經(jīng)營的智慧,能夠幫助企業(yè)成長,避免未來犯錯。
2. 重視規(guī)劃藝術(shù)。
計劃總是趕不上變化,但是若沒有計劃,一定應(yīng)付不了變化,所以計劃的藝術(shù)油然而生。試想,一個一直在練習(xí)計劃的團隊,組出各式各樣的情境來應(yīng)變實際執(zhí)行的狀況,讓項目計劃雖然有風(fēng)險(Risk),但是可以掌握的,這是一件多么美好的事情!因此,項目規(guī)劃不在于主計劃多么完美,而在于您所準(zhǔn)備的備胎計劃是否靈活充足,以及計劃是否可被地執(zhí)行。計劃通常分為兩種,一種為Top-Down Plan,由項目經(jīng)理制定目標(biāo)與方向,一種為Bottom-Up Estimation,由Group Leader估算實際達(dá)成所需時程及資源,來共同研擬出可執(zhí)行的計劃。
以架構(gòu)為中心的規(guī)劃方式強調(diào)Backward Planning及Dynamic Planning,其掌握的精神即為利用動態(tài)規(guī)劃過程,不斷修正計劃,讓計劃的結(jié)果與實際執(zhí)行結(jié)果一致,這是一個整合的過程,把計劃做UPDATE整合到原計劃中,并在且Revision History記錄演變的過程,達(dá)到計劃與變化均能兼顧的目的。
3. 不同的團隊文化結(jié)合
只要對團隊產(chǎn)出物有所貢獻(xiàn)的均視為Project Stakeholders,然而,項目管理者在組立團隊時需要把白領(lǐng)與藍(lán)領(lǐng)分開。兵法有云:兵分兩路,因為常常白領(lǐng)有許多噪聲會影響項目的因素,但并未做決策,并不代表藍(lán)領(lǐng)團隊需要受到直接沖擊。成熟的項目團隊知道所有Issues只要尚未決策一律按照原定計劃執(zhí)行,把這些通常會來自不同的文化團隊成員組立的過程中,團隊紀(jì)律是不可或缺的一環(huán),也是一個關(guān)鍵的成功因素。
4. 塑造敵人來營造團隊士氣
異質(zhì)型的項目團隊在假設(shè)敵人時,若假設(shè)錯誤,將會造成項目問題,但若假設(shè)正確,將會獲得令人意想不到的效果。筆者過去曾執(zhí)行一個異質(zhì)系統(tǒng)整合項目,其經(jīng)驗是,我們假設(shè)變動的需求是我們的敵人,同時也允許需求是可變動的。除此之外,都是我們的資源。在這樣的假設(shè)下,我們發(fā)現(xiàn)一件有趣的過程,客戶也一起參與變成我們的Worker,一起來把新舊系統(tǒng)做串接及測試。
5. 先整合后分工
在臺灣,很多人習(xí)慣先分工再整合:每件工作拿過來就先做分工。這是很危險的,因為在不了解全貌的狀況下冒然分工,未來可能會發(fā)生很大的誤差。以架構(gòu)為中心會解決這個問題,您會發(fā)現(xiàn)所有的資料都會匯集到架構(gòu)師及項目經(jīng)理那里。雙方同時用不同的觀點為項目質(zhì)量、時程、成本、風(fēng)險等因素把關(guān),強化項目成功的機會。
6. 決策小組的執(zhí)行力及重要性
異質(zhì)團隊的項目管理有個很重要的竅門,及成立決策中心做決策,因為觀點不同,所以需要決策中心。筆者過去的經(jīng)驗是將客戶、項目經(jīng)理、Program Manager、Chief Architect組成決策小組,有投票權(quán)及否決權(quán),然后Group Leader / Stakeholder有辯駁權(quán)及說明權(quán),透過有效的運作決策機制,來決定項目的共同方向及執(zhí)行效率,這個經(jīng)驗可以分享給各位,不過決策中心一把尚方寶劍,只有在解決不了的問題才會到?jīng)Q策中心(團隊智慧能解決的問題就解決了,不需進(jìn)決策中心),通常會由項目經(jīng)理不定時的召開決策會議。
7. 簽訂合同時會決定未來的格局發(fā)展
最后,追本溯源,一個項目的成功于否在簽約時就可以決定未來的格局發(fā)展,尤其是針對異質(zhì)性整合系統(tǒng),它需要甲、乙雙方均投入資源,共同成就,而在擬約過程就應(yīng)該考慮雙方的責(zé)任義務(wù),免得造成不必要的誤解及變成項目執(zhí)行的絆腳石,因此團隊若能在簽約前,以架構(gòu)為中心執(zhí)行POC(Proof of Concept),制作雛型(Prototype),將會對簽約有很大的保證,是個降低風(fēng)險的方法。
結(jié)語
成功的軟件外包項目管理實務(wù)需要以領(lǐng)導(dǎo)、授權(quán)、培育及學(xué)習(xí)的成熟態(tài)度來引領(lǐng)團隊,并配以架構(gòu)為中心的項目管理技術(shù)來落實,更重要的是好的外包項目管理不是著重在解決問題,而是完全以預(yù)防問題為項目領(lǐng)導(dǎo)方向,因此于合同擬定階段到最后實現(xiàn)及運行整個過程,依照先整合后分工,重視規(guī)劃藝術(shù),擅長異質(zhì)團隊文化結(jié)合,塑造團隊?wèi)?zhàn)斗氣息,并利用決策小組共同做出決策等策略來共創(chuàng)外包合作團隊,來達(dá)到項目目標(biāo)。