軟件設計是怎樣煉成的(8)——用戶感受好纔是真的好(用戶體驗設計)

摘要:程序員

軟件的UI是客戶直接體驗軟件的地方,好的用戶體驗可能比追求新技術和追求漂亮設計更加劇要,優秀的軟件應該是既有外在美也有內在美的。但大部分用戶是「外貌協會」的,你和用戶說你的軟件如何OO,用了多少種設計模式,客戶是不鳥你的,客戶關注的是用戶體驗!面試

 

大綱:數據庫

1.什麼是優秀的設計?
2.優秀的設計能節省項目工做量
3.優秀設計從分析需求開始
4.軟件系統不是木桶型的
5.軟件設計的「大道理」
6.規劃系統骨架——架構設計
7.打造系統的底蘊——數據庫設計
8.細節決定成敗——詳細設計
9.用戶感受好纔是真的好——用戶體驗設計
10.持續提高設計水平
設計模式

 

本文章是系列文章之一,若是你尚未看過以前的文章,建議先看完前面的文章再看本篇,這樣效果更好。安全

 

9.用戶感受好纔是真的好——用戶體驗設計

 

9.1 從「餘額寶是吸血鬼」提及——用戶體驗設計的重要性服務器

 

某人寫了一篇文章,說餘額寶是吸血鬼,要取締餘額寶!微信

我大吃一驚,決定認真研究一下這篇文章,但愣是沒有看懂!裏面無非是說餘額寶是銀行的吸血鬼,會害死銀行,害死金融市場之類的云云,反正沒有看懂。我就納悶了,咱們把錢放到餘額寶,天天賺取幾塊錢,跟你文章說的內容有毛關係?!你銀行收費多,利息低,存取錢麻煩,我幹嗎要將錢放到銀行發黴呢?架構

這個事件跟用戶體驗設計有關係嗎?我相信你已經有感受了,請繼續聽我道來。數據庫設計

公司 A 開發的一個軟件一直很好賣,但它的競爭對手公司 B 開發了另一個更好用的軟件,用戶很喜歡。很快公司 A 的軟件銷量直線降低,爲了挽回頹勢,公司 A 請了某人寫一篇文章「恐嚇」用戶,說一大堆用戶看不懂的話,比方說:公司 B 的軟件不面向對象,安全漏洞多,會吃掉內存,會損耗CPU等等。你估計用戶看了這篇文章後會怎樣?我估計用戶會多買兩套公司 B 的軟件壓壓驚!佈局

不管是銀行仍是餘額寶,都爲顧客提供一種資金投資的服務,但餘額寶的用戶體驗比銀行好多了,因此顧客會作出本身的選擇;同理,軟件給用戶的感受好,能帶來實際價值,用戶天然就會選擇這個軟件,用戶是不會計較你用什麼開發語言、數據庫,還有用了多少種設計模式的。

 

咱們來一個角色扮演,假設你是用戶,你將會花錢買一套軟件,你的購買標準是?

調查,你會選擇怎樣的軟件?

A)你是軟件開發狂熱者,他比較偏好架構設計良好的軟件,他甚至想獲得設計文檔和代碼。對於軟件,功能基本能用就能夠了,有點錯誤也能夠忍受。
B)你是惟美主義者,他要求界面要爽心悅目,功能能用就能夠了,操做麻煩一點也沒有關係。
C)你是實用主義者,界面不須要很花俏,關鍵是軟件要容易上手,操做要方便,能高效地幫助他完成平常工做。

我想你應該不會這樣變態選 A 吧?選 A 的話,恭喜你,你確實是軟件開發的狂熱者!

選 B 的朋友有木有呢?你是外貌協會的吧?

選 C 的朋友比較務實了,你會很珍惜你的每一分的血汗錢,軟件須要物有所值,你才願意投資!

 

 

9.2 什麼是用戶體驗設計?

 

先說說什麼是「用戶體驗」?

用戶體驗就是用戶使用軟件時給他的總體感覺,而用戶體驗設計就是針對「用戶體驗」的設計。

其實要讓用戶有好的感受,主要取決於如下三點:

1)軟件能知足需求;

2)在1)的基礎上,軟件用起來很舒服;

3)軟件的價錢是合理的,固然價錢 越便宜越好,最好是免費的。

咱們這裏談的用戶體驗設計,主要是針對第1)、2)點來談的。

若是客戶和咱們抱怨軟件很差用,咱們首先要檢查的是需求是否知足了?若是知足了,那麼至少可能打60分了。在需求知足的前提下,再進一步提高用戶體驗,就會讓你的分數上升到80分以上。那有沒有機會滿分呢?一般很難的,除非你的軟件是知足需求、很好用,而且是免費的!

是否知足需求,解決軟件能不能用的問題;用戶體驗設計是否能更上一層樓,能解決軟件好很差用的問題。

 

用戶體驗設計,體現了前文提到的「由頂而下」設計思路的體現,見下圖:

圖9.1 由頂而下的設計思路

說明一下:此圖中「規劃界面」這個活動的輸入是」用例/用戶故事「和」業務流程圖「,但其實」業務概念圖「也是須要考慮的,此圖畫出的是主要的前後關係。

 

對於用戶體驗設計,可能會有人第一反應是美工負責的事情,實際上美工僅僅是其中一部分而已,用戶體驗設計須要考慮如下三方面:

1)總體界面規劃
2)統一界面標準
3)易用性設計

下面分別說明。

 

 

9.3 總體界面規劃

 

有沒有曾經試過客戶向咱們抱怨軟件很差用,咱們詢問客戶哪裏很差用,客戶一時半刻說不出來;在咱們的耐心追問下,客戶終於憋出一兩點很差用的地方來,因而咱們立刻進行改進,但客戶仍然說很差用;因而咱們再次耐心的追問,客戶又憋出一兩點很差用的地方來……  周而復始,客戶仍是以爲很差用!

你以爲問題在哪?你可能要從新反省界面的總體規劃!

總體界面規劃作的事情就是:規劃軟件須要什麼界面,每一個界面能作什麼事情,每一個界面之間是怎樣關係等。這是用戶體驗設計的最關鍵、最核心、最重要的一環,這個作好了,基本上用戶體驗設計不會差到哪去,反之不管你在哪些細節上修修補補,很難在根本上改善用戶體驗。

 

咱們仍然用前文的」考勤系統「做爲例子,需求請參考前文,連接:http://blog.csdn.net/fireball1975/article/details/18967945

下圖是前面出現過的考勤系統的部署圖:

圖9.2 考勤系統的部署圖

 

紅色箭頭指向的客戶端是「PC」客戶端,咱們要思考這個客戶端的用戶體驗設計,咱們要回答兩個問題:

1)什麼角色將會使用這個客戶端;
2)這些角色經過這個客戶端能作什麼事情。

因而咱們咱們發現,」員工「和」領導「這兩種角色都會使用這個客戶端,他們分別經過這個客戶端能作的事情有:

員工:

1)查看所有人的請假外出狀況
2)提出申請
3)查看申請進展狀況
4)修改申請
5)刪除申請

領導:

1)查看待審批的申請
2)審批員工的申請

根據上述信息,咱們能夠規劃出PC客戶端的界面流:

圖9.3 考勤系統PC客戶端的界面流

 

小結一下總體界面規劃的作法:

1)要熟悉需求。
2)在架構設計的基礎上找出系統的客戶端有哪些,這些客戶端是指最終用戶會接觸到的機器,通常不須要考慮服務器端。
3)思考每一個客戶端上的用戶有哪些,這些用戶分別在這些客戶端上須要用到什麼功能。
4)畫出每一個客戶端軟件的界面流。若是以爲難度有點大,可先針對不一樣用戶分別畫他們的界面流,而後合併不一樣用戶的界面流,思考界面的判斷邏輯,使不一樣用戶進去都能得到良好的用戶體驗,同時讓程序工做量更小和彈性更好。

 

一般咱們的項目當中是沒有人專門作總體界面規劃的,大部分的狀況是程序員作出來怎樣就是怎樣的,但程序員作出來的界面用戶體驗設計,你懂的……

若是你是程序員,請按照上述思路改善的工做!

若是你是項目的管理者,請思考這些工做誰來作更合適?有些公司可能有專職的用戶體驗設計工程師,有些公司木有,那麼你能夠考慮讓需求分析師、測試工程師來負責,或者是做爲項目經理的你來親自負責。負責這個崗位的同事至少須要具有這樣的一個素養:就是能從用戶的角度來思考問題!若是能同時具有技術功底,能設計出用戶體驗極佳並且開發工做量少的界面總體規劃,這樣就最完美了!

 

 

9.3 統一界面標準

 

統一的界面標準主要包括三方面:形象、文字和行爲。

美工負責的事情主要就是形象方面的,包括有:(可能列不全)

1)總體風格:系統需採用一致協調的美術風格,使用戶感受是在使用同一個系統。如一致的色調、背景、圖片等。
2)圖片、圖標、頁面佈局等方面的設計。
3)文字的樣式、大小、字體等等。
4)界面上控件等各類元素的大小、顏色、風格等等。

文字方面主要是指文字的內容,與上述第3)有點不一樣。

軟件中出現的文字大概分兩類:

1)操做性、提示性文字,如:增長、刪除、確認、取消等操做性文字,還有一些相關的操做提示。
2)專業性、業務性文字,如醫院系統,系統中出現的藥名、病名等專業性文字。

這兩類文字都須要統一而且易於理解,例如咱們常常犯的毛病:一個地方叫」新增「,一個地方叫」添加「,一個地方叫」增長「,這樣就很不專業了。

如今說說行爲方面要注意的事情:,舉兩個例子你就懂了。

例1:某些軟件增長確認的提示很不明顯,你點了一下」增長「,界面沒啥反應,搞到你多點幾下,後面發現增長了好幾條記錄了。

例2:某些軟件刪除以前沒有提示,結果你一不當心就幹掉數據了。

用戶會在軟件上作不少動做,常見的動做有:查看某條記錄,查看某些記錄,增長一條記錄,修改一條記錄,刪除一條記錄,刪除一批記錄等等。相似的動做,軟件應該有合適的、易於用戶理解的而且是一致的響應,這些都是對軟件行爲的設計。

 

 

9.4 易用性設計

 

咱們分析一下互聯網網站註冊頁面的易用性,以此爲例子體驗一下易用性設計。

註冊網站是黏住客戶的第一步,你打算如何設計才能讓更多網友願意註冊呢?下面看看幾個階段的演化:

1)「皇帝女不愁嫁」的階段

好久好久之前(其實也不是好久,10多年前吧),互聯網剛流行的時候,註冊網站是比較麻煩的,要看用戶條款,要填一大堆信息,還要分幾頁來填,最後一頁還由於網速問題出錯,折騰死你!但當時互聯網網站太少了,你不介意多嘗試幾回的。

2)「忽悠你進來再說」的階段

你只須要填個帳號,輸兩次密碼,用戶條款不須要看,你去打個勾就好了。

3)「簡化到不能再簡化」的階段

如今有些網站,註冊時輸入用戶名,但密碼不須要輸兩次,一次就搞定了!但願你沒有輸錯密碼吧,呵呵。

4)「用戶名都不須要輸入」的階段

原本覺得3)的作法已是沒法再簡化的了,但竟然這麼神奇,用戶名都不須要輸入,點個按鈕就能夠了!沒錯,這就是關聯其餘帳號,比方說用QQ帳戶登陸、用微信帳號登陸等等,若是你如今已經登陸QQ,那麼就能夠一鍵關聯帳號並登陸了!

你們爲了爭奪用戶,註冊這事情簡化到使人髮指的程度!

 

這僅僅是一個例子,系統中須要着重考慮易用性設計的地方仍是不少的,例如:

1)首頁。
2)常常被使用的界面,如登陸、查詢界面。
3)用來拓展業務的界面,如註冊界面。
4)複雜的編輯界面。
5)帶有運算功能的界面。
6)重要人物會使用的界面,如報表。
……


 

9.5 技術人員應該怎樣對待用戶體驗設計
 
N年前,我做爲面試官面試一位程序員,該程序員是來自競爭對手的公司的。我問他爲何離開原來的公司,他說:原來那個公司代碼很不規範,不少 If Else,不少 Select Case,每一次遇到需求變化都須要去折騰,這些代碼已經沒法改下去了,我想到更規範的公司工做!
程序員追求進步是好事,但若是我告訴你另一個讓咱們慚愧的事實,你可能不必定願意加入咱們公司了。這個讓咱們慚愧的事實就是:競爭對手的軟件銷量比咱們的軟件高多了,這是由於他們的軟件好用,用戶體驗好!咱們的軟件更可能是面向軟件工程師,而不是面向最終用戶。
若是這個事實還不足夠讓你震撼,那麼和你的薪金掛鉤,相信就會震撼到你的當心臟了!你的軟件賣的好,你的薪金高,你能得到高額的提成,你會介意去處理那些If Else嗎?仍是喜歡去幹程序結構良好,但用戶體驗不好,軟件賣不出去,工資高不到哪的工做?
回到本文開始的那個例子,決定客戶是否買軟件的決定因素就是用戶體驗,而不是你的程序如何OO,如何用了多少種設計模式?
 
上述文字可能有些極端,並非鼓勵你只追求用戶體驗設計,而不須要關注軟件的內部結構,而是但願做爲技術人員的你,能更多關注一下用戶體驗設計。
 
 
 
9.6 用戶體驗設計小結
 
架構設計、數據庫設計打造的是軟件「內在美」,詳細設計主要打造「內在美」同時也須要考慮「外在美」,而用戶體驗設計主要就是針對「外在美」的!
軟件的UI是客戶直接體驗軟件的地方,好的用戶體驗比追求新技術和追求漂亮設計更加劇要,優秀的軟件應該是既有外在美也有內在美的。固然我還要囉嗦一句,大部分用戶是外貌協會的,不要企圖用「某軟件是吸血鬼」的說法來恐嚇客戶,讓客戶不買競爭對手的軟件,只買你的軟件噢!
 
 

 

10.持續提高設計水平

這是本系列文章的最後一篇了,軟件設計有無盡的可能性,絕對不是幾篇文章或者是一本書就能幫助你昇仙的,多實踐多嘗試才能幫助你更上一層樓。工做中的設計挑戰可能不豐富,難度不夠,你本身須要爲本身多找一些案例來挑戰,多寫代碼,多作總結,創建你本身的代碼重用庫。

若是你是公司的管理層,你可能不只僅考慮的是我的能力提高的問題,而是更多地考慮讓整個公司設計能力提高的問題,可能想到設計流程制度化、設計文檔模板化等工做思路。公司領導要更多考慮需求積累、技術積累,打造公司的核心產品線,核心技術等,打造代碼重用庫、組件庫等等,要達到必定的高度都不是靠爆發的,而是靠長期的積累。積累達到必定的層次,「後人」就能夠利用「先人」的智慧達到更高的高度。咱們這些現代人可能並不比古代人聰明,咱們能幹不少古代人不能幹的事情,是由於咱們利用了先祖爲咱們積累的大量文明成果。

 

 

11.後話

我正式出版的一本書《火球——UML大戰需求分析》中提到,我打算未來寫一本《活用UML——軟件設計高手》,一些朋友問到這本書何時出版?

我很很差意思,這本書出版沒有排到日程上,但「軟件設計是怎樣煉成的」這個系列文章實際上是此書的濃縮版,我打算將這個系列文章連同其餘文章,編進一本軟件研發及管理最佳實踐的書中,此書尚未最終定名。此書將會覆蓋軟件研發的方方面面 ,目標就是培養厲害的軟件項目經理,讓你裝備周身刀,把把鋒利!

我還會在博客中爲你們陸續分享文章,謝謝你的支持,請繼續捧場!

 

本文是系列文章的最後一篇,謝謝你的支持!

 

若是本文對你有幫助,麻煩點一下「推薦」啦,謝謝!

 

 

做者:張傳波

創新工場創業課堂(敏捷課程)講師

軟件研發管理資深顧問

CMMI首席專家

《火球——UML大戰需求分析》做者

軟件知識原創基地創辦人

相關文章
相關標籤/搜索