某信息系統(tǒng)開發(fā)公司承擔了某企業(yè)的ERP系統(tǒng)開發(fā)項目,由項目經(jīng)理老楊帶領(lǐng)著一支6人的技術(shù)團隊負責(zé)開發(fā)。由于工期短、任務(wù)重,老楊向公司申請增加人員,公司招聘了2名應(yīng)屆大學(xué)畢業(yè)生小陳和小王補充到該團隊中。老楊安排編程能力強的小陳與技術(shù)骨干老張共同開發(fā)某些程序模塊,而安排編程技術(shù)弱的小王負責(zé)版本控制工作。在項目開發(fā)初期,小陳由于不熟悉企業(yè)的業(yè)務(wù)需求,需要經(jīng)常更改他和老張共同編寫的源代碼文件,但是他不知道哪個是最新版本,也不知道老張最近改動了哪些地方。一次由于小王的計算機中了病毒,造成部分程序和文檔丟失,項目組不得不連續(xù)一周加班進行重新返工。此后,老楊吸取教訓(xùn),要求小王每天下班前把所有最新版本程序和文檔備份到2臺不同的服務(wù)器上。一段時間后,項目組在模塊聯(lián)調(diào)時發(fā)現(xiàn)一個基礎(chǔ)功能模塊存在重大BUG,需要調(diào)取之前的備份進行重新開發(fā)??墒切⊥醢l(fā)現(xiàn),這樣一來,這個備份版本之后的所有備份版本要么失去意義,要么就必須全部進行相應(yīng)的修改。項目工期過半,團隊中的小李突然離職,老楊在他走后發(fā)現(xiàn)找不到小李所負責(zé)模塊的最新版本源代碼了,只好安排其他人員對該模塊進行重新開發(fā)。
整個項目在經(jīng)歷了重重困難,進度延誤了2個月后終于勉強上線試運行。可是很快用戶就反應(yīng)系統(tǒng)無法正常工作。老楊帶領(lǐng)所有團隊成員在現(xiàn)場花費了1天時間終于找出問題所在,原來是2臺備份服務(wù)器上的版本號出現(xiàn)混亂,將測試版本中的程序打包到了發(fā)布版中。
【問題一】(5分)
在(1)~(5)中填寫恰當內(nèi)容(從候選答案中選擇一個正確選項,將該選項編號填入答題紙對應(yīng)欄內(nèi))。
為了控制變更,軟件配置管理中引入了__(1)__這一概念。根據(jù)這個定義,在軟件的開發(fā)流程中把所有需加以控制的配置項分為兩類,其中,__(2)__配置項包括項目的各類計劃和報告等。配置項應(yīng)該按照一定的目錄結(jié)構(gòu)保存到__(3)__中。所有配置項的操作權(quán)限由__(4)__進行嚴格管理,其中__(5)__配置項向軟件開發(fā)人員開放讀取的權(quán)限。
(1)~(5)供選擇的答案:
A.版本 B.基線 C.配置項
D.非基線 E.受控庫 F.靜態(tài)庫
G.配置庫 H.CMO I.PM J.CCB
【問題二】(4分)
結(jié)合案例,請分析為什么要進行配置項的版本控制?
【問題三】(5分)
簡述配置項的版本控制流程。
【問題四】(8分)
針對該項目在配置管理方面存在的問題,結(jié)合你的項目管理經(jīng)驗,為老楊提出一些改進措施。
從本案例提出的四個問題,我們很容易判斷出:該案例分析主要考查的是項目的配置管理?!鞍咐枋黾皢栴}”中畫“”的文字是該項目已經(jīng)出現(xiàn)的問題:即進度延誤了2個月、用戶反應(yīng)系統(tǒng)無法正常工作、將測試版本中的程序打包到了發(fā)布版中。根據(jù)這些問題和“案例描述及問題”中畫“”的文字并結(jié)合我們的項目管理經(jīng)驗,我們可以推斷出:選用了沒有配置管理經(jīng)驗的大學(xué)畢業(yè)生小王擔任配置管理員(這點從“公司招聘了2名應(yīng)屆大學(xué)畢業(yè)生小陳和小王補充到該團隊中。老楊安排編程能力強的小陳與技術(shù)骨干老張共同開發(fā)某些程序模塊,而安排編程技術(shù)弱的小王負責(zé)版本控制工作”可以推導(dǎo)出);大學(xué)畢業(yè)生小陳不懂業(yè)務(wù)且缺乏必要的培訓(xùn)(這點從“小陳由于不熟悉企業(yè)的業(yè)務(wù)需求,需要經(jīng)常更改他和老張共同編寫的源代碼文件”可以推導(dǎo)出);項目缺乏必要的配置管理工具(這點從“他不知道哪個是最新版本,也不知道老張最近改動了哪些地方”可以推導(dǎo)出);配置項的存儲和管理不到位導(dǎo)致重要版本丟失(這點從“一次由于小王的計算機中了病毒,造成部分程序和文檔丟失,項目組不得不連續(xù)一周加班進行重新返工”和“團隊中的小李突然離職,老楊在他走后發(fā)現(xiàn)找不到小李所負責(zé)模塊的最新版本源代碼”可以推導(dǎo)出);沒有做配置管理規(guī)劃,缺少完整的配置管理方案;沒有配置管理委員會(這兩點從“老楊吸取教訓(xùn),要求小王每天下班前把所有最新版本程序和文檔備份到2臺不同的服務(wù)器上”和“團隊中的小李突然離職,老楊在他走后發(fā)現(xiàn)找不到小李所負責(zé)模塊的最新版本源代碼”可以推導(dǎo)出);缺少配置管理及變更管理流程;沒有統(tǒng)一的版本管理機制,各版本不可追溯(這兩點從“項目組在模塊聯(lián)調(diào)時發(fā)現(xiàn)一個基礎(chǔ)功能模塊存在重大BUG,需要調(diào)取之前的備份進行重新開發(fā)??墒切⊥醢l(fā)現(xiàn),這樣一來,這個備份版本之后的所有備份版本要么失去意義,要么就必須全部進行相應(yīng)的修改”可以推導(dǎo)出;員工管理不到位、工作移交沒做好(這點從“團隊中的小李突然離職,老楊在他走后發(fā)現(xiàn)找不到小李所負責(zé)模塊的最新版本源代碼”可以推導(dǎo)出);沒有建立配置基線,版本管理混亂(這點從“2臺備份服務(wù)器上的版本號出現(xiàn)混亂,將測試版本中的程序打包到了發(fā)布版中”可以推導(dǎo)出)等是導(dǎo)致項目出現(xiàn)“進度延誤了2個月、用戶反應(yīng)系統(tǒng)無法正常工作、將測試版本中的程序打包到了發(fā)布版中”這些問題的主要原因,針對這些原因的解決方案就是【問題四】的答案。本案例【問題一】和【問題三】屬于純理論性質(zhì)的問題,與本案例關(guān)系不大。上面發(fā)現(xiàn)的配置管理方面存在的問題,換一種說法,就是【問題二】的答案。(案例難度:★★★★)
一、答題思路解析
根據(jù)“答題思路總解析”的闡述,我們知道,該問題屬于純理論性質(zhì)的問題,讀者如果熟悉《教程》第407頁至410頁中描述的相關(guān)內(nèi)容,該問題就比較容易回答。(問題難度:★★★)
二、參考答案
為了控制變更,軟件配置管理中引入了 B.基線這一概念。根據(jù)這個定義,在軟件的開發(fā)流程中把所有需加以控制的配置項分為兩類,其中,D.非基線配置項包括項目的各類計劃和報告等。配置項應(yīng)該按照一定的目錄結(jié)構(gòu)保存到G.配置庫中。所有配置項的操作權(quán)限由H.CMO進行嚴格管理,其中 B.基線配置項向軟件開發(fā)人員開放讀取的權(quán)限。
一、答題思路解析
根據(jù)“答題思路總解析”中的闡述,該項目由于沒有做好版本管理與控制,而出現(xiàn)了如下問題:(1)不能清楚地辨識文件的版本情況,不利于協(xié)同工作(這點從“他不知道哪個是最新版本,也不知道老張最近改動了哪些地方”可以推導(dǎo)出);(2)重要版本丟失,造成不必要的返工(這點從“一次由于小王的計算機中了病毒,造成部分程序和文檔丟失,項目組不得不連續(xù)一周加班進行重新返工”和“團隊中的小李突然離職,老楊在他走后發(fā)現(xiàn)找不到小李所負責(zé)模塊的最新版本源代碼”可以推導(dǎo)出);(3)各版本不可追溯,不利于變更管理(這點從“項目組在模塊聯(lián)調(diào)時發(fā)現(xiàn)一個基礎(chǔ)功能模塊存在重大BUG,需要調(diào)取之前的備份進行重新開發(fā)??墒切⊥醢l(fā)現(xiàn),這樣一來,這個備份版本之后的所有備份版本要么失去意義,要么就必須全部進行相應(yīng)的修改”可以推導(dǎo)出;(4)取錯版本(這點從“2臺備份服務(wù)器上的版本號出現(xiàn)混亂,將測試版本中的程序打包到了發(fā)布版中”可以推導(dǎo)出)。如果版本管理和控制搞好了,上面的四個問題就不會出現(xiàn)了,這就是為什么要進行配置項的版本控制的原因。因此,把上面分析出來的四個問題換一種表達方式,就是本問題的答案。(問題難度:★★★★)
二、參考答案
要進行配置項的版本控制的理由:
(1)版本控制有利于清晰地記錄和保存配置項的所有版本,避免發(fā)生版本混淆或丟失,從而避免無謂的返工;
(2)版本控制有利于開發(fā)工作的協(xié)同,案例中由于沒有做好版本控制導(dǎo)致了小陳和老張之間協(xié)作上的困難;
(3)版本控制有利于歷史版本的追溯,能夠快速準確地查找到配置項的任何歷史版本;
(4)版本控制使配置項處于受控狀態(tài),能更好地進行配置項的變更管理;
(5)版本控制有利于在版本出現(xiàn)沖突的情況下進行有效的辨析,從而避免取錯版本。
一、答題思路解析
根據(jù)“答題思路總解析”的闡述,我們知道,該問題屬于純理論性質(zhì)的問題,讀者如果比較熟悉《教程》第414頁“圖15-2配置項狀態(tài)變化”,這個問題就比較容易回答。根據(jù)“配置項狀態(tài)變化圖”,我們可以理出配置項的版本控制流程:(1)根據(jù)項目計劃創(chuàng)建配置項;(2)修改和完善處于“草稿”狀態(tài)的配置項;(3)提交并通過評審和審批;(4)配置管理員按配置管理計劃對配置項建立版本號或基線并正式發(fā)布;(5)若需要變更配置項,則配置管理員按規(guī)則從受控庫中取出該配置項,處于“修改”狀態(tài)的配置項經(jīng)過修改并通過評審和審批后,配置管理員按配置管理計劃對配置項建立新的版本號或基線并再次正式發(fā)布。(問題難度:★★★★)
二、參考答案
配置項版本控制流程:
(1)根據(jù)項目計劃創(chuàng)建配置項;
(2)修改和完善處于“草稿”狀態(tài)的配置項;
(3)提交并通過評審和審批;
(4)配置管理員按配置管理計劃對配置項建立版本號或基線并正式發(fā)布;
(5)若需要變更配置項,則配置管理員按配置項變更管理流程從受控庫中取出該配置項,處于“修改”狀態(tài)的配置項經(jīng)過修改并通過評審和審批后,配置管理員按配置管理計劃對配置項建立新的版本號或基線并再次正式發(fā)布。
一、答題思路解析
根據(jù)“答題思路總解析”中的闡述,我們知道,該項目出現(xiàn)的主要問題有:(1)選用了沒有配置管理經(jīng)驗的大學(xué)畢業(yè)生小王擔任配置管理員;(2)大學(xué)畢業(yè)生小陳不懂業(yè)務(wù)且缺乏必要的培訓(xùn);(3)項目缺乏必要的配置管理工具;(4)配置項的存儲和管理不到位導(dǎo)致重要版本丟失;(5)沒有做配置管理規(guī)劃,缺少完整的配置管理方案;(6)沒有配置管理委員會;(7)缺少配置管理及變更管理流程;沒有統(tǒng)一的版本管理機制,各版本不可追溯;(8)員工管理不到位、工作移交沒做好;(8)沒有建立配置基線,版本管理混亂。把這八個方面的的問題解決了,就是老楊應(yīng)該采取的改進措施。(問題難度:★★★★)
二、參考答案
老楊可以在如下方面進行改進:
(1)選用有經(jīng)驗的人員擔任配置管理員;
(2)從項目整體出發(fā),做好配置管理規(guī)劃;
(3)建立配置管理委員會;
(4)使用合適的配置管理工具;
(5)建立配置管理及變更管理流程,建立統(tǒng)一的版本管理機制;
(6)識別配置項、為配置項建立唯一標識,建立配置基線,使配置項處于受控狀態(tài);
(7)對新員工進行必要的培訓(xùn);
(8)做好員工離職時的移交工作;
(9)嚴格按配置管理計劃實施配置管理和變更管理,定期提交配置狀態(tài)報告、改進配置管理方法。