淺談軟件項(xiàng)目上的長(zhǎng)期慢性需求問(wèn)題
外刊IT評(píng)論網(wǎng) 發(fā)表于:13年01月23日 13:50 [轉(zhuǎn)載] DOIT.com.cn
在處理軟件需求時(shí),有三個(gè)問(wèn)題一直折磨著我們,并使軟件項(xiàng)目消耗無(wú)數(shù)資金。其中很大一部分都產(chǎn)生在項(xiàng)目交付并運(yùn)行后的新需求的收集工作中。
下面是在軟件需求處理中三個(gè)廣泛存在的問(wèn)題,需要我們?nèi)ふ冶犬?dāng)前普遍的常規(guī)做法更有效的解決方案:
軟件開發(fā)者道德上有義務(wù)、職業(yè)上有責(zé)任在這些問(wèn)題上提醒客戶,并盡可能的幫助他們解決這些問(wèn)題。換句話說(shuō),軟件開發(fā)者需要充當(dāng)?shù)慕巧愃朴谝粋(gè)醫(yī)生。我們有責(zé)任幫助客戶診斷目前已知的需求,并開出有效的處方。
當(dāng)然,一旦用戶需求收集完成,分析整理完成,承諾的軟件規(guī)格就應(yīng)該如實(shí)的交付給客戶。然而,為了保證軟件能安全有效的交付,危險(xiǎn)的或有毒的需求必須 被除去,多余的和不必要的需求需要讓用戶知道,潛在的能導(dǎo)致需求滋生的不清晰的地方需要被明確、量化。用戶應(yīng)該從軟件開發(fā)技術(shù)團(tuán)隊(duì)那里獲得專業(yè)的幫助,而 不應(yīng)該在需求收集和分析上被動(dòng)的扮演旁觀者角色。
不幸的是,需求上的缺陷并不能通過(guò)普通的測(cè)試來(lái)消除。如果需求上的錯(cuò)誤未能預(yù)防而出現(xiàn),或沒有能夠通過(guò)常規(guī)的檢查或其它方法消除,那么,從需求上構(gòu) 造出來(lái)的測(cè)試用例只能再次證實(shí)需求的正確,而不是發(fā)現(xiàn)其中的錯(cuò)誤。(這就是為什么多少年的軟件測(cè)試都不曾發(fā)現(xiàn)并消除”2000年”問(wèn)題)
另一類需求上的問(wèn)題,對(duì)于一些全新的創(chuàng)造性的軟件應(yīng)用,很可能最初用戶只有原創(chuàng)者,沒有第二人。參考一些成功的軟件的歷史,如APL編程語(yǔ)言,第一個(gè)電子制表軟件,早期的Web搜索引擎(之后成為谷歌)。
這些具有革命性的應(yīng)用軟件全是發(fā)明人自己用來(lái)解決他們自己的問(wèn)題的。他們并不是按照常規(guī)概念上的“用戶需求”開發(fā)出來(lái)的。除非演示程序被開發(fā)完成, 其他人基本無(wú)法認(rèn)識(shí)到這些軟件發(fā)明的價(jià)值所在。因此,“用戶需求”對(duì)于一些全新的革命性的軟件來(lái)說(shuō)不是能完全適用的,除非它們已經(jīng)公開發(fā)布。
軟件需求會(huì)不斷的發(fā)展、繁殖、變化,在其隨后的設(shè)計(jì)和編碼階段統(tǒng)計(jì)出的數(shù)據(jù),每月增加的量大概是1%到4%,基于這種現(xiàn)狀,很顯然,要想達(dá)到對(duì)需求的完全理解是十分困難的。
需求是軟件開發(fā)的重要一環(huán)節(jié),但由于摻雜著有毒的需求,缺失的需求和多余的需求,使得簡(jiǎn)單的諸如“品質(zhì)的標(biāo)準(zhǔn)就是照需求完成”這樣的定義成為了軟件工業(yè)的毒藥。
“增長(zhǎng)的需求”這個(gè)問(wèn)題經(jīng)常不受重視。一旦軟件應(yīng)用交付給客戶或用戶,需求并不是終止或不變了。對(duì)于大多數(shù)的應(yīng)用,需求的增長(zhǎng)的延續(xù)會(huì)一直伴隨著應(yīng)用的使用期間。它們?cè)鲩L(zhǎng)的速率最高能達(dá)到每年15%。
因?yàn)樾枨笤谠鲩L(zhǎng),軟件應(yīng)用的體量也會(huì)變大——不論從功能點(diǎn),邏輯代碼量或其它尺度測(cè)量。
為了說(shuō)明這種持續(xù)性增長(zhǎng),下面的表格顯示了一個(gè)我研究的大型Java應(yīng)用的變化。
測(cè)量周期 | 功能點(diǎn) | 邏輯代碼量 |
1 需求階段結(jié)束時(shí) | 10,000 | 530,000 |
2 需求補(bǔ)充 | 2,000 | 106,000 |
3 計(jì)劃交付量 | 12,000 | 636,000 |
4 延期的功能量 | - 4,800 | - 254,400 |
5 首次提交給客戶的量 | 7,200 | 381,600 |
6 一年使用后 | 12,000 | 636,000 |
7 2年使用后 | 13,000 | 689,000 |
8 3年使用后 | 14,000 | 742,000 |
9 4年使用后 (中期提升) | 17,000 | 901,000 |
10 5年使用后 | 18,000 | 954,000 |
11 6年使用后 | 19,000 | 1,007,000 |
12 7年使用后 | 20,000 | 1,060,000 |
13 8年使用后 (中期提升) | 23,000 | 1,219,000 |
14 9年使用后 | 24,000 | 1,272,000 |
15 10年使用后 | 25,000 | 1,325,000 |
這些數(shù)字在第4年和第8年有一個(gè)超出平均值的增加。對(duì)于商業(yè)軟件,為了跟最新的其它軟件競(jìng)爭(zhēng),有必要增加一些重大的新功能。這叫做“中期提升”。
正如你看到的,需求增加在軟件應(yīng)用使用期間永不會(huì)停止,除非開發(fā)者開發(fā)出相同類型的新產(chǎn)品而放棄對(duì)老產(chǎn)品的支持。當(dāng)然,一些軟件會(huì)很好的運(yùn)行10幾年。例如,美國(guó)空中交通管制系統(tǒng)已經(jīng)使用了超過(guò)30年了。
軟件需求是軟件工程技術(shù)中最薄弱的一個(gè)環(huán)節(jié)。因?yàn)樾枨罂偸遣煌陚涞,總是含有錯(cuò)誤的,這就要求軟件開發(fā)者一定要使用最先進(jìn)的軟件需求方法。用戶并沒 有培訓(xùn)過(guò)這些需求收集/分析技術(shù),在沒有經(jīng)過(guò)受訓(xùn)的需求專家的幫助下無(wú)法提供完整無(wú)誤的需求,更重要的,軟件開發(fā)者應(yīng)該理解——甚至擁抱——這樣的事實(shí): 在軟件交付運(yùn)行之后,跟用戶關(guān)于需求的對(duì)話將不會(huì)停止。
公司簡(jiǎn)介 | 媒體優(yōu)勢(shì) | 廣告服務(wù) | 客戶寄語(yǔ) | DOIT歷程 | 誠(chéng)聘英才 | 聯(lián)系我們 | 會(huì)員注冊(cè) | 訂閱中心
Copyright © 2013 DOIT Media, All rights Reserved. 北京楚科信息技術(shù)有限公司 版權(quán)所有.