探究需求管理的本質(zhì)
------什么才是需求管理 (作者:萬成編譯 2001年03月13日 10:03)
本文旨在探究需求管理的本質(zhì),需求管理所要涉及的任務(wù)在文中將適時提及,以闡釋"需求管理之需求(requirements for requirements)"的涵義。
☆概要 需求管理恰如裁縫的量體裁衣,它直接關(guān)系到最終產(chǎn)品的成型。僅從字面出發(fā),如果一個產(chǎn)品滿足了客戶需求,那它無疑就是成功的。需求管理的過程,從需求分析開始貫穿整個項目始終,力圖實現(xiàn)最終產(chǎn)品同需求性的最佳結(jié)合(參見Figure 1)。通過對需求管理在項目進程中實施的不同任務(wù)進行分析,我們可以看出需求管理所起的作用。
需求管理能夠確證:
●我們確知客戶的需求是什么(質(zhì)量);
●滿足客戶需求的最佳解決辦法(統(tǒng)一性);
著名學者Crosby對于質(zhì)量的定義是"同需求保持統(tǒng)一"。從這個意義上說,需求管理正是從質(zhì)量出發(fā)以確定需求。每個人都應(yīng)當始終明白他們所做的具體任務(wù)其意義何在。然而,在一個產(chǎn)品的生命周期里,其需求性是能動的,是處于變化之中的。
對于系統(tǒng)工程沒有嚴格統(tǒng)一的定義,因此很難找到足夠的數(shù)據(jù)以說明系統(tǒng)工程所起的作用。有些致力于研究需求分析的組織認為,一項開發(fā)計劃應(yīng)當至少將8-15%的資源投入到系統(tǒng)工程方面。如果低于這一標準,將很可能導致無法對客戶群做出準確把握。如果該項開發(fā)計劃含有許多創(chuàng)新或?qū)嶒灥某煞郑敲催@一百分比還應(yīng)當適度提高。
☆需求管理所要完成的任務(wù) 可以說需求是一種模型,是產(chǎn)品的早期雛形,通過進行需求分析,我們可以對最終產(chǎn)品做出優(yōu)化。需要始終保持注意的是,需求性是始終處于變化之中的。需求管理需要完成的任務(wù)包括:
●明確需求并達成共識;
●建立關(guān)聯(lián);
●根據(jù)不同需求設(shè)計相應(yīng)解決辦法;
●進行系統(tǒng)優(yōu)化;
●提出設(shè)計方案;
●監(jiān)控和解決可能出現(xiàn)的問題以及需要做出的改變;
●控制不同開發(fā)任務(wù)的開展;
●對最終產(chǎn)品做出評測;
●監(jiān)控可能出現(xiàn)的重復開發(fā);
●提出項目實施時間表;
●確定最終用戶界面。
有時侯我們所進行的需求分析只停留于分析本身,而沒有進一步去思索我們?yōu)槭裁匆M行需求分析。需求性是項目開發(fā)的源頭,只有進行認真的需求分析,我們才能做到對癥下藥、量體裁衣,才能才設(shè)計開發(fā)中去偽存真,不斷改進。"需求之需求"正是強調(diào)了貫穿始終的需求分析的重要。離開了能動的、變化的系統(tǒng)進程而空談需求管理,無異于紙上談兵。需求管理所產(chǎn)生的效益或許并不明顯,或許要日后才能體現(xiàn),但是無序的,沒有經(jīng)過精心策劃的需求管理是不可能產(chǎn)生效益的。
以下篇幅分別介紹需求管理在系統(tǒng)工程中的不同應(yīng)用。
需求共識: 首先,用戶需求通過非術(shù)語的形式進行表述,這種表述應(yīng)當使每一位開發(fā)者明確自己的職責所在,并且清楚知道不同開發(fā)工作之間的關(guān)聯(lián)。這里的"用戶"泛指在實際應(yīng)用環(huán)境中每一位可能使用最終產(chǎn)品的人。如果一個產(chǎn)品不能滿足客戶所需,那么設(shè)計方案再出色也無濟于事,許多方案有很高的技術(shù)設(shè)計水準卻最終不能獲得成功,其原因正在于此??梢园旬a(chǎn)品功能說得天花亂墜,但卻無法改變用戶需求決定最終產(chǎn)品基本模式的事實。
需求管理的首要任務(wù)在于使開發(fā)人員和用戶雙方對于需求都有一個明確的認識。因此用來進行需求分析的語言組織應(yīng)當使所有相關(guān)人員,包括用戶,都能夠理解,都能夠進而對整個項目有一個整體把握,并明確每一個人在項目中所起的作用。因而需求管理需要解決的第一位也是最基本的任務(wù)就是明確需求,并使所有相關(guān)人員達成共識。
根據(jù)需求設(shè)計解決辦法: 我們在進行系統(tǒng)設(shè)計時,應(yīng)當首先建立一個需求模型,但不能是為了建模而建模,需求模型實際是最終產(chǎn)品的抽象化表現(xiàn)。需求模型的建立使我們在明確需求的基礎(chǔ)上更進一步,使我們知道我們將要生產(chǎn)何種產(chǎn)品,該產(chǎn)品都具有那些功能。同時,創(chuàng)建需求模型的過程也使開發(fā)者明確自己的工作如何同整個項目有機地結(jié)合在一起。建立需求模型應(yīng)當充分研究不同類型、不同架構(gòu)建模方式的可行性,切忌主觀武斷。
系統(tǒng)優(yōu)化: 任何設(shè)計都應(yīng)以考慮用戶需求為優(yōu)先,用戶需求的滿足程度即成為衡量設(shè)計優(yōu)劣的標準。在一個項目設(shè)計周期中,開發(fā)人員經(jīng)常會面臨選擇,以提煉需求,決定開發(fā)的優(yōu)先次序,并在不同的實施方案中作出選擇。這些選擇必須考慮到收益與付出地平衡比例,這種選擇的重要性尤其在建立需求模型的后期凸現(xiàn)出來?;拘枨笤谶@時都已明確,而實施方案還未敲定,為了使用戶的基本需求得到落實,一定程度的開銷用于搭建不同構(gòu)架的需求模式是合理的。假使我們已經(jīng)有了一套翔實的需求分析,我們甚至不必將每一套方案都付諸實行,就可以成功地對系統(tǒng)設(shè)計進行優(yōu)化。 面對不同的可行性而需要作出選擇時,我們也必須參照收益與付出的比例關(guān)系。例如,在被要求提供計劃書時(Request for Proposal),我們應(yīng)當盡量做到每一份計劃書的提供都物有所值。
方案設(shè)計: 明確需求后,開發(fā)人員就可以進行方案設(shè)計。通過對用戶需求和設(shè)計方案之間所存在關(guān)聯(lián)性進行分析比較,我們就能夠?qū)υO(shè)計方案進行評估。
必要的修改: 方案的設(shè)計不可能是一成不變的,經(jīng)常會有方案設(shè)計同需求相悖的情況。如果我們無法準確把握用戶需求同方案設(shè)計之間的關(guān)系,我們就無法在需要對方案進行必要修改時正確判斷。優(yōu)秀的需求分析應(yīng)當非常精確細致地對用戶需求作出描述,同時也應(yīng)該最大程度地給予方案設(shè)計者充分發(fā)揮的余地。
任務(wù)劃分: 一個大的開發(fā)項目可能涉及20-30組不同的開發(fā)隊伍,人員包括技術(shù)工程師、軟件工程師以及具體項目主管等等,而每一個模塊都有它自己的開發(fā)工具和開發(fā)語言。 主持一個大項目的開發(fā)并不是件容易的事,總體項目主管的首要任務(wù)是對開發(fā)項目進行任務(wù)劃分,將整體開發(fā)任務(wù)細化為多個子模塊,從而使這些子模塊能夠平行開發(fā)而無需太多的干預。總體項目主管可以將細化的不同模塊的需求分析交給不同的開發(fā)隊伍,對于開發(fā)進程的監(jiān)控只需參照需求的解決情況,對于具體的開發(fā)細節(jié)則不必過問太多。
不同的開發(fā)隊伍會使用不同的開發(fā)語言和開發(fā)工具,會使用不同的符號和標記。相反,作為總體項目主管所使用的語言、符號和標記等則必須簡單易懂,以使所有的開發(fā)人員都等理解。換言之,總體項目主管應(yīng)當使用自然語言,或只涉及少量的,簡單的術(shù)語和專用詞匯。
產(chǎn)品測試: 需求的滿足情況是決定最終產(chǎn)品成敗的判定基礎(chǔ),對最終產(chǎn)品的測試評估必須以產(chǎn)品所試圖解決的需求為標準。下圖標示了不同的開發(fā)階段所對應(yīng)的測試需求。
這里有一個需求、產(chǎn)品和測試系統(tǒng)之間的關(guān)系問題,確定需要進行的測試屬于總體開發(fā)主管的工作范疇,雖然具體工作并非都要由開發(fā)主管來親自完成。
重復開發(fā): 對于總體開發(fā)主管而言,針對方案設(shè)計的修改是一項經(jīng)常性的工作(因為修改而造成的影響則應(yīng)當盡可能減?。?。在進行項目開發(fā)時,隨著開發(fā)進程的深入,各種修改的建議和問題的報告是屢見不鮮的,每解決一個問題,就是將產(chǎn)品同其需求性的結(jié)合又完善了一步。存在問題正是需求性尚未滿足的表現(xiàn)。
方案設(shè)計的完善和需求性的滿足是同步的,因此真正的用戶對于產(chǎn)品的評價和建議尤其具有重要意義。在那些一步到位的產(chǎn)品設(shè)計中,真正用戶無法左右開發(fā)進程;但在一個能夠進行重復設(shè)計、重復開發(fā)的產(chǎn)品生命期中,開發(fā)人員應(yīng)當及時搜集用戶對于產(chǎn)品的反饋信息,并將這些信息結(jié)合到下一步的開發(fā)工作中去。如下圖所示,用戶反饋同產(chǎn)品開發(fā)是統(tǒng)一的。 項目管理的輔助: 在有些地方,需求管理被作為一個技術(shù)問題來處理,需求管理所針對的對象只是產(chǎn)品,而同項目管理所涉及的問題例如進程安排或資源分配等無關(guān)。實際上,項目管理涉及三方面問題:進程安排、資源分配和質(zhì)量管理(同需求的統(tǒng)一)。
試想以下三種情況:
●一場高水準的音樂會,預算合理,演出時間卻晚了兩天。
●質(zhì)量優(yōu)良的小轎車,交貨及時,然而造價是市價的兩倍。
●一套系統(tǒng),完全滿足了用戶需求,但在開發(fā)過程中使用非法勞工。
這三種情況雖然都滿足了用戶所需,然而缺乏實際意義,因此都以失敗告終。
"我付了錢,但這不是我想要的",沒有用戶愿意這么說。要避免出現(xiàn)這種情況,在進行項目管理和財務(wù)預算時,也必須以需求管理為基礎(chǔ)。僅僅完成了一件設(shè)計并不意味著工作的結(jié)束,只有這件設(shè)計充分解決了需求,它才具有里程碑般的意義。同樣的,一件產(chǎn)品只有在測試和實際操作中完全滿足了需求,已經(jīng)完全準備好了投入到下一階段的運營,才意味著這件產(chǎn)品在本階段工作的結(jié)束。
開發(fā)進程中的每一塊里程碑都意味著需求的解決又前進了一步,這樣的每一塊里程碑也都是委托商付款的重要參照,產(chǎn)品開發(fā)的整個進程都可以通過需求管理進行監(jiān)控。
里程碑構(gòu)造機制的基本方法之一就是進程管理,一項需求的滿足就意味著一塊里程碑的確立。我們應(yīng)當對用戶需求、針對需求而進行的模塊設(shè)計以及每個子模塊的開發(fā)進程之間的關(guān)聯(lián)做到心中有數(shù)。
通過我們對需求管理實際應(yīng)用的分析,幾個關(guān)鍵因素凸現(xiàn)出來。首先,需求管理在開發(fā)周期中是自始至終存在的。注意:不要把它簡單理解為"需求周期",需求管理必須始終保持更新,它構(gòu)成了技術(shù)管理的基礎(chǔ)。
其次,需求管理同項目管理是密不可分的。如果我們把每一個需求的解決看作一個里程碑,并以此出發(fā)對整個開發(fā)進程進行監(jiān)控,我們就應(yīng)該對整體開發(fā)工作進行精密細致的劃分,從而將需求分析具體化。
☆需求管理的概念化闡釋 需求管理應(yīng)當具有以下幾個特征:能夠在開發(fā)周期的初期就建立需求模型;建模的成本很低;易于以后的具體化和優(yōu)化;本身能體現(xiàn)最終解決方案的特征。也許某些細節(jié)是抽象的,但需求管理模型本身必須是完整的。需求模型不應(yīng)當具有誘導性或傾向性,必須為開發(fā)工作留有充分發(fā)揮和優(yōu)化的空間。同時,我們能夠通過需求模型對最終產(chǎn)品作出評估。但不幸的是,這些特征本身也不是彼此完全兼容的,很難在一個簡單模型中做到面面俱到。
在開發(fā)初期針對需求而搭建產(chǎn)品模型(Early Models)是容易的,成本也不會太高,但是這樣的模型是很抽象的,絕非等同于最終產(chǎn)品。隨后的產(chǎn)品原型(Prototypes)或高級模型 (Qualification Models) 將更接近于最終產(chǎn)品,但搭建這樣的模型會要求更高的成本,同時可供修改的余地也更少。
需求管理的多種模式: 需求管理所要搭建的不同模式是由系統(tǒng)工程所采用的標準決定的。傳統(tǒng)上需求管理有兩種模式:客戶模式和系統(tǒng)需求模式。從這兩種模式出發(fā)的方案應(yīng)該分別進行設(shè)計,不幸的是我們常常將此二者混為一談。
用戶模式著重描述用戶面臨的問題或希望得到的結(jié)果。用戶模式的語言組織很象使用場景的實地描述,指明時間,側(cè)重結(jié)果。無論誰搭建用戶模式,都必須從用戶的角度出發(fā)。
系統(tǒng)需求模式實際是抽象化的解決方案。系統(tǒng)需求模式的語言組織經(jīng)常運用功能描述或使用詳解性的說明文字,事實上功能描述和使用詳解正是系統(tǒng)需求模式語言組織的典型風格。
實際上設(shè)計方案應(yīng)當是第三種模式,即具體化的解決方案。很明顯這種模式已經(jīng)非常接近于最終解決方案。很多不同的設(shè)計方案都能解決用戶需求,而在用戶需求既定的同時對設(shè)計方案作出修改也是切實可行的。在硬件系統(tǒng)設(shè)計中,最終進行規(guī)模生產(chǎn)的產(chǎn)品體現(xiàn)的往往是第四種模式。 其他設(shè)計模式: 搭建多種系統(tǒng)設(shè)計模式需要付出相當?shù)墓ぷ髁?,因為每種設(shè)計都做到條理清晰并不是件容易的事。如果設(shè)計構(gòu)架和最終方案是一致的,那么工作量可能會減少一些。有些設(shè)計方案從產(chǎn)品角度出發(fā),認為不同設(shè)計模式最好采用相同構(gòu)架。但在實際應(yīng)用當中,設(shè)計模式必須采用不同構(gòu)架,這是因為:
●有些設(shè)計中同功能無關(guān)的需求,放在其他條件下則可能引起變化;
●出于重復利用現(xiàn)存模塊的考慮;
●出于對機構(gòu)效率的考慮;
●不同設(shè)計方案涉及的步驟要求,我們并不是都要實現(xiàn);
以上每種因素都會導致設(shè)計方案同最初模式不盡相同。設(shè)計開發(fā)僅僅采用一種模式是很脆弱的。
我們必須記住,一套完整的系統(tǒng)開發(fā)要求有不同側(cè)重點的多種設(shè)計模式與之配合,例如:框架配置模式側(cè)重于大致的工作方向,而工作細化模式則標明了需要完成的各種具體工作。各種模式之間并不是孤立的,在實際需求和各種設(shè)計模式之間存在著多種關(guān)系。這些關(guān)系表現(xiàn)在:
●關(guān)聯(lián)性:不同模式下開發(fā)的產(chǎn)品應(yīng)當具有一致性(系統(tǒng)需求和用戶需求)。
●應(yīng)用性:非功能需求同功能需求之間的聯(lián)系。
●評估測試:需求管理同評測系統(tǒng)之間的聯(lián)系(以及產(chǎn)品)。
●設(shè)計開發(fā):需求管理同設(shè)計模式或產(chǎn)品之間的聯(lián)系,我們必須清楚每一部分工作同相應(yīng)需求之間的對應(yīng)關(guān)系。
何謂需求管理 以下段落將通過分析傳統(tǒng)需求管理模式的特點,看看傳統(tǒng)需求管理模式同"需求管理之需求"是如何發(fā)生關(guān)聯(lián)的。
需求管理模型的特點: 顧名思義,需求管理是完整管理模式中的一環(huán),同其他特性諸如一體性(completeness)、一致性(consistency)等不可分割,彼此相關(guān)而成一體。一套需求管理應(yīng)當是已知系統(tǒng)需求的完整體現(xiàn),每部分解決方案都是對總體需求一定比例的滿足(甚至是充分滿足),僅僅解決部分需求是沒有意義的。對關(guān)鍵需求的疏忽很可能是災(zāi)難性的,試想一架飛機的安全設(shè)計不過關(guān)將會帶來什么樣的后果。不同的需求組合起來,構(gòu)成了一套完整的需求模型。用戶需求決定了系統(tǒng)設(shè)計所要解決的問題,所要帶來的結(jié)果??梢哉f,需求管理指明了系統(tǒng)開發(fā)所要做和必須做的每一件事,指明了所有設(shè)計應(yīng)該提供的功能和必然受到的制約。
需求的特點: 需求的提出是進行切實可行的系統(tǒng)開發(fā)而存在的客觀必然。需求性的描述可以是抽象的,也可以是具體的;它針對的可以是產(chǎn)品本身,也可以是產(chǎn)品開發(fā)的方式。
需求性的提出是建立在可驗證的基礎(chǔ)上的,就是說,我們能夠根據(jù)需求而通過設(shè)定某種檢驗標準對最終產(chǎn)品進行評估,并給出或是或非的唯一回答。在測試中,我們永遠不能說產(chǎn)品完全解決了需求,只能說它更加接近于滿足需求。
存在的各種關(guān)聯(lián): 需求管理的一項重要工作就是在整個計劃不同項目之間建立聯(lián)系,這也許是在進行系統(tǒng)工程設(shè)計時自然而然得到的一種結(jié)果。如果我們對需求模式的闡釋正確,并對需求與設(shè)計的統(tǒng)一性有了確證,那么我們就有了進行成功開發(fā)的堅實基礎(chǔ)。在出色的系統(tǒng)設(shè)計中,系統(tǒng)各部分所存在的各種聯(lián)系應(yīng)當是清晰簡明的。系統(tǒng)的相關(guān)性、可追溯性保證了從不同側(cè)重點出發(fā)的系統(tǒng)設(shè)計能取得一致的結(jié)果。舉例來說:
●系統(tǒng)需求滿足于用戶需求;
●設(shè)計方案滿足于系統(tǒng)需求;
關(guān)聯(lián)性是客觀存在的,對它的描述常被用于展示:
●非功能性需求同功能性需求適用性之間的關(guān)系;
●方案設(shè)計同需求性的滿足關(guān)系;
●開發(fā)框架內(nèi)部的關(guān)系(例如目標管理、進度安排、任務(wù)細分等);
●開發(fā)過程中各類信息的存檔與交換;
●對每一需求的驗證;
●對于核心需求的合理闡釋。
需求管理的工具: 需求管理所用到的工具必須能夠處理和應(yīng)用于本文所提到的各種需求,應(yīng)當有助于我們分析需求,確定相應(yīng)開發(fā)和支持工具以處理相關(guān)信息,進而處理系統(tǒng)相應(yīng)模塊。系統(tǒng)工程師始終致力于用簡單的工具將需求形象化的展現(xiàn)出來,常用的工具比如附有標注說明的系統(tǒng)發(fā)布工具以及相關(guān)數(shù)據(jù)庫等。
需求管理涉及到一系列復雜的對象,其任務(wù)面向很廣,關(guān)系到整個設(shè)計開發(fā)的方方面面。其使用的工具應(yīng)當提供如圖列舉的一些功能:
☆總結(jié):需求管理 本文論述圍繞于需求管理工程。需求管理是開發(fā)工作有效進行的確證。很明顯需求管理是一種很高層次的系統(tǒng)行為,涉及整個開發(fā)過程和產(chǎn)品本身。
需求管理首先要針對需求做出分析,隨后應(yīng)用于產(chǎn)品并提出方案。需求分析的模型正是產(chǎn)品的原型樣本,優(yōu)秀的需求管理提高了這樣的可能性:它使最終產(chǎn)品更接近于解決需求,提高了用戶對產(chǎn)品的滿意度,從而使產(chǎn)品成為真正優(yōu)質(zhì)合格的產(chǎn)品。從這層意義上說,需求管理是產(chǎn)品質(zhì)量的基礎(chǔ)。
<全文完> |