NFR非功能性需求為什麼很重要? - modernanalyst
在將近一年的延遲之後,A市啟動了其第一個地鐵系統。經過城市和承包商的12天密集測試後,城市宣佈地鐵系統已準備就緒。
但是,從啟動新地鐵系統的第一天起,問題就陸續出現。通勤的延遲每天都在發生,而客戶的抱怨正氾濫在社交媒體上。
除了地鐵系統沒有按照預期的方式移動之外,找到最多的投訴還與以下方面非常有趣:
- 缺乏洗手間
- 安全問題
- 缺乏溝通
- 溼滑的地板
- 擁擠的平臺
- 缺乏連線巴士
所有這些投訴都與地鐵本身沒有直接關係。它們是“ 非功能性需求 ”(NFR)
NFR的定義
根據IIBA BABOK V3的定義,非功能性要求:一種要求,描述瞭解決方案必須滿足的效能或質量屬性。非功能性需求通常是可測量的,並且會成為整個解決方案設計的約束。
此定義中的關鍵字為:
- 必須見
- 約束條件
從我們地鐵站的故事來看,地鐵解決方案的效能和質量屬性似乎未達到客戶期望,它們已成為系統正常執行的主要限制因素,導致糟糕的客戶體驗。
為什麼NFR很重要
首先,任何作業系統或解決方案都包含兩種型別的需求:功能需求和非功能需求。該解決方案用作時鐘,要求解決方案中的每個齒輪正常工作。根據約束理論,只有解決了約束或瓶頸後,才能提高任何過程的吞吐量。
因此,無論火車可以執行多快,一次旅行可載多少乘客(功能要求),只要不滿足NFR,解決方案(地鐵系統)的效能就只能達到所述非功能性要求。
其次,如果在業務分析過程中未考慮NFR,則很有可能它們不是解決方案評估標準的一部分。如果不考慮NFR,建議的解決方案可能無法準確評估。被認為是最好的解決方案可能根本不是一個合適的解決方案。
第三,不考慮NFR會增加解決方案失敗的風險和對組織的責任。例如,一塊光滑的地板導致騎手從平臺上掉下,可能導致對城市的訴訟。
最後但並非最不重要的一點是,修復現有解決方案(執行中的地鐵系統)的成本將比在設計階段修復問題的成本更高。例如,購買更多的公共汽車並僱用更多的公共汽車司機會損害城市的預算。
什麼是NFR
NFR的以下示例是地鐵示例。
相依性:車手需要停車位,連線公交車 可用性:營業時間和頻率,車站附近的停車位,連通巴士的可用性 容錯能力:持有門的客戶能否導致系統關閉? 互操作/整合:公交車如何配合火車時刻表?客戶會在火車到達後的x分鐘內趕上接駁巴士嗎?還是總會錯過火車? 可操作性:使用者可以在任何天氣條件下安全地進出站而不會滑落嗎? 可擴充套件性:火車站和車站可以應對高峰時間或延遲情況嗎? 可靠性:服務的可靠性如何? 彈性:系統能多快響應並從中斷中恢復? 安全保障:該系統如何保護地鐵系統中的利益相關者? |
在業務分析過程中何時考慮對NFR採取行動
NFR的大部分工作都發生在需求分析和設計定義階段。但是,任何業務分析師都應在業務分析過程的其他階段牢記NFR。
在計劃和監視階段,業務分析師需要清楚地識別所有利益相關者,以確保他們的NFR將在後續階段得到捕獲和考慮。所汲取的經驗教訓可以用於解決先前專案中忽略的任何NFR,因此可以在當前專案中考慮類似的NFR
在啟發和協作階段,業務分析師需要確保鼓勵利益相關者考慮NFR。所有利益相關者都有機會表達其NFR。
在需求生命週期管理階段,對所有NFR進行適當的跟蹤,維護,優先排序和批准
在需求分析和設計定義階段,業務分析人員需要確保清楚地指定和建模NFR(如果適用)。所引起和記錄的NFR由利益相關者進行驗證。在定義設計解決方案並提供推薦解決方案時,應正確評估和考慮NFR的潛在值。
在解決方案評估階段,將對NFR進行適當的測量和分析。
總之,應該在業務分析過程的整個生命週期中牢記NFR。
NFR技術
下面提供了在不同業務分析生命週期階段使用的一些技術。
記錄,跟蹤和優先處理剩餘的NFR:積壓管理,專案跟蹤 從利益相關者那裡獲取NFR:分組方法:集體討論,焦點小組,思維導圖,觀察,調查/問卷調查,使用者案例,使用者故事個體方法:訪談,研究,文件審查 分析和建模NFR:概念建模,資料探勘,決策分析,決策建模,文件分析,估計,財務分析,介面分析,指標和KPI,流程分析,流程建模,風險分析和管理,根本原因分析 規劃:經驗教訓,利益相關者名單,角色 |
相關文章
- 非功能性需求,不要成為專案的坑
- 為什麼建模技術對業務分析師BA如此重要?- modernanalystNaN
- 系統架構7個非功能性需求架構
- Googler為什麼很幸福?Go
- ITAM是什麼?為什麼它很重要?
- 為什麼DNS安全很重要DNS
- 為什麼有些公司的IT很亂?
- 為什麼凸優化這麼重要?優化
- 分散式微服務為什麼很難?分散式微服務
- 什麼是客戶分析,為什麼它很重要?
- 為什麼去中心化很重要?中心化
- 為什麼Web3如此重要?Web
- 為什麼小資料更重要?
- 為什麼資料備份那麼重要?
- 什麼是基於模型的管理,它可以為組織帶來什麼好處?- modernanalyst模型NaN
- 什麼是“六頂思考帽”模型? - modernanalyst模型NaN
- 為什麼說Objective-C很難學?Object
- 為什麼代理伺服器很重要?伺服器
- 為什麼區塊鏈橋很重要?區塊鏈
- Java對Internet為什麼重要(轉)Java
- iOS應用加固為什麼也那麼重要?iOS
- 【Learning eBPF-1】什麼是 eBPF?為什麼它很吊?eBPF
- 雲同步: 什麼是雲同步以及為什麼它是如此重要?
- 為什麼許可權授權很難?- osohq
- 為什麼學習效率如此低,我很迷茫?
- 為什麼特徵相關性非常的重要?特徵
- 為什麼企業資料整合很重要
- 為什麼資料視覺化很重要視覺化
- 為什麼Scrum變得不那麼重要了? - LogRocketScrum
- Python為什麼發展這麼快速?原因很簡單!Python
- 為什麼我覺得 Java 的 IO 很複雜?Java
- 為什麼中國很難有自己的3A遊戲遊戲
- 為什麼我總和效能指標相差很遠?指標
- 為什麼45週歲後找工作很難找?
- Win10正式版為什麼很費電?Win10
- 為什麼GOPROXY對Golang開發如此重要Golang
- 譯文 | 為什麼軟體架構如此重要?架構
- 為什麼程式碼評審(code reviews)很重要View