南通科迅教育老師提醒你;
說起產(chǎn)品UI設(shè)計通常的認(rèn)識就是“圖形界面的設(shè)計”而產(chǎn)品的交互設(shè)計往往被忽略!
一個好的交互設(shè)計對產(chǎn)品的成功起著很關(guān)鍵的作用。UI所做的就是用戶*接觸到的東西,也是一般性的用戶*接觸到的東西。用戶對于界面視覺效果和軟件操作方式的易用性的關(guān)心,要遠(yuǎn)遠(yuǎn)大于他對底層到底用什么樣的代碼去實(shí)現(xiàn)的關(guān)心。如果說程序是一個人的肌肉和骨骼,那么UI設(shè)計就是人的外貌和品格!都是一個成功軟件產(chǎn)品必不可少的重要組成部分!對我而言程序懂得不多所以只是從UI設(shè)計與軟件產(chǎn)品整體的關(guān)系和如何才能使軟件產(chǎn)品得到*的UI設(shè)計角度來談。
現(xiàn)在我們的軟件產(chǎn)品存在的一些問題有技術(shù)方面的問題,但是更多的問題來源于各個*、各個項(xiàng)目小組的之間的配合。我們現(xiàn)有的開發(fā)流程一般都是由市場*提出客戶需求,產(chǎn)品設(shè)計人員提出產(chǎn)品設(shè)計報告,開發(fā)*設(shè)計開發(fā)計劃,由各個小組分別開發(fā)一個模塊,*整合成為一個完整的軟件產(chǎn)品。在這些流程之間UI設(shè)計應(yīng)該參與那一個部分,每一個部分應(yīng)該做到什么地步才可以使產(chǎn)品得到*的UI設(shè)計效果呢?下面我們會在每一個部分具體分析。
首先分析一下現(xiàn)在的問題所在,在一些軟件業(yè)比較發(fā)達(dá)的*軟件產(chǎn)品的UI設(shè)計過程貫穿了軟件開發(fā)的自始至終,而且是必不可少的。而在*產(chǎn)品UI設(shè)計并沒有被廣泛接受,就算是已經(jīng)有了UI設(shè)計師的一些企業(yè)也沒有對產(chǎn)品的UI有著足夠的重視,一般來講他們大都會把重點(diǎn)放在如何使用代碼實(shí)現(xiàn)所需要的功能,在我看來這只是一個成功軟件產(chǎn)品的一個部分。一個優(yōu)秀軟件產(chǎn)品的開發(fā)過程應(yīng)該是由四個部分組成:
1.軟件產(chǎn)品的設(shè)計(業(yè)務(wù)建模)
2.系統(tǒng)的設(shè)計(技術(shù)建模)
3.分單元的開發(fā)(把軟件各個部分拆分分單元編寫代碼)
4.測試(分為單元測試、系統(tǒng)集成測試和產(chǎn)品功能測試),這些是由軟件研發(fā)*做的工作。
除去以上軟件開發(fā)過程的四個部分還有用戶需求和用戶驗(yàn)收測試,這兩個過程是由市場*和產(chǎn)品用戶一起完成。所以說用代碼實(shí)現(xiàn)產(chǎn)品功能(coding過程)只是軟件開發(fā)的一個步驟。現(xiàn)在我們回到UI設(shè)計的角度來看,作為UI設(shè)計人員我們需要全程參與到軟件開發(fā)過程中,而不只是在某一個步驟參與,現(xiàn)在在大多數(shù)軟件企業(yè)里UI設(shè)計師只是在產(chǎn)品的coding過程的時候才實(shí)質(zhì)性的參與到軟件開發(fā)過程里,而在其它幾個步驟里只是參加甚至根本沒有參加(在這里我要強(qiáng)調(diào)“參與”和“參加”是兩個詞的不同概念,“參與”指的是完全加入到開發(fā)行列開始進(jìn)入設(shè)計階段,而“參加”指的只是旁聽會議或者提出一些簡單的意見并沒有開始進(jìn)入設(shè)計階段),這樣就會大大降低軟件產(chǎn)品的開發(fā)效率使開發(fā)成本成倍上升甚至導(dǎo)致整個產(chǎn)品的不成功!這并不是危言聳聽,下面我們分析一下在一個軟件產(chǎn)品的開發(fā)過程中UI設(shè)計應(yīng)該怎么做、做到什么地步才能避免上邊提到的那些問題?
下面我會根據(jù)軟件開發(fā)的過程解釋上邊的問題,剛才我提過軟件開發(fā)過程的幾個步驟:
1.產(chǎn)品建模
2.技術(shù)建模
3.分模塊開發(fā)
4.測試,那么我們也分為這四個部分進(jìn)行討論:
一.產(chǎn)品建模時期:
我們首先來了解一下“輸入”和“輸出”,在UI設(shè)計里是很重要的兩個概念,經(jīng)常會有人過來對我說“我們有一個軟件產(chǎn)品需要美化一下”然后再也沒有什么深入的解釋了,僅僅這句話我的工作就要開始了,然而這個軟件是給誰用的?是干什么的?我們卻一無所知!成功的UI設(shè)計首先要有完整的“輸入”,怎么才能叫做完整的“輸入”呢?也就需要UI設(shè)計師從整個軟件產(chǎn)品的策劃階段就開始介入,在產(chǎn)品用戶(也就是客戶)向市場*或者產(chǎn)品*提出產(chǎn)品需求的時候就要開始參與到產(chǎn)品策劃開發(fā)過程中來,這一部分對于UI設(shè)計師而言就是*個輸入階段,并且在這個階段里UI設(shè)計師也需要提出一些對產(chǎn)品交互設(shè)計的意見,以便產(chǎn)品*在做產(chǎn)品設(shè)計的時候更多的考慮到產(chǎn)品的交互性和功能的簡單表現(xiàn)原則,有很多軟件在設(shè)計階段就被加入了許多并不是用的附加功能,其實(shí)一個好的軟件設(shè)計就是要用最簡單的結(jié)構(gòu)實(shí)現(xiàn)用戶的想法,一些可有可無的功能看上去很花哨往往會影響用戶的判斷能力,這些就是產(chǎn)品優(yōu)化的一些概念了。
在此我需要簡單的提一下如果想要深入研究可以看一些有關(guān)于產(chǎn)品優(yōu)化的書籍甚至是心理學(xué)的書籍,有很多人認(rèn)為軟件的優(yōu)化就是代碼的優(yōu)化(用最少的代碼實(shí)現(xiàn)產(chǎn)品功能),在我看來這只是程序的優(yōu)化是針對程序員而言的而不是整個軟件產(chǎn)品的優(yōu)化,產(chǎn)品優(yōu)化包含了交互設(shè)計在現(xiàn)在的多數(shù)軟件企業(yè)沒有專門做這一部分的交互設(shè)計師所以往往這一部分被忽略,我認(rèn)為這一部分應(yīng)該又UI設(shè)計師承擔(dān)起來,從文章的開頭我就說過UI設(shè)計不只是圖形界面的設(shè)計,就算是有企業(yè)里邊有這樣的優(yōu)化人員或者交互設(shè)計師他們也要和UI設(shè)計師一起配合完成產(chǎn)品交互設(shè)計,作為UI設(shè)計師產(chǎn)品的交互性和易用性是在做設(shè)計的時候必須考慮的!
言歸正傳,產(chǎn)品設(shè)計人員經(jīng)常不會過多考慮簡單易用原理也就是產(chǎn)品出來用什么樣的組合形式體現(xiàn)給用戶,這也是UI設(shè)計師考慮最多的事情,所以UI設(shè)計師一定要在產(chǎn)品建模期間參與設(shè)計,給產(chǎn)品設(shè)計師一些意見。作為一名優(yōu)秀的UI設(shè)計師我們還要在了解了產(chǎn)品的需求之后更深入了解這個產(chǎn)品的使用環(huán)境和用戶群體的使用習(xí)慣。我們還需要了解市場上的同類軟件產(chǎn)品的設(shè)計方案,研究他們的優(yōu)缺點(diǎn),以便在我們設(shè)計的時候吸取它們的長處避免它們的錯誤。
在產(chǎn)品建模之后一般的都會由產(chǎn)品設(shè)計人員給客戶做一次功能設(shè)計講解,往往這樣的講解只是文字性質(zhì)的需要讓客戶想象著理解,這就會造成很大的隱患有的客戶根本無法理解你的講解甚至對這樣的講解根本不認(rèn)真聽,因?yàn)樗麄兏静欢谟懻撨^程中他們經(jīng)常會同意產(chǎn)品設(shè)計人員的一切設(shè)計想法但是產(chǎn)品測試的時候他們又會提出種種不滿意,我想這是一般的軟件公司都會遇到的也是最最頭疼的事情,但這并不能怪客戶我說過客戶只會關(guān)心視覺效果和軟件的操作而并不會去關(guān)心我們是怎么實(shí)現(xiàn)這一切的。這種情況帶來的直接后果就是產(chǎn)品的反復(fù)修改開發(fā)成本成倍上升,怎么避免呢?這就要靠UI設(shè)計師了,俗話說“眼見為實(shí),耳聽為虛”,所以需要UI設(shè)計師做出一個產(chǎn)品整體效果的demo。這個demo用圖片的形式表現(xiàn)就可以,我們只需要將要體現(xiàn)的產(chǎn)品界面做一個拼湊就可以了,因?yàn)檫@并不是產(chǎn)品的*樣子,只是協(xié)助產(chǎn)品設(shè)計人員給客戶講解產(chǎn)品設(shè)計。
產(chǎn)品建模時期UI設(shè)計師要了解客戶的要求想法和產(chǎn)品設(shè)計人員對產(chǎn)品功能的要求深入了解產(chǎn)品,采集用戶的使用需求、使用環(huán)境和使用習(xí)慣,了解市場同類產(chǎn)品的設(shè)計分析它們的優(yōu)缺點(diǎn)。協(xié)助產(chǎn)品設(shè)計人員完成產(chǎn)品建模過程并制作產(chǎn)品展示demo模擬用戶對主要功能的操作過程和界面呈現(xiàn),生成交互原型(基本上產(chǎn)品的交互性和易用性問題都需要在產(chǎn)品建模的時期解決)。如果時間允許我們甚至可以提出一份“UI設(shè)計分析報告”,這份報告可以附在產(chǎn)品設(shè)計說明后,更有效的幫助客戶了解我們的產(chǎn)品設(shè)計并且?guī)椭_發(fā)人員更好的遵循UI的整體要求來完成開發(fā)工作。這個時期的關(guān)鍵是“交互設(shè)計”。
二.技術(shù)建模時期:000
在這個時期作為UI設(shè)計師我們已經(jīng)了解了軟件產(chǎn)品的功能需求并且拿到了一份產(chǎn)品設(shè)計人員的產(chǎn)品設(shè)計說明,可以進(jìn)入界面樣式的設(shè)計過程了。
這個時候我們應(yīng)該考慮更多的應(yīng)該是產(chǎn)品的整體風(fēng)格和界面的設(shè)計,通常我們也會做出幾份方案給客戶選擇。有些客戶會要求產(chǎn)品遵循一個整體的VI設(shè)計標(biāo)準(zhǔn),那么我們就需要按照一個整體的已定的風(fēng)格去設(shè)計軟件的界面,要與客戶公司的企業(yè)形象吻合。在這個時期軟件的UI設(shè)計進(jìn)入到了美術(shù)設(shè)計階段,我們需要制定整個軟件的風(fēng)格,塑造軟件的整體形象,并且具體的描述每一個界面中的元素和布局、文字字體等信息。
在這個階段我也不應(yīng)過多的說什么,主要是每個UI設(shè)計師各自發(fā)揮你們的藝術(shù)專長用最簡潔、最漂亮的界面表現(xiàn)軟件產(chǎn)品。需要注意的就是在我們設(shè)計整體風(fēng)格的時候一定要深入了解這個產(chǎn)品的理念,看看它是干什么用的。不同的產(chǎn)品要有不同的風(fēng)格,這里邊有很多的細(xì)節(jié)注意,不同的產(chǎn)品、同類的產(chǎn)品不同的內(nèi)容、不同的傳播介質(zhì),這些都會決定UI設(shè)計的風(fēng)格。
1.不同的產(chǎn)品:比如一個游戲產(chǎn)品就需要將界面做的花哨一些或者用大的圖片充斥;如果要是一個應(yīng)用軟件就需要突出使用方便和強(qiáng)大的功能設(shè)計要簡潔。
2.同類不同的內(nèi)容:比如一個可愛的游戲產(chǎn)品(像是卡通類游戲)就需要將界面做的活潑生動可愛一點(diǎn);如果是一個角色扮演的戰(zhàn)斗類游戲(像是槍戰(zhàn)闖關(guān)類游戲)就要做的酷一點(diǎn)深沉一些。
3.不同的傳播介質(zhì):我們要做的軟件產(chǎn)品有的需要在網(wǎng)絡(luò)上傳播那么就需要我們考慮到網(wǎng)絡(luò)速度的問題;有的就是利用光盤當(dāng)作介質(zhì)那么這樣的軟件就可以做一些比較花哨的效果。
所以說不同的產(chǎn)品還需要單獨(dú)考慮,這也需要UI設(shè)計師多多了解產(chǎn)品,保持與客戶交流。還需要重點(diǎn)注意的就是我們在做圖形化設(shè)計的過程中千萬要貫徹在前一個階段做好的交互設(shè)計,始終注意產(chǎn)品的交互性和易用性。在設(shè)計過程中我們一定要做出每種結(jié)構(gòu)每一個步驟的效果圖,不能只提供圖標(biāo)、按鈕、背景圖等圖片,這樣的話程序員根本不知道往那放這些東西,在這個時期我們就要最終確定軟件界面的呈現(xiàn)形式。
技術(shù)建模一般是由高級程序員完成的,他們會將整個軟件開發(fā)分為一個一個功能模塊,分配給一個一個的開發(fā)小組。但是這些負(fù)責(zé)技術(shù)建模的高級程序員考慮更多的往往是如何將整個設(shè)計用代碼實(shí)現(xiàn)、怎么才能更有效的復(fù)用以前已有的模塊等等,而不是軟件是什么模樣會有什么樣的風(fēng)格,所以作為UI設(shè)計師我們必須主動出擊,多多和他們交流以保證我們的想法能夠完整的實(shí)現(xiàn),如果有技術(shù)實(shí)現(xiàn)的問題我們還要及時做出修改。
有時候我們還需要根據(jù)客戶或者產(chǎn)品的特定需求做一些延伸性的設(shè)計(也叫UI產(chǎn)品設(shè)計的外延),包括:軟件的安裝導(dǎo)航界面、產(chǎn)品的演示宣傳動畫、一些附帶的桌面壁紙或者屏幕保護(hù)、代表軟件的卡通小精靈、有時還會被要求設(shè)計軟件的logo和廣告banner等等。技術(shù)建模時期的關(guān)鍵是“風(fēng)格和界面設(shè)計”。
三.分模塊開發(fā)時期:
這個時期軟件開發(fā)過程進(jìn)入實(shí)現(xiàn)階段,也是需要人力最多的時期,這樣就會分散UI設(shè)計師的精力。軟件會被切分為若干個小的模塊進(jìn)行代碼編寫,*整合成一個完整的軟件產(chǎn)品。對于一個程序員來講他們大多根本不會考慮到產(chǎn)品應(yīng)該是什么樣子應(yīng)該有什么整體風(fēng)格,他們所考慮的只是如何用代碼實(shí)現(xiàn)設(shè)計的要求,而且在現(xiàn)在的軟件企業(yè)多都實(shí)現(xiàn)了模塊的復(fù)用,這樣會大大節(jié)約人力成本,那么程序員只是對原有模板進(jìn)行修改使之適應(yīng)新的軟件產(chǎn)品,這樣就會對UI設(shè)計的最終貫徹和實(shí)現(xiàn)帶來很大的麻煩。
做出的每一個模塊雖然已經(jīng)能夠使用但是都是“各自為政”沒有統(tǒng)一,因此我們也需要主動的協(xié)助和監(jiān)督程序員完整的實(shí)現(xiàn)UI設(shè)計的要求,如果有技術(shù)無法實(shí)現(xiàn)的問題需要及時溝通改正設(shè)計方案。有的時候有些模塊需要有單獨(dú)的風(fēng)格,比如一些已有的軟件產(chǎn)品需要集合到某一個新的產(chǎn)品中去,這樣就會加大了設(shè)計師的設(shè)計難度,我們必須要在保證產(chǎn)品整體風(fēng)格不變的情況下將原有產(chǎn)品的設(shè)計風(fēng)格集合進(jìn)去,使之更加適合新的產(chǎn)品表現(xiàn)形式。
如果我們?nèi)耘f保持原有產(chǎn)品的風(fēng)格那么當(dāng)各個模塊集合起來之后往往會使新的產(chǎn)品感覺很松散,進(jìn)入每一個功能都會覺得是另外一個軟件,使人對軟件的印象不深刻。在這個階段我們還是要主動一些,跟進(jìn)各個模塊界面的實(shí)現(xiàn)?,F(xiàn)在很多軟件企業(yè)都存在很多UI設(shè)計師和程序員的協(xié)作問題,不是程序員做不到UI設(shè)計的要求,就是UI設(shè)計師堅持一些自己的想法不能改動,還有的時候經(jīng)常會有人過來沒頭沒尾的說幫我做點(diǎn)東西吧!當(dāng)軟件集成到一起再一看,就是很多不同風(fēng)格的東西堆砌到一起,從頭到尾都不舒服,領(lǐng)導(dǎo)或者客戶看了以后極度不滿狂批一陣,*得出結(jié)果UI設(shè)計做的不到位。
有人說UI設(shè)計師就要背著軟件不成功的黑鍋,因?yàn)槿藗兏究床灰姶a怎么寫的,功能是怎么實(shí)現(xiàn)的,他們只知道對軟件的樣子和使用進(jìn)行評論。讓一個用戶評論一個軟件他們只會說這個軟件好用看上去也不錯挺漂亮的,但是做為一個普通用戶決不會有人說這個軟件程序?qū)懙牟诲e。
這么一看我們會聯(lián)想到現(xiàn)在軟件開發(fā)之中主要的沖突在UI設(shè)計師和程序員之間,其實(shí)這只是表面的表現(xiàn)形式。實(shí)質(zhì)上這個現(xiàn)象體現(xiàn)了現(xiàn)在軟件企業(yè)的一個通病就是這個開發(fā)組之間的協(xié)作關(guān)系混亂,程序員和UI設(shè)計師之間是平級協(xié)作關(guān)系,程序員是不會對產(chǎn)品負(fù)責(zé)的,這樣看來UI設(shè)計師只應(yīng)該聽項(xiàng)目經(jīng)理的,無論對設(shè)計做什么樣的改動或者增添什么樣的東西,都應(yīng)該由開發(fā)項(xiàng)目經(jīng)理和產(chǎn)品經(jīng)理協(xié)商之后決定,只有他們可以對最終的產(chǎn)品負(fù)責(zé)。這樣也可以避免很多程序員和UI設(shè)計師之間的爭執(zhí)和矛盾。
但是現(xiàn)在大多說軟件企業(yè)的產(chǎn)品經(jīng)理和開發(fā)項(xiàng)目經(jīng)理沒有做到這一點(diǎn),他們也根本不了解UI設(shè)計師和程序員的工作,也無法把握他們的工作量,這樣無序的管理會造成很麻煩的后果。其實(shí)可以建立一些合理的流程管理制度,就算企業(yè)沒有作為UI設(shè)計師也可以自己起草一份適合自己和企業(yè)的“UI設(shè)計需求申請單”,里邊應(yīng)該列出我們需要的“輸入”內(nèi)容、工作時間、最終的“輸出”結(jié)果等等欄目(可以自己根據(jù)要求靈活決定)。這樣形成一個有參與人、有依據(jù)、有存底的工作流程,出現(xiàn)問題或者爭執(zhí)的時候我們有據(jù)可依,這只是一個習(xí)慣性的東西因不同的企業(yè)而議不一定都要建立需求單。在分模塊開發(fā)時期UI設(shè)計師應(yīng)該做的是,在模塊開發(fā)的前期做出產(chǎn)品每個模塊的效果demo(可以用圖片的形式表現(xiàn))要求程序員按照demo的樣式進(jìn)行模塊開發(fā),協(xié)助和監(jiān)督程序員嚴(yán)格按照UI設(shè)計要求生成最終產(chǎn)品,把握各個模塊的統(tǒng)一,經(jīng)常了解程序員的工作進(jìn)展及時對不合理或者難以實(shí)現(xiàn)的設(shè)計進(jìn)行討論設(shè)計出新的方案。分模塊開發(fā)時期的關(guān)鍵是“協(xié)助和監(jiān)督程序員生成最終產(chǎn)品”。
四.測試時期的輸入和輸出:
軟件產(chǎn)品的測試會分為三個測試階段,*個是分模塊開發(fā)完成之后每一個模塊進(jìn)行的單元測試;第二個是將各個單元集成為一個整體的產(chǎn)品進(jìn)行集成測試;第三個就是整個產(chǎn)品在交付使用前進(jìn)行的整體測試。在測試過程中UI設(shè)計師的任務(wù)相對會輕松一些,我們只需要跟著測試人員走幾遍流程,如果在其中發(fā)現(xiàn)沒有按照UI設(shè)計要求的部分及時要求改正就好了。
我們還會經(jīng)常遇到客戶在測試過程中突然覺得那里不合適需要修改,這也是最最頭疼的事情了,有的時候他們說的并不一定對,只要我們設(shè)計的每一個步驟都有一定的道理能夠說服他們就一切ok了。如果他們執(zhí)意要修改設(shè)計方案,那么我們沒辦法只能按照客戶需求修改。但是如果前邊按照本文的流程走下來我想這樣的可能性不大就算是修改也不會是大動干戈。在修改過程中我們還是需要先做出效果圖,讓客戶確定再具體實(shí)施,這樣也會避免很多麻煩的。測試時期的關(guān)鍵是“檢查整個產(chǎn)品發(fā)現(xiàn)問題及時改正”。
如今軟件的越來越多的考慮到人的因素,“以人為本”的設(shè)計理念貫穿了整個軟件產(chǎn)品開發(fā)的始終,因此軟件產(chǎn)品的UI設(shè)計過程最重要的兩個部分就是行為和構(gòu)造,也就是交互設(shè)計和界面設(shè)計。上面我們按照軟件開發(fā)的四個階段,逐個的分析了每個時期UI設(shè)計的任務(wù)。由此我們可以看出UI設(shè)計并不完全是一個美術(shù)設(shè)計的過程,還有很重要的一個部分就是交互性和易用性的設(shè)計。我們要時刻把自己放在軟件的用戶角度來考慮,設(shè)計出最簡單易用,界面友好的軟件產(chǎn)品。
善于使用繼承,讓美工團(tuán)隊(duì)去設(shè)計窗體的界面,程序團(tuán)隊(duì)只去實(shí)現(xiàn)窗體功能