現在我們的軟件產品存在的一些問題有技術方面的問題,但是更多的問題來源于各個部門、各個項目小組的之間的配合。我們現有的開發流程一般都是由市場部門提出客戶需求,產品設計人員提出產品設計報告,開發部門設計開發計劃,由各個小組分別開發一個模塊,最后整合成為一個完整的軟件產品。在這些流程之間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設計并不完全是一個美術設計的過程,還有很重要的一個部分就是交互性和易用性的設計。我們要時刻把自己放在軟件的用戶角度來考慮,設計出最簡單易用,界面友好的軟件產品。
推薦設計
優秀海報設計精選集(8)海報設計2022-09-23
充滿自然光線!32平米精致裝修設計2022-08-14
親愛的圖書館 | VERSE雜誌版版式設計2022-07-11
生活,就該這麼愛!2022天海報設計2022-06-02
最新文章
GV風險投資公司網頁UI設計UI設計2023-05-04
銀行APP UI/UX設計欣賞UI設計2023-04-23
arty移動APP UI設計UI設計2022-05-25
UI交互和動態展示案例(4UI設計2022-05-25