5.5 案例五:設(shè)計(jì)的質(zhì)量
閱讀以下關(guān)于信息系統(tǒng)項(xiàng)目管理過(guò)程中項(xiàng)目質(zhì)量管理方面問(wèn)題的敘述,回答問(wèn)題1至問(wèn)題3。
5.5.1案例場(chǎng)景
中培信息技術(shù)有限公司(Z公司 )曾經(jīng)為K公司開(kāi)發(fā)過(guò)一套信息系統(tǒng),該系統(tǒng)涉及了K公司的所有主要業(yè)務(wù)。該系統(tǒng)中關(guān)于組織機(jī)構(gòu)的業(yè)務(wù)規(guī)則如下:
(1)組織機(jī)構(gòu)樹(shù)通過(guò)部門編碼體現(xiàn)層級(jí)和隸屬關(guān)系。即部門0001的下屬部門包括00010001、00010002,依次類推,根據(jù)代碼中包含的層級(jí)關(guān)系確定某 個(gè)部門在組織機(jī)構(gòu)樹(shù)中的確切位置,該編碼由公司統(tǒng)一制定。
(2)任意一條業(yè)務(wù)數(shù)據(jù)隸屬于某個(gè)特定的部門。
(3)部門之間存在友好和互斥的關(guān)系。關(guān)系為友好的部門可以共享業(yè)務(wù)數(shù)據(jù),關(guān)系為互斥的部門互相不能訪問(wèn)對(duì)方的業(yè)務(wù)數(shù)據(jù)。
后來(lái),K公司需要調(diào)整部門的組織結(jié)構(gòu),因此對(duì)系統(tǒng)提出了升級(jí)的要求:
(1)系統(tǒng)中的部門編碼需要更新為最新的企業(yè)標(biāo)準(zhǔn)。
(2)組織機(jī)構(gòu)根據(jù)最新的企業(yè)標(biāo)準(zhǔn)重新生成。
(3)組織結(jié)構(gòu)調(diào)整是不能丟失業(yè)務(wù)數(shù)據(jù)。、
(4)系統(tǒng)中可以保留組織機(jī)構(gòu)調(diào)整的痕跡,業(yè)務(wù)數(shù)據(jù)可以追蹤除原屬于哪個(gè)部門,機(jī)構(gòu)調(diào)整后屬于哪個(gè)部門。
(5)部門間友好和互斥的關(guān)系可能會(huì)被重新定義。
(6)升級(jí)后的系統(tǒng)需要能夠適應(yīng)再次的組織機(jī)構(gòu)調(diào)整而不需要再次升級(jí)。
項(xiàng)目經(jīng)理老王接受了這個(gè)項(xiàng)目,經(jīng)過(guò)細(xì)致的調(diào)研和分析,發(fā)現(xiàn)原系統(tǒng)存在如下缺陷:
(1)原系統(tǒng)中將企業(yè)對(duì)部門的標(biāo)準(zhǔn)編碼設(shè)計(jì)為部門主鍵,修改起來(lái)難度很大,容易發(fā)生數(shù)據(jù)不一致的問(wèn)題。
(2)新的企業(yè)標(biāo)準(zhǔn)沒(méi)有考慮到原有企業(yè)標(biāo)準(zhǔn),同是一個(gè)部門老王在原標(biāo)準(zhǔn)中為00010001,在新標(biāo)準(zhǔn)中為00010005,部門的層次也可能發(fā)生變化。
(3)業(yè)務(wù)數(shù)據(jù)中保存了隸屬部門編碼,系統(tǒng)已經(jīng)使用近兩年,保存了大量的歷史業(yè)務(wù)數(shù)據(jù)。
(4)原系統(tǒng)在設(shè)計(jì)時(shí)將部門間的友好與互斥關(guān)系硬編碼在系統(tǒng)代碼中,且涉及面很廣,原系統(tǒng)中80%以上的程序存在這樣的硬編碼。
(5)不少業(yè)務(wù)邏輯和工作流程是根據(jù)特定的部門編碼進(jìn)行判斷的,部門編碼的變化會(huì)造成業(yè)務(wù)混亂。
(6)原系統(tǒng)在設(shè)計(jì)時(shí)沒(méi)有考慮到組織機(jī)構(gòu)調(diào)整的可能,也沒(méi)有對(duì)保留部門變革歷史的功能進(jìn)行設(shè)計(jì)。
老王認(rèn)為,需求已經(jīng)非常明確,對(duì)于這個(gè)項(xiàng)目的關(guān)鍵是設(shè)計(jì)的質(zhì)量,其中包括解決方案的設(shè)計(jì)和業(yè)務(wù)系統(tǒng)的改造兩部分。一旦設(shè)計(jì)出現(xiàn)偏差,返工的工作量會(huì)非常巨大,反之,整個(gè)項(xiàng)目還是容易控制的。但老王在如何提高設(shè)計(jì)質(zhì)量方面卻犯了愁。
【問(wèn)題1】(8分)
試以300字內(nèi)回答,老王可以采取哪些措施提高設(shè)計(jì)的質(zhì)量?
【問(wèn)題2】(9分)
試以300字內(nèi)回答,除設(shè)計(jì)外,老王還需要特別注意哪些工程活動(dòng)。
【問(wèn)題3】 (8分)
試以300字內(nèi)回答,如何提高這些工程活動(dòng)的質(zhì)量。
5.5.2案例分析
這是一個(gè)開(kāi)放式的案例分析題,案例中僅粗略地描述了項(xiàng)目背景的目標(biāo),針對(duì)如何提高項(xiàng)目質(zhì)量進(jìn)行發(fā)問(wèn),難度相對(duì)較大,需要仔細(xì)的分析。
前面一部分對(duì)項(xiàng)目背景和目標(biāo)的描述無(wú)非是為了說(shuō)明這么幾個(gè)問(wèn)題:
(1)這是一個(gè)系統(tǒng)改造的項(xiàng)目。
(2)原系統(tǒng)中存在設(shè)計(jì)缺陷,沒(méi)有考慮過(guò)組織機(jī)構(gòu)改革的可能性。
(3)需要大量更改原系統(tǒng)的程序,消除硬編碼。
(4)需要更改已有的業(yè)務(wù)數(shù)據(jù),同時(shí)增加部門變革歷史的功能。
基于這些問(wèn)題,案例的后半部分給出了老王的觀點(diǎn):設(shè)計(jì)質(zhì)量是項(xiàng)目的關(guān)鍵,需要提高設(shè)計(jì)的質(zhì)量。結(jié)合案例后的問(wèn)題,我們不難發(fā)現(xiàn),案例的前半部分是引子,后半部分才是關(guān)鍵,也是該案例的題眼:如何提高項(xiàng)目的質(zhì)量,顯然需要用項(xiàng)目質(zhì)量管理的知識(shí)作答。
質(zhì)量管理是項(xiàng)目管理中的一個(gè)知識(shí)域,但在PMBOK中并沒(méi)有給出具體的質(zhì)量管理的方法,需要結(jié)合軟件開(kāi)發(fā)和項(xiàng)目的特點(diǎn)給出特定的質(zhì)量管理策略和方法。這也正是這個(gè)案例的用意所在,考察考生在面對(duì)實(shí)際的項(xiàng)目問(wèn)題時(shí)需要采取哪些措施解決項(xiàng)目的質(zhì)量問(wèn)題。
我們首先從軟件工程的角度考慮一下軟件質(zhì)量的問(wèn)題。軟件的質(zhì)量一直是軟件界近幾十年致力解決的問(wèn)題,針對(duì)使用軟件提高軟件質(zhì)量提出了很多的方法和理論。首先是軟件工程的理論,需要使用工程活動(dòng)的方法進(jìn)行軟件開(kāi)發(fā),從系統(tǒng)定義與分析開(kāi)始,經(jīng)過(guò)設(shè)計(jì)、實(shí)現(xiàn),最終到驗(yàn)證。在軟件工程中,人們提出了多種軟件開(kāi)發(fā)模式和工程活動(dòng)方法。在開(kāi)發(fā)模式中,有瀑布模型、螺旋模型、迭代模型、噴泉模型等;在工程活動(dòng)方法中,有自頂向下、結(jié)構(gòu)化分析、面向?qū)ο蠓治觥⒓軜?gòu)風(fēng)格,等等。除此之外,還有一系列的軟件驗(yàn)證方法,如軟件復(fù)審與軟件測(cè)試。縱觀這些林林總總的模式與方法,人們無(wú)非是想解決兩個(gè)問(wèn)題:一是通過(guò)恰當(dāng)?shù)墓こ袒顒?dòng)提高工作產(chǎn)品的質(zhì)量;二是在工作產(chǎn)品完成后通過(guò)恰當(dāng)?shù)墓こ袒顒?dòng)來(lái)保證該產(chǎn)品的質(zhì)量。因?yàn)樵谲浖_(kāi)發(fā)過(guò)程中,還有一個(gè)很明顯的特點(diǎn),就是在分析、設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試這些過(guò)程中,每一步都可能引入缺陷,且難以發(fā)現(xiàn),而這些缺陷暴露得越晚,造成的后果就越嚴(yán)重,修改的代價(jià)就越高昂。開(kāi)發(fā)活動(dòng)需要盡量提前發(fā)現(xiàn)潛在的缺陷,驗(yàn)證手段必不可少。
題目中問(wèn)的是如何提高設(shè)計(jì)的質(zhì)量,設(shè)計(jì)是承接分析、指導(dǎo)開(kāi)發(fā)的一個(gè)關(guān)鍵環(huán)節(jié),在這個(gè)環(huán)節(jié)中很容易引入難以發(fā)現(xiàn)的缺陷,而這些缺陷往往又會(huì)造成嚴(yán)重的后果。因此提高設(shè)計(jì)的質(zhì)量是每個(gè)軟件項(xiàng)目都會(huì)遇到的問(wèn)題,也是每個(gè)項(xiàng)目經(jīng)理都會(huì)思考的問(wèn)題。提高設(shè)計(jì)質(zhì)量包括兩個(gè)層面的工作:在設(shè)計(jì)過(guò)程中提高設(shè)計(jì)的質(zhì)量;在設(shè)計(jì)完成后對(duì)設(shè)計(jì)結(jié)果的質(zhì)量檢查。在答題中需要分別給出相應(yīng)的策略。
設(shè)計(jì)工作在分析工作之后,因此,充分的分析是保證設(shè)計(jì)質(zhì)量的前提。對(duì)于這種改造型項(xiàng)目,原系統(tǒng)的功能、設(shè)計(jì)和實(shí)現(xiàn)的情況直接影響了設(shè)計(jì)的結(jié)果,原系統(tǒng)的情況就是要解決的問(wèn)題域,’如果對(duì)原系統(tǒng)了解不足必然導(dǎo)致設(shè)計(jì)上的偏差。因此要想提高設(shè)計(jì)的質(zhì)量,首先要充分了解原系統(tǒng)。
在設(shè)計(jì)時(shí)還應(yīng)該選擇恰當(dāng)?shù)脑O(shè)計(jì)方法,如有可能可以考慮復(fù)用已有的解決案例,如分析模式與設(shè)計(jì)模式等。不過(guò)在這方面,案例中給出的信息甚少,顯然不是答題的重點(diǎn)。
根據(jù)項(xiàng)目背景的描述,這個(gè)設(shè)計(jì)工作并不簡(jiǎn)單,需要論證的過(guò)程,設(shè)計(jì)方案的討論也是必需的。因此老王需要制定出相應(yīng)的溝通計(jì)劃,組織必要的會(huì)議進(jìn)行方案討論,若有必要還需要客戶和原系統(tǒng)的開(kāi)發(fā)者參加。
在設(shè)計(jì)完成后還需要對(duì)設(shè)計(jì)結(jié)果進(jìn)行質(zhì)量檢查,對(duì)應(yīng)這類活動(dòng),我們通常采用評(píng)審和走查的方式。評(píng)審和走查可以比測(cè)試更早地找出工作產(chǎn)品中的缺陷,用來(lái)檢查設(shè)計(jì)質(zhì)量非常合適,可以避免缺陷在系統(tǒng)測(cè)試階段才被發(fā)現(xiàn),降低修正缺陷的成本。
除了評(píng)審和走查外,對(duì)設(shè)計(jì)過(guò)程進(jìn)行迭代也可以提前暴露設(shè)計(jì)的缺陷,并將這些缺陷反饋到后續(xù)的設(shè)計(jì)過(guò)程中,從總體上減少缺陷數(shù),提高設(shè)計(jì)的質(zhì)量。例如在可以將整個(gè)項(xiàng)目根據(jù)系統(tǒng)模塊進(jìn)行劃分,首先升級(jí)一個(gè)模塊,然后把這個(gè)過(guò)程中發(fā)現(xiàn)的問(wèn)題反饋到后續(xù)的迭代過(guò)程中。
如果能夠做好上述工作,設(shè)計(jì)就不會(huì)產(chǎn)生重大的偏差,保證設(shè)計(jì)的質(zhì)量。
對(duì)于第二個(gè)問(wèn)題,除設(shè)計(jì)外,老王還需要特別注意哪些工程活動(dòng)。
在分析第一個(gè)問(wèn)題是我們已經(jīng)找到了一部分答案—分析。分析是設(shè)計(jì)活動(dòng)的基礎(chǔ),在錯(cuò)誤的分析上不可能產(chǎn)生正確的設(shè)計(jì)。因此充分、細(xì)致地分析原系統(tǒng)是保證設(shè)計(jì)質(zhì)量的前提。
除此之外,對(duì)于系統(tǒng)改造的項(xiàng)目,測(cè)試的工作顯得非常重要。同原系統(tǒng)開(kāi)發(fā)相比,系統(tǒng)改造的總工作量相對(duì)較少,但測(cè)試的工作量卻應(yīng)該超過(guò)原系統(tǒng)開(kāi)始時(shí)的測(cè)試工作量。根據(jù)案例中的描述,超過(guò)80%的程序都存在硬編碼的問(wèn)題,都需要修改。這些程序在修改后首先需要滿足同原系統(tǒng)功能一致,可以通過(guò)原系統(tǒng)測(cè)試用例的測(cè)試;其次還要保證與系統(tǒng)升級(jí)的目標(biāo)一致,能夠滿足設(shè)計(jì)的 要求,這就需要開(kāi)發(fā)新的測(cè)試用例進(jìn)行測(cè)試。因此,如何規(guī)劃、組織、展開(kāi)測(cè)試工作,也是老王需要特別注意的方面。
除了分析和測(cè)試外,其余的工程活動(dòng)也是不可或缺的,不過(guò)相比之下,分析和測(cè)試工作更具特殊性,是老王必須特別注意的。
第三個(gè)問(wèn)題與第二個(gè)問(wèn)題是關(guān)聯(lián)的。有了第二個(gè)問(wèn)題的答案,第三個(gè)問(wèn)題就比較容易了。
如何提高分析活動(dòng)的質(zhì)量呢?對(duì)于案例中的項(xiàng)目來(lái)說(shuō),系統(tǒng)要解決的是原系統(tǒng)中的缺陷,原系統(tǒng)本身就是問(wèn)題域,提高分析活動(dòng)的質(zhì)量也就是充分地分析原系統(tǒng)。對(duì)原系統(tǒng)的分析可以包括對(duì)原有業(yè)務(wù)功能、原設(shè)計(jì)方案和原程序的分析。對(duì)原系統(tǒng)中業(yè)務(wù)功能的分析需要同客戶一起進(jìn)行,通過(guò)同客戶的溝通來(lái)把握原系統(tǒng)所實(shí)現(xiàn)的業(yè)務(wù)功能。對(duì)原設(shè)計(jì)方案的分析出了參考設(shè)計(jì)文檔外,最好能夠同原系統(tǒng)的開(kāi)發(fā)者進(jìn)行溝通,這樣的溝通往往能獲取到文檔之外的寶貴信息。例如,通過(guò)設(shè)計(jì)文檔僅能了解設(shè)計(jì)的結(jié)果,但與原系統(tǒng)開(kāi)發(fā)者的溝通則可以了解到設(shè)計(jì)的思路。除了這些方法外,對(duì)分析的結(jié)果進(jìn)行評(píng)審也是保證分析質(zhì)量的一種有效的方法。
對(duì)于測(cè)試工作,上面已經(jīng)講了很多,既需要保證修改后的代碼仍然與原系統(tǒng)功能一致,又要保證同系統(tǒng)升級(jí)的目標(biāo)一致。
5.5.3參考答案
【問(wèn)題1】(8分)
老王可以采取以下措施提高設(shè)計(jì)的質(zhì)量:
(1)充分分析問(wèn)題域是保證設(shè)計(jì)質(zhì)量前提。(2分)
(2)組織必要的討論來(lái)確定概要設(shè)計(jì)的方案。(2分)
(3)采用迭代的方法驗(yàn)證設(shè)計(jì)的正確性,提高設(shè)計(jì)的質(zhì)量。(2分)
(4)對(duì)設(shè)計(jì)進(jìn)行評(píng)審或走查。(2分)
【問(wèn)題2】(9分)
除設(shè)計(jì)外,老王還需要特別注意以下工程活動(dòng):
(1)需要細(xì)致分析原有系統(tǒng)。(4分)
(2)對(duì)于這樣的改造項(xiàng)目,測(cè)試的難度和工作量很大,需要把握測(cè)試的工作。(5分)
【問(wèn)題3】(8分)
如何提高這些工程活動(dòng)的質(zhì)量:
(1)在分析方面(4分)
①同客戶充分溝通,了解原系統(tǒng)的業(yè)務(wù)需求;
②閱讀原系統(tǒng)中的文檔和程序,掌握設(shè)計(jì)和實(shí)現(xiàn)的情況;
③如果可能,與原系統(tǒng)的開(kāi)發(fā)者聯(lián)系,在原開(kāi)發(fā)者的幫助下把握原系統(tǒng);
④對(duì)分析的結(jié)果進(jìn)行評(píng)審。
(2)在測(cè)試方面(4分)
①使用原系統(tǒng)開(kāi)發(fā)過(guò)程中的測(cè)試用例進(jìn)行回歸測(cè)試;
②針對(duì)改造后的系統(tǒng)開(kāi)發(fā)新的測(cè)試用例進(jìn)行測(cè)試。