淺談物聯(lián)網(wǎng)項目中的需求開發(fā)與管理
引 言
物聯(lián)網(wǎng)用途廣泛,遍及智能交通、環(huán)境保護(hù)、政府工作、公共安全、平安家居、智能消防、工業(yè)監(jiān)測、環(huán)境監(jiān)測、路燈照明管控、景觀照明管控、樓宇照明管控、廣場照明管控、老人護(hù)理、個人健康、花卉栽培、水系監(jiān)測、食品溯源、敵情偵查和情報搜集等多個領(lǐng)域。繼計算機(jī)、互聯(lián)網(wǎng)之后,被稱為世界信息產(chǎn)業(yè)發(fā)展第三次浪潮的物聯(lián)網(wǎng),是互聯(lián)網(wǎng)的應(yīng)用拓展。與傳統(tǒng)網(wǎng)絡(luò)相比,物聯(lián)網(wǎng)更側(cè)重于業(yè)務(wù)和應(yīng)用。可以說, 用戶體驗是物聯(lián)網(wǎng)發(fā)展的靈魂。
因為用戶種類繁多,應(yīng)用場景多樣,對用戶體驗的要求較高,在物聯(lián)網(wǎng)項目的實現(xiàn)過程中, 需求 顯得尤為重要。為了能夠?qū)⒂脩粼趯嶋H應(yīng)用場景下的多樣化需求,完整準(zhǔn)確地傳遞給研發(fā)人員,需要通過專業(yè)的需求開發(fā)工作對項目范圍進(jìn)行定義和描述。
1 需求開發(fā)流程
需求,是指用戶為解決某一問題或達(dá)到某個目標(biāo)所需要的條件或能力。未經(jīng)分析或規(guī)格化的來自用戶或者外部環(huán)境等的需求稱之為原始需求。由原始需求經(jīng)過需求篩選、規(guī)劃來確定,作為項目范圍定義的需求,即為用戶需求,一般以《用戶需求說明書》文檔的形式,用格式化的描述來體現(xiàn)。
在用戶需求的基礎(chǔ)上,還會進(jìn)一步開發(fā)產(chǎn)品需求。產(chǎn)品需求是對產(chǎn)品應(yīng)具有的形狀、功能、性能以及其他需求的詳細(xì)說明,一般的產(chǎn)品需求由軟件需求、硬件需求、結(jié)構(gòu)需求等各個專業(yè)領(lǐng)域劃分組成,按照格式化描述要求形成產(chǎn)品需求文檔,作為后續(xù)設(shè)計實現(xiàn)及測試依據(jù)。
從原始需求到用戶需求,再到產(chǎn)品需求,它們之間的關(guān)系以及項目需求開發(fā)和管理的全流程如圖 1 所示。
以短信喚醒需求為例,介紹需求的整個開發(fā)過程。
在工業(yè)監(jiān)測、環(huán)境監(jiān)測等諸多領(lǐng)域,有許多用戶都提出短信喚醒這一原始需求。用戶希望能夠在智能電表系統(tǒng)中,智能電表在待機(jī)休眠的狀態(tài)下,可以通過短信被喚醒。我們決定在項目中將這一需求實現(xiàn)。首先,將原始需求轉(zhuǎn)化為用戶需求。短信喚醒,即被納入項目的用戶需求,并被明確寫在該項目的《用戶需求說明書》中。之后在產(chǎn)品需求開發(fā)階段,需求工程師需要經(jīng)過需求分析,形成如下產(chǎn)品需求描述 :
(1) 任意 MT短信喚醒 :模塊處于待機(jī)狀態(tài)時,當(dāng)收到任意 MT短信,模塊自主喚醒,并通過WAKUP_OUT腳將喚醒信號發(fā)送到HOST設(shè)備。
(2) 特定MT短信喚醒 :模塊處于待機(jī)狀態(tài)時,當(dāng)收到MT短信,匹配 MT短信發(fā)送者號碼,當(dāng)發(fā)送者號碼和預(yù)設(shè)號碼一致時,模塊自主喚醒,并通過 WAKUP_OUT腳將喚醒信號發(fā)送到HOST 設(shè)備;發(fā)送者號碼和預(yù)設(shè)號碼不一致,則不觸發(fā)喚醒信號。
(3) 特定MT短信內(nèi)容喚醒 :模塊處于待機(jī)狀態(tài)時,當(dāng)收到MT 短信,解析短信內(nèi)容,匹配 MT短信發(fā)送者號碼和短信內(nèi)容,當(dāng)發(fā)送者號碼和預(yù)設(shè)號碼一致,并且短信內(nèi)容包含預(yù)設(shè)內(nèi)容時,模塊自主喚醒,并通過 WAKUP_OUT腳將喚醒信號發(fā)送到HOST 設(shè)備;對于不符合上述判據(jù)的情況,不觸發(fā)喚醒信號。
(4) 支持預(yù)設(shè) 5 個電話號碼和短信內(nèi)容關(guān)鍵字,關(guān)鍵字為英文、數(shù)字字符;長度小于 70 B ;可清除預(yù)設(shè)號碼。
(5) 當(dāng)預(yù)設(shè)號碼及短信內(nèi)容關(guān)鍵字都為空時,任意 MT 短信都能觸發(fā)喚醒信號;當(dāng)預(yù)設(shè)號碼非空,短信內(nèi)容關(guān)鍵字為空時,預(yù)設(shè)號碼發(fā)來的任意短信都能夠觸發(fā)喚醒信號;當(dāng)預(yù)設(shè)號碼非空,且短信內(nèi)容關(guān)鍵字非空時,預(yù)設(shè)號碼發(fā)來的包含內(nèi)容關(guān)鍵字的短信能夠觸發(fā)喚醒信號;當(dāng)預(yù)設(shè)號碼設(shè)定后, 僅對是否觸發(fā)喚醒信號起作用,不能影響或攔截正常短信業(yè)務(wù), 應(yīng)區(qū)別于短信防火墻的功能。
上述需求描述已完整、詳細(xì)的定義了 短信喚醒 這一需求。當(dāng)研發(fā)人員收到該需求時,便可啟動研發(fā)實現(xiàn)工作;待研發(fā)實現(xiàn)后,測試人員會按此需求測試,以確保產(chǎn)品已完全按照需求實現(xiàn)。
在一個項目當(dāng)中,每一項需求都需要完成上述開發(fā)動作。一個項目可能會有上百需求,但最終都要以產(chǎn)品需求文檔的形式進(jìn)行詳細(xì)的輸出,才能完成對一個物聯(lián)網(wǎng)項目的完整需求定義。
2 需求管理流程
除了需求開發(fā)活動外,還有一系列需求管理活動。包括制定需求管理計劃、建立用戶需求基線、建立產(chǎn)品需求與用戶需求追蹤關(guān)系,建立系統(tǒng)測試用例與產(chǎn)品需求的追蹤關(guān)系, 需求變更管理,需求狀態(tài)管理。
在項目初期,需要制定需求管理計劃,即識別產(chǎn)品需求開發(fā)團(tuán)隊成員,確定需求管理的責(zé)任人,以及需求追蹤的粒度要求,需求狀態(tài)躍遷定義等模板要求內(nèi)容。
當(dāng)完成用戶需求的開發(fā)和評審后,需要將《用戶需求說明書》歸檔,這一動作被稱為 建立用戶需求基線 。需求基線化是需求管理中的重要活動。需求基線化后,意味著在項目某一階段,相關(guān)人員已經(jīng)對特定版本的需求達(dá)成一致的理解和確認(rèn)。需求基線化后,對需求的變更需要經(jīng)過正式的變更流程來處理。
輸出產(chǎn)品需求的同時,還要建立產(chǎn)品需求與用戶需求追蹤關(guān)系,即將產(chǎn)品需求文檔中的需求項與用戶需求說明書中的需求項建立追蹤關(guān)系,并判斷用戶需求項在產(chǎn)品需求中是否有鍍金、錯誤、遺漏等現(xiàn)象。
此外,還要建立系統(tǒng)測試用例與產(chǎn)品需求的追蹤關(guān)系, 即將系統(tǒng)測試用例項與產(chǎn)品需求文檔中的需求項建立追蹤關(guān)系,并判斷系統(tǒng)測試用例是否 100% 覆蓋了產(chǎn)品需求項。
雖然測試活動不屬于需求管理的范疇,但從需求測試閉環(huán)的角度出發(fā),測試作為需求驗證的活動,與需求之間存在上下游的關(guān)系。測試人員會依據(jù)系統(tǒng)測試用例執(zhí)行測試,并提交測試結(jié)果,發(fā)現(xiàn)故障,提出故障,驗證故障處理結(jié)果。
在項目的實現(xiàn)過程中,有可能會出現(xiàn)需求變更,比如客戶臨時提出增加某些需求或去掉某些需求,抑或?qū)δ承┬枨筮M(jìn)行修改。因此這時就需要進(jìn)行需求變更管理。需求變更處理流程的關(guān)鍵是影響波及分析和應(yīng)對方案制定,決策和受影響的人員,跟蹤處理結(jié)果直到驗證關(guān)閉。
一條需求從被提出到被驗證(也可能中途被拒絕),每一種有可能出現(xiàn)的狀態(tài)都需要被定義出來,以方便需求追蹤和管理。需求的各個狀態(tài)及定義見表 1 所列。
3 結(jié) 語
作為一家研發(fā)及生產(chǎn)物聯(lián)網(wǎng)產(chǎn)品的公司,中興物聯(lián)始終堅持采用科學(xué)的需求管理方法,將用戶繁復(fù)多樣的需求完整準(zhǔn)確地轉(zhuǎn)化為研發(fā)語言,進(jìn)而通過各種物聯(lián)網(wǎng)技術(shù)成功對接客戶的各種需求。身處物聯(lián)網(wǎng)這一新興領(lǐng)域,我們也在不斷創(chuàng)新, 以提高需求的轉(zhuǎn)化效率和精準(zhǔn)性,讓需求管理可以更好的為項目服務(wù),從而更加快速有效的推出高質(zhì)量高性能的產(chǎn)品,讓用戶滿意。而這也是我們做為一家物聯(lián)網(wǎng)企業(yè)的使命。