業務與需求、業務設計與需求設計的區別
編輯導語:業務和需求,業務設計和需求設計,這兩組詞我們經常能夠聽到,那么你了解它們的有什么區別嗎?本文作者站在軟件工程師的角度,為我們進行了分析和說明,搞清楚它們的區別之后,或許會對我們的工作有不小的幫助。
“業務和需求”,這兩個詞軟件工程師們每天都會用到幾次,但卻不一定很清楚兩者的區別:
“業務”指的是軟件客戶現在從事的工作,“需求”指的是客戶對未來系統的期望或要求,因此業務設計與需求設計是兩個不同視角的設計。
正確的順序是:先對業務進行充分的設計,然后基于業務設計成果再進行軟件的需求設計。搞清楚這兩者的定義、區別、相互關系,對需求的理解、分析,并通過設計提升客戶的滿意度是有非常重要的指導意義的。
一、需求與業務的區別
1. 業務
站在軟件公司的角度看客戶的工作時,軟件工程師們把未來系統所要對應的客戶工作稱之為“業務”。
如系統要實現的業務包括:銷售工作、人資工作、采購工作、財務工作、物流工作等,在軟件工程師來看,不論客戶的領導、還是普通員工的工作,都是客戶的“業務”(注:在客戶企業內部對“業務”的定義與軟件公司是不同的)。
2. 需求
“需求”是指客戶根據自身的業務內容,對即將要開發的軟件系統所提出來的需要、要求,當只提“需求”兩個字的時候,通常默認為是指系統的“功能需求”。
但是實際上在調研分析過程中,“需求”并不僅僅指的是“功能需求”,收集到的原始客戶需求來自于不同的崗位、需求表達的形式也不近相同,如:
- ①企業經營崗:用信息化手段,提升企業競爭力(目標需求);
- ②部門管理崗:在采購流程上設置審批功能,強化對生產成本的過程監控(業務需求);
- ③業務執行崗:在合同界面上增加Excel表的導入功能,提高合同編制效率(功能需求)等。
從上面的三個例子可以看出:③直接給出了對系統的具體“功能”需求,而①、②則不能直接看出來對應什么樣的系統功能。因此,需要通過分析①和②的需求,并將它們轉換為具體的系統功能需求③,交付給后續的軟件設計師和開發工程師。
可以從上述定義看出來,“業務”和“需求”不是一回事:
- 業務:指的是客戶現在從事的“工作”;
- 需求:指的是對客戶現在從事的工作在引入到信息系統中時所提的“需要、要求”。
二、需求設計與業務設計區別
清楚了需求與業務的區分,下面探討一下“需求設計”和“業務設計”的不同,各自的目的、作用、價值以及相互作用。
1. 需求設計
有些軟件公司常常使用“需求設計”一詞,需求設計一般指的就是對收集到的功能需求,按照系統實現的要求進行的功能設計,需求設計的主要目的是給出對系統實現的“功能”描述。
2. 業務設計
業務設計,主要內容是對客戶的工作現狀按照未來的信息化標準要求進行梳理、優化、完善,如:物資采購流程的優化設計、組織管理結構的扁平化設計、成本過程管理設計等。
為什么需要有業務設計呢?
因為客戶提出的需求大都是根據既有的工作現狀提出來的,這些工作現狀不一定是符合信息化要求的,管理方式甚至是落后、不科學的,按照這個工作現狀提出的需求去開發系統,其結果可能是用先進的信息化手段、模擬了落后的工作方式。
這樣做的結果客戶最終不能獲得信息化帶來的價值,只有充分地理解業務、并對既有的工作現狀按照信息化的標準進行優化、完善設計,在這個業務優化設計的基礎上,才能確定需要什么功能、并依據業務設計結果判斷客戶提出的需求是否正確。
業務設計是需求設計的基礎,順便說一句,前面的①和②的需求,只有通過業務設計,才能找出來需要的是什么系統功能。
業務設計主要包括三個層面的內容,即:架構層、功能層和數據層,包括:
- 架構層:首先,從整體上對客戶工作現狀用架構圖(分解圖、流程圖等)的形式進行梳理、優化、完善;
- 功能層:其次,對客戶的每個工作(界面的原型)的具體操作內容進行梳理、定義、優化,制定操作層面的標準、規則等;
- 數據層:最后,對每個工作產生的數據建立標準、定義、采集規則等。
3. 兩種設計的相互作用
兩個設計的理念和目的是不同的:
- 業務設計:關注的是對工作現狀如何用信息化的標準進行梳理、優化、再定義;
- 需求設計:關注的是系統功能該怎么實現。
軟件工程師獲得了功能需求,但如果不熟悉業務背景,直接去設計功能需求,就是“知其然,不知其所以然”。在充分地理解了業務、優化了業務、并在確定了未來信息化環境下業務處理最佳方式的基礎上,再去確定功能需求、設計功能需求,才是做到了“知其然、也知其所以然”。
由于客戶不是信息化專家,往往提的需求不一定正確,軟件工程師通過對客戶業務的設計,就可以正確地理解客戶需求,并且可以識別出需求的真偽(同時,軟件工程師也會根據自己的經驗提出建議)。
也就是說,只有將“需求”放在“業務”的背景中去思考、設計,才能做出優秀、實用、客戶價值高的系統功能。
總結,“需求設計”不是“業務設計”,也不能替代“業務設計”,業務設計有業務設計所需要的知識和方法。業務設計的水平高,完成后的系統帶來的客戶價值就高。
要想獲得高水平、高價值的軟件系統,就一定要先進行業務設計(業務優化),再進行需求設計。
本文由 @李鴻君 原創發布于人人都是產品經理,未經許可,禁止轉載
題圖來自 Unsplash,基于 CC0 協議
受益匪淺。不知是否了解過需求層次分業務需求層次、用戶需求層次、產品需求層次這種劃分方式。您文章說的業務設計是否可以理解成業務需求設計呢
1.感覺你說的應該類似于UML中的業務用例、概念用例、系統用例,這是需求分析的一種方法。
2.文中的業務設計應該是更偏向于單純的業務設計,這種業務設計強依賴于軟件系統而存在,是業務本身的邏輯。但是業務設計與需求設計可以相互影響,更準確的說是業務設計指導需求設計,需求設計反饋優化業務設計。
業務設計由業務部門負責,產品經理作為信息化方面的專業人士配合工作。這個職責劃分準確嗎?
外包公司經常遇到客戶直接提出需求的情況,很多時候一些不負責任的外包公司,就會客戶說什么做什么,完全不考慮能不能實現業務目的。做出來的東西常常是被擱置,因為它無法提高效率,但因為這是客戶自己說的,所以客戶常常也有苦難言。這樣就會驅使客戶去尋找更好的外包公司,尋求更好的解決方案。
只有將“需求”放在“業務”的背景中去思考、設計,才能做出優秀、實用、客戶價值高的系統功能
很好了
受教了!
可以 有點東西