摘 要:敏捷開(kāi)發(fā)模式是近些年來(lái)國(guó)內(nèi)外軟件領(lǐng)域的研究熱點(diǎn),在大型商業(yè)軟件開(kāi)發(fā)項(xiàng)目中使用敏捷開(kāi)發(fā)模式并引入開(kāi)源軟件提高開(kāi)發(fā)效率已成為各軟件公司的開(kāi)發(fā)優(yōu)選模式,如何對(duì)此開(kāi)發(fā)模式進(jìn)行有效的風(fēng)險(xiǎn)管理就顯得尤為重要。文章分析了敏捷模式下引入開(kāi)源軟件的主要風(fēng)險(xiǎn)類(lèi)型,并對(duì)風(fēng)險(xiǎn)管理流程進(jìn)行了探析。
關(guān)鍵詞:敏捷開(kāi)發(fā);開(kāi)源軟件;風(fēng)險(xiǎn)管理
中圖分類(lèi)號(hào):F270 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1008-4428(2017)02-12 -02
一、引言
現(xiàn)代商業(yè)環(huán)境充滿競(jìng)爭(zhēng),產(chǎn)品更新?lián)Q代越發(fā)得迅速。這樣就迫使軟件產(chǎn)品的開(kāi)發(fā)周期大大縮短。為爭(zhēng)取或維持產(chǎn)品的領(lǐng)先地位,開(kāi)發(fā)團(tuán)隊(duì)需要迅速作出決斷,縮短研發(fā)周期,傳統(tǒng)的瀑布式研發(fā)模式顯然無(wú)法適用。在此商業(yè)背景下,敏捷開(kāi)發(fā)模式應(yīng)運(yùn)而生。敏捷開(kāi)發(fā)模式的起源可以追溯到2001年的敏捷聯(lián)盟及其發(fā)表的《敏捷軟件開(kāi)發(fā)宣言》。到了2007年大概有超過(guò)4700名專(zhuān)業(yè)人士同意并簽署了這份宣言,確認(rèn)敏捷方法是一種能夠容納變更的軟件工程架構(gòu)。敏捷開(kāi)發(fā)模式是一種以人為核心,迭代、循序漸進(jìn)的開(kāi)發(fā)方法。在這種模式下的軟件產(chǎn)品開(kāi)發(fā)過(guò)程當(dāng)中,一個(gè)大項(xiàng)目會(huì)被拆分為多個(gè)功能上有聯(lián)系但是可以各自獨(dú)立進(jìn)行的小項(xiàng)目,并分布到不同的項(xiàng)目開(kāi)發(fā)組中進(jìn)行獨(dú)立開(kāi)發(fā),在此期間軟件產(chǎn)品一直處于可用的狀態(tài)。敏捷開(kāi)發(fā)模式由其主要的價(jià)值關(guān)注點(diǎn)決定了其更看重產(chǎn)品開(kāi)發(fā)對(duì)變化的迅速響應(yīng),同時(shí)也弱化了對(duì)過(guò)程和文檔的重視程度。因此這種模式下各個(gè)小項(xiàng)目組內(nèi)部溝通更順暢,自主行為更突出,各個(gè)項(xiàng)目組技術(shù)實(shí)力以及對(duì)產(chǎn)品理解能力也各有差距。
開(kāi)源軟件已其快速、開(kāi)放的代碼資源也已成為日漸流行、同時(shí)也廣受爭(zhēng)議的軟件模式。開(kāi)源軟件(Open Source Software)定義為開(kāi)放源代碼軟件的簡(jiǎn)稱(chēng),這個(gè)概念起源于20世紀(jì)90年代。同時(shí)開(kāi)放源代碼創(chuàng)始組織(Open Source Initiative Association,簡(jiǎn)稱(chēng)OSI)的定義指出,開(kāi)源軟件是在滿足一定條件下,允許任何人使用、拷貝、修改、分發(fā)(免費(fèi)或少許收費(fèi))的軟件?,F(xiàn)在隨著開(kāi)源軟件產(chǎn)業(yè)的蓬勃發(fā)展,已有越來(lái)越多的商業(yè)軟件公司選擇與成功開(kāi)源項(xiàng)目合作,因?yàn)檫@樣可以通過(guò)重用開(kāi)源軟件代碼來(lái)節(jié)省開(kāi)發(fā)成本,在開(kāi)發(fā)過(guò)程中跟敏捷開(kāi)發(fā)模式結(jié)合更是將整個(gè)產(chǎn)品開(kāi)發(fā)時(shí)間大大縮短,這種開(kāi)發(fā)效率的大幅度提高對(duì)于商業(yè)軟件公司來(lái)講是面對(duì)激烈市場(chǎng)競(jìng)爭(zhēng)的有力優(yōu)勢(shì)。因此各類(lèi)大公司紛紛加入開(kāi)源軟件的開(kāi)發(fā)當(dāng)中,又或者選擇與開(kāi)源組織合作,以確保競(jìng)爭(zhēng)優(yōu)勢(shì)。
雖然敏捷開(kāi)發(fā)中同時(shí)引入開(kāi)源軟件對(duì)軟件產(chǎn)品的開(kāi)發(fā)來(lái)說(shuō)是極大的優(yōu)點(diǎn),但同時(shí)也存在一定的風(fēng)險(xiǎn)。從法律角度來(lái)說(shuō),開(kāi)源軟件雖然不像商業(yè)軟件一樣有一個(gè)具體供應(yīng)商和確定的出售價(jià)格,但其仍然是受到知識(shí)產(chǎn)權(quán)相關(guān)法規(guī)的保護(hù)的。如果對(duì)開(kāi)源協(xié)議不理解就直接引入開(kāi)源軟件,依然會(huì)因?yàn)榍址噶碎_(kāi)源軟件版權(quán)而受到開(kāi)源組織甚至其他商業(yè)公司的法律追究。同時(shí)開(kāi)源許可證的最為典型的通用公共許可證GPL(General Public License)規(guī)定,只要軟件中任何源代碼應(yīng)用了GPL許可證,此軟件的全部源代碼需公開(kāi),顯然,這對(duì)商業(yè)化的軟件產(chǎn)品而言是不能接受的。另外從技術(shù)角度來(lái)說(shuō),開(kāi)源軟件本身的穩(wěn)定性以及引入開(kāi)源軟件后軟件產(chǎn)品質(zhì)量的保證也是一個(gè)需要考慮的問(wèn)題。這些都對(duì)敏捷開(kāi)發(fā)項(xiàng)目組成員的開(kāi)源軟件知識(shí)有很高的要求,如果希望獲得軟件開(kāi)發(fā)過(guò)程當(dāng)中引入的每一個(gè)開(kāi)源軟件具體信息并加以控制,完全依賴(lài)產(chǎn)品各個(gè)獨(dú)立項(xiàng)目組顯然是有極大風(fēng)險(xiǎn)的。本文將具體分析敏捷開(kāi)發(fā)模式下引入開(kāi)源軟件的主要風(fēng)險(xiǎn)類(lèi)型,并將對(duì)風(fēng)險(xiǎn)管理流程進(jìn)行深入探析。
二、敏捷開(kāi)發(fā)模式下產(chǎn)品引入開(kāi)源軟件的風(fēng)險(xiǎn)分析
由于軟件產(chǎn)業(yè)的特殊性,使得產(chǎn)品在開(kāi)發(fā)周期中存在眾多不確定因素。總的來(lái)說(shuō),軟件開(kāi)發(fā)的風(fēng)險(xiǎn)管理分為兩個(gè)部分:風(fēng)險(xiǎn)評(píng)估和風(fēng)險(xiǎn)控制,風(fēng)險(xiǎn)評(píng)估分為風(fēng)險(xiǎn)識(shí)別、分析和優(yōu)先級(jí)排序;風(fēng)險(xiǎn)控制分為風(fēng)險(xiǎn)計(jì)劃過(guò)程、解決過(guò)程和控制過(guò)程。其中風(fēng)險(xiǎn)識(shí)別和分析是最重要的部分。
由于敏捷開(kāi)發(fā)模式下產(chǎn)品項(xiàng)目分為多個(gè)子項(xiàng)目,這就使得協(xié)調(diào)這些子項(xiàng)目、合理調(diào)配資源變得復(fù)雜。開(kāi)源軟件的引入又進(jìn)一步帶來(lái)了法律風(fēng)險(xiǎn)和代碼穩(wěn)定性的風(fēng)險(xiǎn),使得整個(gè)項(xiàng)目的分析調(diào)控變得更為復(fù)雜。因此,在敏捷開(kāi)發(fā)模式下引入開(kāi)源軟件的風(fēng)險(xiǎn)的迅速識(shí)別分析顯得尤為重要。主要體現(xiàn)在以下幾個(gè)方面:
(一)環(huán)境內(nèi)部風(fēng)險(xiǎn)
1.技術(shù)風(fēng)險(xiǎn)。軟件開(kāi)發(fā)的技術(shù)風(fēng)險(xiǎn)主要是不能或延遲完成技術(shù)突破的風(fēng)險(xiǎn)。由于突破技術(shù)難關(guān)是新產(chǎn)品開(kāi)發(fā)項(xiàng)目的重中之重,所以,項(xiàng)目團(tuán)隊(duì)能否突破技術(shù)難關(guān)解決新產(chǎn)品技術(shù)問(wèn)題是軟件開(kāi)發(fā)項(xiàng)目的一個(gè)很大的技術(shù)風(fēng)險(xiǎn)。此外,在產(chǎn)品的設(shè)計(jì)、測(cè)試、接口維護(hù)等問(wèn)題也存在著不可預(yù)見(jiàn)性,如果其中一環(huán)出現(xiàn)問(wèn)題就可能會(huì)帶來(lái)巨大的軟件開(kāi)發(fā)風(fēng)險(xiǎn)。
2.產(chǎn)品穩(wěn)定性風(fēng)險(xiǎn)。開(kāi)源軟件的貢獻(xiàn)者是廣泛的,可能分布于世界各地,也有可能多位或者幾十上百位開(kāi)發(fā)人員共同開(kāi)發(fā)一個(gè)開(kāi)源軟件,直接造成了開(kāi)源軟件源頭的復(fù)雜性。開(kāi)發(fā)人員的專(zhuān)業(yè)背景不同,代碼寫(xiě)法也不盡相同。作為需要有穩(wěn)定產(chǎn)品輸出的商業(yè)軟件開(kāi)發(fā)團(tuán)隊(duì)來(lái)說(shuō),使用開(kāi)源軟件其對(duì)產(chǎn)品的穩(wěn)定性和成熟度方面是有較大風(fēng)險(xiǎn)的。
(二)環(huán)境外部風(fēng)險(xiǎn)
1.著作權(quán)保護(hù)問(wèn)題。商業(yè)軟件是受著作權(quán)保護(hù)的。開(kāi)源軟件的發(fā)布是采用Copyleft方式的但同樣是有版權(quán)保護(hù)的。它允許他人任意地散布、修改作品,但Copyleft的方式又會(huì)限制其行為和作法。開(kāi)源軟件的著作權(quán)所有人擁有除復(fù)制權(quán)、修改權(quán)等以為所有的權(quán)利。所以認(rèn)為可以對(duì)開(kāi)源代碼為所欲為的觀點(diǎn)是極具風(fēng)險(xiǎn)的。另外,開(kāi)源軟件本身也存在著著作權(quán)歸屬不明確的問(wèn)題。
2.專(zhuān)利保護(hù)問(wèn)題。是一種保護(hù)力度還要高于著作權(quán)的保護(hù)權(quán)法,專(zhuān)利權(quán)對(duì)技術(shù)有更強(qiáng)的壟斷性,它是一種絕對(duì)權(quán),同時(shí)保護(hù)專(zhuān)利過(guò)程和方法。近些年,關(guān)于利用開(kāi)源軟件涉嫌侵犯商業(yè)軟件專(zhuān)利的法律糾紛有許多。在開(kāi)發(fā)環(huán)境下應(yīng)用開(kāi)源軟件不得不考慮專(zhuān)利權(quán)方面的問(wèn)題。
3.軟件開(kāi)發(fā)許可證。許可證的定義不同是開(kāi)源軟件和商業(yè)軟件的本質(zhì)區(qū)別。在商業(yè)軟件許可證中,許可方的版權(quán)歸屬和權(quán)利義務(wù)是明確的,被許可方要支付軟件使用的許可費(fèi)用。但在開(kāi)源軟件許可證中,只是明確了被許可方是否能夠發(fā)布源代碼、對(duì)源代碼進(jìn)行修改需滿足的要求等,不涉及許可方軟件許可費(fèi)、維護(hù)支持的內(nèi)容。所以在進(jìn)行開(kāi)源代碼研發(fā)時(shí),軟件開(kāi)發(fā)許可證的有無(wú)和義務(wù)的界定也增加了軟件研發(fā)的風(fēng)險(xiǎn)。
三、敏捷開(kāi)發(fā)模式下產(chǎn)品引入開(kāi)源軟件的風(fēng)險(xiǎn)管理
風(fēng)險(xiǎn)管理的目標(biāo)不是拒絕使用開(kāi)源軟件,而是通過(guò)有效的管理手段來(lái)使引入開(kāi)源軟件后收益最大化,潛在風(fēng)險(xiǎn)最小化。
(一)敏捷開(kāi)發(fā)模式下引入開(kāi)源軟件的風(fēng)險(xiǎn)管理
敏捷開(kāi)發(fā)模式下項(xiàng)目的執(zhí)行可以適應(yīng)前段需求的變化,在項(xiàng)目管理的過(guò)程中各個(gè)子項(xiàng)目的周期可以根據(jù)需求的變化及時(shí)調(diào)整項(xiàng)目的實(shí)施,從而可減小風(fēng)險(xiǎn),在每個(gè)子周期后向客戶交付成果并可以和客戶交流從而降低風(fēng)險(xiǎn)。敏捷開(kāi)發(fā)環(huán)境下引入開(kāi)源軟件的風(fēng)險(xiǎn)管理可以從以下幾個(gè)方面入手:
1.由于敏捷開(kāi)發(fā)模式下的軟件開(kāi)發(fā)項(xiàng)目被拆分成眾多子項(xiàng)目,降低風(fēng)險(xiǎn)可以通過(guò)縮短軟件的交付時(shí)間來(lái)實(shí)現(xiàn)??梢愿鶕?jù)客戶隨時(shí)的新需求快速調(diào)整研發(fā)方向。另外要注重外部環(huán)境的變化,如市場(chǎng)創(chuàng)新技術(shù)的出現(xiàn)等,及時(shí)跟進(jìn)并作出調(diào)整,從而進(jìn)一步縮短研發(fā)周期,降低研發(fā)風(fēng)險(xiǎn)。
2.加強(qiáng)研發(fā)團(tuán)隊(duì)內(nèi)部開(kāi)發(fā)人員的專(zhuān)業(yè)培訓(xùn)和培養(yǎng),對(duì)在項(xiàng)目開(kāi)發(fā)過(guò)程中加入的新人員必須讓其快速有效地適應(yīng)工作,最好要引進(jìn)能夠解決關(guān)鍵技術(shù)的專(zhuān)業(yè)級(jí)優(yōu)秀人才,做好團(tuán)隊(duì)內(nèi)部的員工福利,防止關(guān)鍵人員的流失,聘請(qǐng)相關(guān)技術(shù)專(zhuān)家定期做專(zhuān)業(yè)培訓(xùn),已降低技術(shù)研發(fā)過(guò)程中造成的風(fēng)險(xiǎn)。
3.各個(gè)項(xiàng)目組之間和對(duì)客戶及時(shí)有效地溝通是降低風(fēng)險(xiǎn)的關(guān)鍵因素。不同于傳統(tǒng)的瀑布式開(kāi)發(fā)環(huán)境,各個(gè)子項(xiàng)目組同時(shí)負(fù)責(zé)項(xiàng)目的不同部分,工作同時(shí)開(kāi)展,項(xiàng)目之間及時(shí)有效地溝通就顯得尤為重要。通過(guò)溝通,可以有效地加強(qiáng)開(kāi)發(fā)團(tuán)隊(duì)的凝聚力、向心力。加強(qiáng)客戶、管理者和開(kāi)發(fā)者之間的溝通交流,通過(guò)網(wǎng)絡(luò)電話會(huì)議或現(xiàn)場(chǎng)辦公的形式,及時(shí)有效地傳達(dá)客戶的需求和反饋研發(fā)的進(jìn)度。
4.針對(duì)引用開(kāi)源軟件造成的外部環(huán)境風(fēng)險(xiǎn),在研發(fā)組內(nèi)部引入第三方軟件協(xié)調(diào)員機(jī)制。其主要負(fù)責(zé)第三方開(kāi)源軟件的引入、審核和對(duì)外溝通。確保在源頭上使得開(kāi)源軟件的應(yīng)用風(fēng)險(xiǎn)降到最小。加強(qiáng)內(nèi)部開(kāi)發(fā)人員開(kāi)源軟件的專(zhuān)利、著作權(quán)意識(shí),做到“有需即用,用則無(wú)險(xiǎn)”。設(shè)立開(kāi)源軟件內(nèi)部數(shù)據(jù)庫(kù),用來(lái)存儲(chǔ)當(dāng)前公司已經(jīng)獲得了許可證的第三方軟件,以便于使用和對(duì)比。同時(shí),軟件研發(fā)企業(yè)必須規(guī)范管理和開(kāi)發(fā)并建立嚴(yán)格的開(kāi)源軟件審查機(jī)制,禁止開(kāi)發(fā)人員在網(wǎng)上隨意抓取代碼。
(二)敏捷開(kāi)發(fā)模式下引入開(kāi)源軟件風(fēng)險(xiǎn)管理流程
圖1所示為敏捷開(kāi)發(fā)模式下引入開(kāi)源軟件的管理工作流程。第三方軟件協(xié)調(diào)員在整個(gè)產(chǎn)品開(kāi)發(fā)過(guò)程當(dāng)中負(fù)責(zé)保證引入第三方軟件(包括商業(yè)軟件或開(kāi)源軟件)后應(yīng)該遵循的步驟和采取的行動(dòng)。遵循的步驟和行動(dòng)需由公司內(nèi)部研發(fā)團(tuán)隊(duì)綜合具體分析得出。同時(shí)設(shè)立第三方軟件數(shù)據(jù)庫(kù),用來(lái)存儲(chǔ)當(dāng)前公司已經(jīng)獲得了許可證的第三方軟件,以便于使用和比對(duì)。
從已有的敏捷開(kāi)發(fā)模式下的第三方軟件策略開(kāi)始,根據(jù)當(dāng)前策略對(duì)產(chǎn)品開(kāi)發(fā)過(guò)程當(dāng)中各個(gè)項(xiàng)目組主動(dòng)上報(bào)或通過(guò)自動(dòng)化掃描工具發(fā)現(xiàn)的第三方軟件進(jìn)行鑒定。如果此第三方軟件是公司第三方軟件數(shù)據(jù)庫(kù)中已經(jīng)獲得安全使用權(quán)限的,則直接使用并正常進(jìn)行產(chǎn)品開(kāi)發(fā);如果此第三方軟件是公司第三方軟件數(shù)據(jù)庫(kù)中沒(méi)有的,就需要第三方軟件協(xié)調(diào)員去申請(qǐng)相應(yīng)的許可證以確保第三方軟件的正常使用,在獲得批準(zhǔn)之后再繼續(xù)正常產(chǎn)品開(kāi)發(fā);整個(gè)產(chǎn)品開(kāi)發(fā)完成之后要進(jìn)行集成和產(chǎn)品發(fā)布,最后生成最終報(bào)告。
這個(gè)流程的實(shí)施就從源頭上止住了非許可的第三方開(kāi)源軟件的流入,從而確保了研發(fā)產(chǎn)品的專(zhuān)業(yè)性和穩(wěn)定性,把外部環(huán)境風(fēng)險(xiǎn)降到最低。
四、結(jié)語(yǔ)
作為一種新興的商業(yè)軟件開(kāi)發(fā)模式,在敏捷開(kāi)發(fā)環(huán)境下引入開(kāi)源軟件正在日漸成熟,它必將會(huì)改變未來(lái)軟件產(chǎn)業(yè)的格局,有利地促進(jìn)軟件技術(shù)研發(fā)的更新?lián)Q代。在開(kāi)源軟件的法律保護(hù)還不完善的現(xiàn)狀下,引入開(kāi)源代碼開(kāi)發(fā)商業(yè)軟件確實(shí)存在一定的風(fēng)險(xiǎn),這些風(fēng)險(xiǎn)不應(yīng)被忽視,但也不應(yīng)被夸大。風(fēng)險(xiǎn)貫穿于項(xiàng)目的整個(gè)周期中,及時(shí)有效且持續(xù)的項(xiàng)目風(fēng)險(xiǎn)管理,建立優(yōu)良的風(fēng)險(xiǎn)管理機(jī)制及對(duì)應(yīng)的決策機(jī)制是當(dāng)今軟件研發(fā)項(xiàng)目成功之匙。
作者簡(jiǎn)介:
劉海榮,東南大學(xué)MBA在讀研究生,現(xiàn)供職于南京愛(ài)立信熊貓通信有限公司。