2012年3月19日 星期一

[轉錄]如何做一名優秀的UI設計師

參考出處
這是轉錄的文章,基本上只是繁簡互換加上稍微排版一下
是關於介面設計師的喔,我一直覺得把介面做得友善一點是很重要的事!
(很多對岸的文章我看起來字都擠在一起完全沒有排版Q.Q)




說起產品UI設計通常的認識就是“圖形界面的設計”而產品的 交互設計往往被忽略!一個好的交互設計對產品的成功起著很 關鍵的作用。UI所做的就是用戶最先接觸到的東西,也是一般 性的用戶唯一接觸到的東西。用戶對於界面視覺效果和軟件操 作方式的易用性的關心,要遠遠大於他對底層到底用什麼樣的 代碼去實現的關心。如果說程序是一個人的肌肉和骨骼,那麼 UI設計就是人的外貌和品格!都是一個成功軟件產品必不可少 的重要組成部分!對我而言程序懂得不多所以只是從UI設計與 軟件產品整體的關係和如何才能使軟件產品得到最佳的UI設計 角度來談。
現在我們的軟件產品存在的一些問題有技術方面的問題,但是 更多的問題來源於各個部門、各個項目小組的之間的配合。我 們現有的開發流程一般都是由市場部門提出客戶需求,產品設 計人員提出產品設計報告,開發部門設計開發計劃,由各個小 組分別開發一個模塊,最後整合成為一個完整的軟件產品。在 這些流程之間UI設計應該參與那一個部分,每一個部分應該做 到什麼地步才可以使產品得到最好的UI設計效果呢?下面我們 會在每一個部分具體分析。

首先分析一下現在的問題所在,在一些軟件業比較發達的國家 軟件產品的UI設計過程貫穿了軟件開發的自始至終,而且是必 不可少的。而在中國產品UI設計並沒有被廣泛接受,就算是已 經有了UI設計師的一些企業也沒有對產品的UI有著足夠的重視 ,一般來講他們大都會把重點放在如何使用代碼實現所需要的 功能,在我看來這只是一個成功軟件產品的一個部分。一個優 秀軟件產品的開發過程應該是由四個部分組成:
1.軟件產品的設計(業務建模)
2.系統的設計(技術建模)
3.分單元的開發(把軟件各個部分拆分分單元編寫代碼)
4.測試(分為單元測試、系統集成測試和產品功能測試),這 些是由軟件研發部門做的工作。
除去以上軟件開發過程的四個部分還有用戶需求和用戶驗收測 試,這兩個過程是由市場部門和產品用戶一起完成。所以說用 代碼實現產品功能(coding過程)只是軟件開發的一個步驟。 現在我們回到UI設計的角度來看,作為UI設計人員我們需要全 程參與到軟件開發過程中,而不只是在某一個步驟參與,現在 在大多數軟件企業裡UI設計師只是在產品的coding過程的時候 才實質性的參與到軟件開發過程裡,而在其它幾個步驟裡只是 參加甚至根本沒有參加(在這裡我要強調“參與”和“參加” 是兩個詞的不同概念,“參與”指的是完全加入到開發行列開 始進入設計階段,而“參加”指的只是旁聽會議或者提出一些 簡單的意見並沒有開始進入設計階段),這樣就會大大降低軟 件產品的開發效率使開發成本成倍上升甚至導致整個產品的不 成功!這並不是危言聳聽,下面我們分析一下在一個軟件產品 的開發過程中UI設計應該怎麼做、做到什麼地步才能避免上邊 提到的那些問題?

下面我會根據軟件開發的過程解釋上邊的問題,剛才我提過軟 件開發過程的幾個步驟,
1.產品建模
2.技術建模
3.分模塊開發
4.測試,那麼我們也分為這四個部分進行討論:

一.產品建模時期:

我們首先來了解一下“輸入”和“輸出”,在UI設計裡是很重 要的兩個概念,經常會有人過來對我說“我們有一個軟件產品 需要美化一下”然後再也沒有什麼深入的解釋了,僅僅這句話 我的工作就要開始了,然而這個軟件是給誰用的?是乾什麼的 ?我們卻一無所知!成功的UI設計首先要有完整的“輸入”, 怎麼才能叫做完整的“輸入”呢?也就需要UI設計師從整個軟 件產品的策劃階段就開始介入,在產品用戶(也就是客戶)向 市場部門或者產品部門提出產品需求的時候就要開始參與到產 品策劃開發過程中來,這一部分對於UI設計師而言就是第一個 輸入階段,並且在這個階段裡UI設計師也需要提出一些對產品 交互設計的意見,以便產品部門在做產品設計的時候更多的考 慮到產品的交互性和功能的簡單表現原則,有很多軟件在設計 階段就被加入了許多並不是用的附加 ​​功能,其實一個好的軟 件設計就是要用最簡單的結構實現用戶的想法,一些可有可無 的功能看上去很花哨往往會影響用戶的判斷能力,這些就是產 品優化的一些概念了在此我需要簡單的提一下如果想要深入研 究可以看一些有關於產品優化的書籍甚至是心理學的書籍,有 很多人認為軟件的優化就是代碼的優化(用最少的代碼實現產 品功能),在我看來這只是程序的優化是針對程序員而言的而 不是整個軟件產品的優化,產品優化包含了交互設計在現在的 多數軟件企業沒有專門做這一部分的交互設計師所以往往這一 部分被忽略,我認為這一部分應該又UI設計師承擔起來,從文 章的開頭我就說過UI設計不只是圖形界面的設計,就算是有企 業裡邊有這樣的優化人員或者交互設計師他們也要和UI設計師 一起配合完成產品交互設計,作為UI設計師產品的交互性和易 用性是在做設計的時候必須考慮的!
言歸正傳,產品設計人員經常不會過多考慮簡單易用原理也就 是產品出來用什麼樣的組合形式體現給用戶,這也是UI設計師 考慮最多的事情,所以UI設計師一定要在產品建模期間參與設 計,給產品設計師一些意見。作為一名優秀的UI設計師我們還 要在了解了產品的需求之後更深入了解這個產品的使用環境和 用戶群體的使用習慣。我們還需要了解市場上的同類軟件產品 的設計方案,研究他們的優缺點,以便在我們設計的時候吸取 它們的長處避免它們的錯誤。在產品建模之後一般的都會由產 品設計人員給客戶做一次功能設計講解,往往這樣的講解只是 文字性質的需要讓客戶想像著理解,這就會造 ​​成很大的隱患 有的客戶根本無法理解你的講解甚至對這樣的講解根本不認真 聽,因為他們根本不懂,在討論過程中他們經常會同意產品設 計人員的一切設計想法但是產品測試的時候他們又會提出種種 不滿意,我想這是一般的軟件公司都會遇到的也是最最頭疼的 事情,但這並不能怪客戶我說過客戶只會關心視覺效果和軟件 的操作而並不會去關心我們是怎麼實現這一切的。這種情況帶 來的直接後果就是產品的反復修改開發成本成倍上升,怎麼避 免呢?這就要靠UI設計師了,俗話說“眼見為實,耳聽為虛” ,所以需要UI設計師做出一個產品整體效果的demo。這個demo 用圖片的形式表現就可以,我們只需要將要體現的產品界面做 一個拼湊就可以了,因為這並不是產品的最後樣子,只是協助 產品設計人員給客戶講解產品設計。產品建模時期UI設計師要 了解客戶的要求想法和產品設計人員對產品功能的要求深入了 解產品,採集用戶的使用需求、使用環境和使用習慣,了解市 場同類產品的設計分析它們的優缺點。協助產品設計人員完成 產品建模過程並製作產品展示demo模擬用戶對主要功能的操作 過程和界面呈現,生成交互原型(基本上產品的交互性和易用 性問題都需要在產品建模的時期解決)。如果時間允許我們甚 至可以提出一份“UI設計分析報告”,這份報告可以附在產品 設計說明後,更有效的幫助客戶了解我們的產品設計並且幫助 開發人員更好的遵循UI的整體要求來完成開發工作。這個時期 的關鍵是“交互設計”。

二.技術建模時期:

在這個時期作為UI設計師我們已經了解了軟件產品的功能需求 並且拿到了一份產品設計人員的產品設計說明,可以進入界面 樣式的設計過程了。這個時候我們應該考慮更多的應該是產品 的整體風格和界面的設計,通常我們也會做出幾份方案給客戶 選擇。有些客戶會要求產品遵循一個整體的VI設計標準,那麼 我們就需要按照一個整體的已定的風格去設計軟件的界面,要 與客戶公司的企業形象吻合。在這個時期軟件的UI設計進入到 了美術設計階段,我們需要製定整個軟件的風格,塑造軟件的 整體形象,並且具體的描述每一個界面中的元素和佈局、文字 字體等信息。在這個階段我也不應過多的說什麼,主要是每個 UI設計師各自發揮你們的藝術專長用最簡潔、最漂亮的界面表 現軟件產品。需要注意的就是在我們設計整體風格的時候一定 要深入了解這個產品的理念,看看它是乾什麼用的。不同的產 品要有不同的風格,這裡邊有很多的細節注意,不同的產品、 同類的產品不同的內容、不同的傳播介質,這些都會決定UI設 計的風格。1.不同的產品:比如一個遊戲產品就需要將界面做 的花哨一些或者用大的圖片充斥;如果要是一個應用軟件就需 要突出使用方便和強大的功能設計要簡潔。2.同類不同的內容 :比如一個可愛的遊戲產品(像是卡通類游戲)就需要將界面 做的活潑生動可愛一點;如果是一個角色扮演的戰鬥類游戲( 像是槍戰闖關類游戲)就要做的酷一點深沉一些。3.不同的傳 播介質:我們要做的軟件產品有的需要在網絡上傳播那麼就需 要我們考慮到網絡速度的問題;有的就是利用光盤當作介質那 麼這樣的軟件就可以做一些比較花哨的效果。所以說不同的產 品還需要單獨考慮,這也需要UI設計師多多了解產品,保持與 客戶交流。還需要重點注意的就是我們在做圖形化設計的過程 中千萬要貫徹在前一個階段做好的交互設計,始終注意產品的 交互性和易用性。在設計過程中我們一定要做出每種結構每一 個步驟的效果圖,不能只提供圖標、按鈕、背景圖等圖片,這 樣的話程序員根本不知道往那放這些東西,在這個時期我們就 要最終確定軟件界面的呈現形式。技術建模一般是由高級程序 員完成的,他們會將整個軟件開發分為一個一個功能模塊,分 配給一個一個的開發小組。但是這些負責技術建模的高級程序 員考慮更多的往往是如何將整個設計用代碼實現、怎麼才能更 有效的複用以前已有的模塊等等,而不是軟件是什麼模樣會有 什麼樣的風格,所以作為UI設計師我們必須主動出擊,多多和 他們交流以保證我們的想法能夠完整的實現,如果有技術實現 的問題我們還要及時做出修改。有時候我們還需要根據客戶或 者產品的特定需求做一些延伸性的設計(也叫UI產品設計的外 延),包括:軟件的安裝導航界面、產品的演示宣傳動畫、一 些附帶的桌面壁紙或者屏幕保護、代表軟件的卡通小精靈、有 時還會被要求設計軟件的logo和廣告banner等等。技術建模時 期的關鍵是“風格和界面設計”。

三.分模塊開發時期:

這個時期軟件開發過程進入實現階段,也是需要人力最多的時 期,這樣就會分散UI設計師的精力。軟件會被切分為若干個小 的模塊進行代碼編寫,最後整合成一個完整的軟件產品。對於 一個程序員來講他們大多根本不會考慮到產品應該是什麼樣子 應該有什麼整體風格,他們所考慮的只是如何用代碼實現設計 的要求,而且在現在的軟件企業多都實現了模塊的複用,這樣 會大大節約人力成本,那麼程序員只是對原有模板進行修改使 之適應新的軟件產品,這樣就會對UI設計的最終貫徹和實現帶 來很大的麻煩。做出的每一個模塊雖然已經能夠使用但是都是 “各自為政”沒有統一,因此我們也需要主動的協助和監督程 序員完整的實現UI設計的要求,如果有技術無法實現的問題需 要及時溝通改正設計方案。有的時候有些模塊需要有單獨的風 格,比如一些已有的軟件產品需要集合到某一個新的產品中去 ,這樣就會加大了設計師的設計難度,我們必須要在保證產品 整體風格不變的情況下將原有產品的設計風格集合進去,使之 更加適合新的產品表現形式。如果我們仍舊保持原有產品的風 格那麼當各個模塊集合起來之後往往會使新的產品感覺很鬆散 ,進入每一個功能都會覺得是另外一個軟件,使人對軟件的印 像不深刻。在這個階段我們還是要主動一些,跟進各個模塊界 面的實現。現在很多軟件企業都存在很多UI設計師和程序員的 協作問題,不是程序員做不到UI設計的要求,就是UI設計師堅 持一些自己的想法不能改動,還有的時候經常會有人過來沒頭 沒尾的說幫我做點東西吧!當軟件集成到一起再一看,就是很 多不同風格的東西堆砌到一起,從頭到尾都不舒服,領導或者 客戶看了以後極度不滿狂批一陣,最後得出結果UI設計做的不 到位。有人說UI設計師就要背著軟件不成功的黑鍋,因為人們 根本看不見代碼怎麼寫的,功能是怎麼實現的,他們只知道對 軟件的樣子和使用進行評論。讓一個用戶評論一個軟件他們只 會說這個軟件好用看上去也不錯挺漂亮的,但是做為一個普通 用戶決不會有人說這個軟件程序寫的不錯。這麼一看我們會聯 想到現在軟件開發之中主要的衝突在UI設計師和程序員之間, 其實這只是表面的表現形式。實質上這個現象體現了現在軟件 企業的一個通病就是這個開發組之間的協作關係混亂,程序員 和UI設計師之間是平級協作關係,程序員是不會對產品負責的 ,這樣看來UI設計師只應該聽項目經理的,無論對設計做什麼 樣的改動或者增添什麼樣的東西,都應該由開發項目經理和產 品經理協商之後決定,只有他們可以對最終的產品負責。這樣 也可以避免很多程序員和UI設計師之間的爭執和矛盾。但是現 在大多說軟件企業的產品經理和開發項目經理沒有做到這一點 ,他們也根本不了解UI設計師和程序員的工作,也無法把握他 們的工作量,這樣無序的管理會造成很麻煩的後果。其實可以 建立一些合理的流程管理制度,就算企業沒有作為UI設計師也 可以自己起草一份適合自己和企業的“UI設計需求申請單”, 裡邊應該列出我們需要的“輸入”內容、工作時間、最終的“ 輸出”結果等等欄目(可以自己根據要求靈活決定)。這樣形 成一個有參與人、有依據、有存底的工作流程,出現問題或者 爭執的時候我們有據可依,這只是一個習慣性的東西因不同的 企業而議不一定都要建立需求單。在分模塊開發時期UI設計師 應該做的是,在模塊開發的前期做出產品每個模塊的效果demo (可以用圖片的形式表現)要求程序員按照demo的樣式進行模 塊開發,協助和監督程序員嚴格按照UI設計要求生成最終產品 ,把握各個模塊的統一,經常了解程序員的工作進展及時對不 合理或者難以實現的設計進行討論設計出新的方案。分模塊開 發時期的關鍵是“協助和監督程序員生成最終產品”。

四.測試時期的輸入和輸出:

軟件產品的測試會分為三個測試階段,第一個是分模塊開發完 成之後每一個模塊進行的單元測試;第二個是將各個單元集成 為一個整體的產品進行集成測試;第三個就是整個產品在交付 使用前進行的整體測試。在測試過程中UI設計師的任務相對會 輕鬆一些,我們只需要跟著測試人員走幾遍流程,如果在其中 發現沒有按照UI設計要求的部分及時要求改正就好了。我們還 會經常遇到客戶在測試過程中突然覺得那裡不合適需要修改,​​ 這也是最最頭疼的事情了,有的時候他們說的並不一定對,只 要我們設計的每一個步驟都有一定的道理能夠說服他們就一切 ok了。如果他們執意要修改設計方案,那麼我們沒辦法只能按 照客戶需求修改。但是如果前邊按照本文的流程走下來我想這 樣的可能性不大就算是修改也不會是大動干戈。在修改過程中 我們還是需要先做出效果圖,讓客戶確定再具體實施,這樣也 會避免很多麻煩的。測試時期的關鍵是“檢查整個產品發現問 題及時改正”。

如今軟件的越來越多的考慮到人的因素,“以人為本”的設計 理念貫穿了整個軟件產品開發的始終,因此軟件產品的UI設計 過程最重要的兩個部分就是行為和構造,也就是交互設計和界 面設計。上面我們按照軟件開發的四個階段,逐個的分析了每 個時期UI設計的任務。由此我們可以看出UI設計並不完全是一 個美術設計的過程,還有很重要的一個部分就是交互性和易用 性的設計。我們要時刻把自己放在軟件的用戶角度來考慮,設 計出最簡單易用,界面友好的軟件產品。

沒有留言:

張貼留言