- 軟件需求分析實戰(zhàn)
- 楊長春編著
- 3908字
- 2022-07-27 19:16:43
1.1.2 什么是好的管理軟件
需求分析的工作目標是設計出好軟件,從事管理軟件的需求分析工作,當然就是設計出好的管理軟件。好軟件在人們的工作、學習、生活中俯拾皆是,百度、淘寶、QQ、微博、微信、Office等,使用好軟件的感覺就是一個字——爽,看起來舒服,使用起來流暢,不拖泥帶水,不磕磕絆絆,功能總是出現(xiàn)在需要的地方,總是能解決問題等。但究竟什么是好軟件呢?作為軟件行業(yè)的專業(yè)人士,對軟件是好是壞的認識自然不能僅僅滿足于此。
在正式討論需求分析相關工作之前,先來看看究竟什么樣的軟件是好軟件,以此作為未來工作的努力目標。
1.好軟件是有用的
所謂的有用,就是指軟件真正能夠解決問題,不能解決問題的軟件絕不是好軟件。從企業(yè)管理的角度來看,或者可以增加收入,或者可以節(jié)約成本,最終反映在它能夠促進利潤的提升,這個利潤可以是短期的,也可以是長期的。如果軟件提升的利潤大于軟件的成本,那么這個軟件是有用的,否則就不能說是有用的。
不過,利潤是由多方面的因素決定的,大部分情況下很難說得清楚一個小軟件對企業(yè)的利潤有什么影響,也就很難說得清楚它是有用還是沒用,因此可以嘗試從一些更具體的方面來界定一個軟件是不是有用。
有用的軟件解決問題而不是制造問題。可以用軟件解決的問題很多,小到簡單地保存某種信息,大到為企業(yè)建設管理平臺。但要知道,在用軟件解決問題的同時一定會帶來全新的問題——軟件本身的問題,對于一個不是搞軟件的企業(yè)來說,這種問題處理起來并不容易。有很多單位,好像是為信息化而信息化,目的不是解決現(xiàn)實問題,而是為了面子好看,結(jié)果導致使用軟件不但沒有解決問題,反而帶來了許多額外問題。還有的時候,軟件確實解決了某些小問題,但相對這些被解決的問題來說,軟件本身帶來的問題要嚴重得多,得不償失。例如,為了獲得某種報表開發(fā)了一款軟件,卻需要專人錄入數(shù)據(jù),專人維護系統(tǒng),如果讓這些人進行手工統(tǒng)計,報表不但可以按時出來,工作量還會小得多,這種軟件實在不能說是有用的軟件。
有用的軟件可以提高工作效率。計算機的長處在于運算更快、更準,存儲更多、更久,分享更全、更易,無論用戶的要求多么無理它也不會鬧情緒。利用好計算機的這些特點,沒有理由不能提高工作效率。如果軟件不能提高工作效率,絕對不能說是有用的軟件。提高工作效率一般體現(xiàn)在這些方面:同樣一件事情,完成的速度大大提高了,例如一個審批流程,以前可能需要三天,現(xiàn)在三個小時就可以完成了;或者經(jīng)過軟件優(yōu)化后,有些工作根本就不需要了,例如使用財務軟件后,登記明細賬簿的工作就可以取消了;或者有些工作需要的人力資源大大減少了,例如編排生產(chǎn)計劃,以前需要計劃助理到車間收集生產(chǎn)狀態(tài),用了軟件后可能這種崗位就不需要了;或者相同的人員,可以完成更多的工作,例如采用作業(yè)成本法計算生產(chǎn)成本,通過軟件可以完成非常復雜的計算過程,并且快速、準確,在以前,同樣一個成本會計不可能做到這一點;或者可以降低工作難度,例如生產(chǎn)數(shù)據(jù)統(tǒng)計員,使用軟件后很多生產(chǎn)數(shù)據(jù)可以直接從生產(chǎn)過程中獲得(如生產(chǎn)任務完成時間、機器號等),而不需要統(tǒng)計員再去進行手工統(tǒng)計。
有用的軟件可以降低資源消耗。利用軟件來降低資源消耗體現(xiàn)在許多方面,例如,可以通過庫存管理減少倉庫物料的無故丟失;可以通過計劃管理軟件提高庫存的周轉(zhuǎn)率降低資金的積壓;可以通過辦公管理軟件降低辦公物品的消耗;可以通過生產(chǎn)管理軟件降低生產(chǎn)材料的消耗;可以通過調(diào)度軟件讓任務安排得更科學,降低生產(chǎn)能耗;等等。
軟件的有用性還表現(xiàn)在很多方面,如規(guī)范流程,提升客戶感知,增加企業(yè)核心競爭力,幫助決策等,這里不再贅述。
有用,是好軟件的最基本條件,其他方面做得再好,如果缺少有用性,這個軟件也不能說是一個好軟件。軟件開發(fā)之前為什么要進行需求調(diào)研呢?最重要的目的就是為了保證軟件的有用性。
2.好軟件是易學的
好軟件充分考慮易學性。所謂易學,就是指軟件功能方便學習,容易上手。對于易學性,需求分析者的終極目標是,所設計的軟件功能不需要任何培訓,用戶看著界面就可以學會操作,用戶通過自學有什么問題都能自己解決。當然,管理軟件與面向公眾的社交軟件還是有很大區(qū)別的,要想達到這個境界不大可能,但在做設計的時候,設計人員應該時刻提醒自己,這里如果再努力一把,是不是用戶就可以不用學習了?或者,是不是可以減少用戶的學習難度?容易學習的功能,對于用戶來說,使用中會覺得是一種享受,也就更加容易接受軟件,對于后面的實施來說,可以大大減少培訓成本。
比起十多年前,如今的用戶對軟件的易學性要求越來越高。由于一批又一批軟件人的努力,現(xiàn)在的用戶對軟件體驗的要求越來越高,對軟件的期望也越來越高,對于學習軟件的耐性卻越來越少了。這些因素決定了,在易學性方面下多少工夫都是值得的。
3.好軟件是易用的
好軟件充分考慮易用性。所謂易用,就是指軟件用起來舒服、趁手,處理問題全面、容易、方便、快捷,犯了錯誤容易糾正。請注意易用性與易學性之間的區(qū)別,易學性指軟件容易學會,而易用性指學會之后,使用軟件處理問題的感受,這是兩個完全不同的概念。有些軟件容易學會,但確實不易用,也許它容易學習的原因只是因為功能簡單罷了,而功能簡單往往預示著處理問題不全面,有一些問題甚至處理不了。軟件的易用性一般體現(xiàn)在以下這些方面。
(1)在操作層面,界面美觀大方,錄入或操作快速、方便,功能出現(xiàn)在需要的地方,處理同一件事鼠標點擊、鍵盤擊鍵次數(shù)最少。
(2)在業(yè)務層面,處理問題容易、快捷,不需要切換一大堆界面,處理問題全面,一些異常業(yè)務也可以方便處理。
(3)在性能層面,軟件反應速度快,占用資源少。
易學性是針對沒有學會軟件的新用戶,易用性是針對已經(jīng)學會軟件并可以熟練操作的老用戶。
4.好軟件是靈活的
好軟件充分考慮靈活性。所謂靈活,就是指軟件不僅滿足于能夠?qū)崿F(xiàn)用戶當前的需求,還會充分考慮其他的特殊需求,充分考慮軟件的發(fā)展,讓軟件易于擴展,易于應對可能的需求追加與變更。無論開始的需求工作做得多完善,用戶的需求終究會有變化,或者需要修改某些需求,或者需要增加某些需求,或者需要取消某些需求,而靈活的軟件具有柔性,即使用戶的需求發(fā)生了變化,軟件不修改也可以解決很多問題。當然,任何軟件都不可能解決所有問題,作為設計者,能做的是盡量設計出可以應對更多需求變化的軟件,也就是盡量增加軟件的靈活性。
使用字典代替寫死的數(shù)據(jù),使用參數(shù)開關控制程序的代碼分支等,這些都是提高軟件靈活性的常用手段,人們所看到的幾乎每一款好軟件都有大量的參數(shù)開關(一般都在“設置”的功能中),這就是軟件開發(fā)者為了軟件的靈活性所做的努力。
5.好軟件是健壯的
好軟件充分考慮健壯性。所謂健壯性,是指軟件在用戶使用過程中有很強的容錯性,可以幫助用戶少犯錯誤,犯了錯誤可以糾正,可以反悔,用戶在使用軟件的過程中沒有心理負擔。在這里,“健壯”的反義詞是“脆弱”,脆弱的軟件,用戶使用時需要小心翼翼,神經(jīng)繃得緊緊的,數(shù)據(jù)不能錄錯,不能刪錯,操作順序不能顛倒,不該點的按鈕不能亂點,不該打開的界面不能隨便打開等,一不小心犯了錯誤,就會付出很大的精力處理,有時候甚至只能由軟件維護者在后臺才能修好,總之,軟件中仿佛布滿了地雷,一不小心就會“引爆”,輕者“皮破肉爛”,重者“殘廢喪命”。
6.好軟件是高效的
好軟件考慮性能要求,追求高效性。所謂高效性,指程序執(zhí)行速度快,占用的IT資源少。IT資源一般包括數(shù)據(jù)存儲能力、服務器運算能力、網(wǎng)絡傳輸能力、客戶端運算能力等方面,不同的業(yè)務系統(tǒng),不同的架構(gòu)方式,甚至針對不同的用戶,關于這幾個方面的考慮重點并不相同。
軟件功能再強大,能解決的問題再多,執(zhí)行起來如蝸牛般緩慢,讓人等得幾乎要崩潰,也不算好軟件。高效的軟件會努力提高功能的運行效率,降低IT資源的消耗,讓軟件系統(tǒng)運行得更快速、更經(jīng)濟。
7.好軟件是方便交互的
好軟件方便用戶與系統(tǒng)之間交互,具有交互性。交互性,指程序在執(zhí)行過程中可以與用戶進行友好溝通,讓用戶順利獲得應該知道的系統(tǒng)信息,讓系統(tǒng)順利獲得用戶提供的信息。例如,執(zhí)行某一項操作需要用戶等待很長時間,用戶就會覺得煩躁,不知道是不是系統(tǒng)出了問題,不知道還要等待多久,但是,如果有進度條顯示執(zhí)行進度,那么就會大大減少用戶的煩躁情緒,也就是通過進度條讓用戶知道系統(tǒng)內(nèi)部的信息(執(zhí)行進度),從而提高交互性。
當用戶在界面上操作時,一個友好的系統(tǒng)會將執(zhí)行信息根據(jù)需要反饋給用戶,有些信息只是告訴用戶一段程序執(zhí)行的狀態(tài),如常見的告訴用戶保存成功的提示消息,而有些是用于接受用戶額外指令的,如讓用戶確認是否刪除某記錄的提示消息。系統(tǒng)反饋給用戶的信息,可以通過各種方式表達出來,如彈出消息框、顯示在某固定區(qū)域、寫入日志文件等,有的時候也會通過組件形狀變化、位置變化、顏色變化、文字字體變化之類的方式向用戶傳達。
8.好軟件是可重用的
好軟件具有可重用性。可重用性,指軟件對不同環(huán)境的適應性。重用,可能是整個軟件的重用,也可能是軟件中某些功能的重用。有些產(chǎn)品型的軟件,可以原封不動地用到多個企業(yè)中,不需任何修改,或者只需要進行少量修改,這就是整個軟件的重用;有些軟件的某些功能,可以復制到別的軟件中繼續(xù)使用,如很多團隊的“用戶管理”“權(quán)限管理”之類的功能。對于功能的重用,有些功能自成體系,跟本功能之外的功能、數(shù)據(jù)沒有任何關系,具有最強的可重用性;有些功能隸屬于某個環(huán)境,離開這個環(huán)境就沒有任何意義,那么這種功能就沒有任何可重用性。注意,這里所說的重用,是指功能級別的重用,跟代碼級別的重用(封裝函數(shù)、過程、類等)是兩碼事,不可混為一談。
增加可重用性,可以大大降低團隊的開發(fā)成本,提高開發(fā)速度,增加軟件系統(tǒng)的穩(wěn)定性等。
- MATLAB與C/C++混合編程
- 敏捷開發(fā)的藝術(原書第2版)
- Docker源碼分析
- Knative最佳實踐
- 中文版Revit 2018基礎培訓教程(全彩版)
- Swift權(quán)威指南
- Swift從入門到精通(正式版)
- 邊緣云部署與運營:系統(tǒng)性實現(xiàn)方法
- 深入淺出數(shù)據(jù)結(jié)構(gòu)與算法(微課視頻版)
- MindSpore深度學習高階技術
- 大數(shù)據(jù)實時流處理技術實戰(zhàn):基于Flink+Kafka技術
- Web前端性能優(yōu)化
- Android驅(qū)動開發(fā)與移植實戰(zhàn)詳解
- 瘋狂Java:突破程序員基本功的16課(修訂版)
- HTML5游戲編程核心技術與實戰(zhàn)