沙漏之喻
軟件工程——其實(shí)是人們希望從工程領(lǐng)域中學(xué)習(xí)經(jīng)驗(yàn)、借鑒理論來(lái)幫助解決在復(fù)雜系統(tǒng)和軟件開發(fā)中遇到的問(wèn)題。然而,隨著軟件工程的實(shí)踐,越來(lái)越多的人認(rèn)識(shí)到軟件的生產(chǎn)和造橋鋪路等工程項(xiàng)目的最大不同就是在于開發(fā)過(guò)程中人的靈活性和創(chuàng)造性?,F(xiàn)在軟件工程的發(fā)展趨勢(shì)也重視和體現(xiàn)到這一點(diǎn),既需要包含和鼓勵(lì)個(gè)體的靈活和創(chuàng)造,但同時(shí)也希望從工程的角度對(duì)活動(dòng)進(jìn)行規(guī)范,對(duì)創(chuàng)造的過(guò)程和結(jié)果進(jìn)行很好的保存和展現(xiàn)。產(chǎn)品/ 項(xiàng)目研發(fā)中的需求活動(dòng)貫穿整個(gè)生命周期,前期的市場(chǎng)部門的靈活溝通,廣泛收集的活動(dòng)到后期研發(fā)團(tuán)隊(duì)緊扣需求、巧妙分析、嚴(yán)格設(shè)計(jì)的過(guò)程不僅反映了工程的力量,也體現(xiàn)了“藝術(shù)”的技巧。但如何將客戶的凌亂的需求和最后的嚴(yán)謹(jǐn)?shù)慕鉀Q方案聯(lián)系起來(lái),如何將人的活動(dòng)和工程的工作平衡起來(lái), 如何在更高的層次分析和分配需求都是系統(tǒng)工程的重點(diǎn),也是實(shí)際工作的難點(diǎn)。
上大學(xué)時(shí)非常喜歡哲學(xué)課,它能一個(gè)簡(jiǎn)單的問(wèn)題通過(guò)辯證復(fù)雜化,可把一個(gè)復(fù)雜的問(wèn)題通過(guò)統(tǒng)一簡(jiǎn)單化。這篇文章無(wú)意嘩眾取寵地追求哲學(xué)上的高度, 只是想通過(guò)以沙漏為模型,以需求為主線,除去細(xì)枝末節(jié),更深刻地來(lái)認(rèn)識(shí)此間的概念和問(wèn)題。隨著討論的展開,我們可以看到需求活動(dòng)的沙漏之喻是如何幫助解答實(shí)際工作中的困惑和問(wèn)題。
從“問(wèn)題”到“答案”
沙漏是一種古代的計(jì)時(shí)工具,以它的式樣來(lái)刻畫需求的過(guò)程顯得非常恰當(dāng)。圖1中沙漏的上端對(duì)應(yīng)需求捕獲的過(guò)程,沙漏的下面是需求開發(fā)找到答案的過(guò)程。在需求捕獲的過(guò)程中,我們需要盡可能的擴(kuò)展我們的思路,爭(zhēng)取能收集所有可能對(duì)最后系統(tǒng)或產(chǎn)品產(chǎn)生影響的信息。然而,當(dāng)沙漏的口開得很大的時(shí)候,收集的信息是高度分散的、凌亂的和非結(jié)構(gòu)化的,有些需要還可能是互相矛盾和沖突的。因此,我們需要沙漏的篩選:對(duì)要求解決的問(wèn)題進(jìn)行梳理,對(duì)系統(tǒng)的范圍做出決定,選擇那些合適的,現(xiàn)實(shí)的需求,需求就得到了精煉。這時(shí)候問(wèn)題陳述就是對(duì)系統(tǒng)要解決問(wèn)題的陳述,而不是所有問(wèn)題的陳述。通過(guò)這樣一個(gè)漏斗的過(guò)程,漏下來(lái)的需求就是我們系統(tǒng)要滿足的需求,這個(gè)時(shí)候的需求是一個(gè)正式的結(jié)構(gòu)化的信息以交付給開發(fā)團(tuán)隊(duì)。在這個(gè)基礎(chǔ)上,就可以設(shè)計(jì)解決方案。
怎么來(lái)做需求精煉和篩選,下文會(huì)有更詳細(xì)地討論。在這里,我想要談的是區(qū)分問(wèn)題領(lǐng)域和解決方案領(lǐng)域,這也是Jeremy Dick 給我們的忠告之一。經(jīng)常遇到這樣的情形,客戶抱怨花了錢沒(méi)有得到有用的產(chǎn)品,而開發(fā)團(tuán)隊(duì)也會(huì)覺(jué)得很郁悶因?yàn)閾碛羞@么多而好的功能的系統(tǒng)客戶卻不懂得“欣賞”,不愿接受。有用和既多且好的功能,這看似統(tǒng)一的表述在這里卻成了矛盾。什么對(duì)客戶來(lái)說(shuō)是有用的?其實(shí)很簡(jiǎn)單,能幫助他解決問(wèn)題是有用的。而那些擁有很多強(qiáng)大功能的系統(tǒng)和產(chǎn)品如果做不到這一點(diǎn),矛盾就不可避免。很多團(tuán)隊(duì)負(fù)責(zé)需求收集的人員有著很強(qiáng)的技術(shù)背景,習(xí)慣將思考的出發(fā)點(diǎn)放在系統(tǒng)應(yīng)該有什么樣的功能, 怎么實(shí)現(xiàn)這些功能。也就是說(shuō),他們往往在沒(méi)有深入理解客戶問(wèn)題的情況下直接進(jìn)入解決方案,而不是首先定義獨(dú)立于解決方案的全面而真實(shí)需求集合。
那么,如何有效地區(qū)分問(wèn)題領(lǐng)域和解決方案領(lǐng)域呢?其實(shí),從需求的原始陳述開始,到最后的系統(tǒng)實(shí)現(xiàn),整個(gè)過(guò)程是連續(xù)的:體現(xiàn)了從問(wèn)題到解決方案的持續(xù)演化;同時(shí)也是離散的,各個(gè)階段的需求信息之間應(yīng)有明顯的差異。最關(guān)鍵的區(qū)分在涉眾需求和系統(tǒng)需求之間。涉眾需求描述相關(guān)涉眾、用戶的想要解決的問(wèn)題,期望達(dá)到的效果;而系統(tǒng)功能需求則是刻畫為了要解決提出的問(wèn)題,相關(guān)的產(chǎn)品和系統(tǒng)應(yīng)該具有怎樣的功能。通過(guò)下表的對(duì)比,我們可以清楚地看到兩者之間的差別,特別是在最后一項(xiàng),兩者在文字描述的差異上更顯示出立足點(diǎn)的不同。
由此可知,我們只有在充分理解用戶想解決的問(wèn)題的基礎(chǔ)上,
項(xiàng)目經(jīng)理勝任力免費(fèi)測(cè)評(píng)PMQ上線啦!快來(lái)測(cè)測(cè)你排多少名吧~
http://m.opto-elec.com.cn/pmqhd/index.html