程序員和用戶的差別是很明顯的,因此通過交互設(shè)計(jì)建立良好的溝通是非常需要的。
(一)交互設(shè)計(jì)師的側(cè)重點(diǎn)并不在程序的編碼實(shí)現(xiàn),而注重于用戶如何最好地與系統(tǒng)交互*作,在設(shè)計(jì)中重點(diǎn)需要考慮的是:* 系統(tǒng)易用性:并非每個(gè)用戶都是計(jì)算機(jī)的熟練用戶,面對隱藏的層和特殊設(shè)計(jì)的菜單可能會抓瞎,用戶不見得能明白雙擊左鍵能自動滾屏或者怎樣能讓自動滾屏停下來、直接看最下面的結(jié)果?交互設(shè)計(jì)師特別需要重視的就是系統(tǒng)的易用性。有條件的話,可以讓不同的陌生用戶從首頁開始*作,不給予任何提示和幫助,觀察用戶的上手和熟練程度,記錄并查找所有的陷阱和缺陷,加以改進(jìn)。
* 流程簡便:“簡單就是美”,在系統(tǒng)交互設(shè)計(jì)方面更是如此,如何用最少的*作,最明顯的提示和幫助,完成一項(xiàng)流程的*作是需要花大力氣進(jìn)行優(yōu)化的。
* 盲點(diǎn)測試:用戶的*作并不是嚴(yán)格的按照系統(tǒng)的提示順序進(jìn)行,也不一定會按照系統(tǒng)的提示要求去做,而程序員在設(shè)計(jì)的過程中是按照既定的邏輯進(jìn)行開發(fā)的,測試中也難免以自己的習(xí)慣*作,這時(shí)就可能出現(xiàn)盲點(diǎn),即系統(tǒng)存在未被測試到的狀態(tài)環(huán)境。編寫測試軟件或利用其他測試工具可以大大提高測試的可靠性。
例如一份表單正常提交以后,假如用戶利用歷史記錄后退,回到提交前的狀態(tài),這時(shí)候修改了提交內(nèi)容,又再一次提交,那么結(jié)果是什么呢?再比如,假如設(shè)計(jì)的彈出窗口的尺寸是700×500,且不可改變大小,隱藏滾動條,而用戶萬一使用640×480的分辨率,那么彈出的窗口中,用戶如何能點(diǎn)擊到最下面的按鈕?
* 出錯(cuò)及異常提示:凡是軟件都是有BUG的,因此對各種出錯(cuò)或異常狀態(tài)給予用戶一個(gè)友好的提示和幫助,并提示用戶大概是由于什么原因,那么用戶會愉快的多。
筆者遇到過一個(gè)用戶注冊系統(tǒng),用戶注冊后希望修改密碼,有的能做成功,而有些人怎么也改不了,檢查了很長時(shí)間才發(fā)現(xiàn)由于密碼設(shè)置的是不少于三位不大于八位,許多用戶密碼超過了八位,因此無法修改成功,但是由于沒有提示出錯(cuò)原因,所以用戶就不斷拼命地提交,最后只好憤怒地去投訴。
再例如發(fā)布信息的時(shí)候,可能會因?yàn)樘顚憰r(shí)間過長,提交時(shí)被系統(tǒng)拒絕數(shù)據(jù)丟失,那么用戶辛辛苦苦撰寫的內(nèi)容永遠(yuǎn)消失了,還有什么比這個(gè)更令用戶沮喪的嗎?在填寫的輸入部分給用戶一個(gè)時(shí)間提示,或允許后退找回剛才的內(nèi)容,至少可以讓用戶容易接受一些。
* 利用用戶環(huán)境測試?yán)糜脩舻?作環(huán)境進(jìn)行測試,用戶的服務(wù)器、網(wǎng)絡(luò)線路和客戶機(jī)也許跟開發(fā)環(huán)境差別巨大,用戶的機(jī)器配置、網(wǎng)絡(luò)環(huán)境對系統(tǒng)的要求是不一樣的。比如設(shè)計(jì)客戶端的APPLET時(shí)也許會因?yàn)榭蛻魴C(jī)的內(nèi)存不足而崩潰,也可能因?yàn)槲募^大,遠(yuǎn)程訪問時(shí)處理時(shí)間過長而響應(yīng)失敗,。
(二)Web的交互設(shè)計(jì)師需要掌握的技能主要是Javas cript、VBs cript、Dhtml、Flash等,還需要了解心理學(xué)、人因工程學(xué)、系統(tǒng)工程等方面的經(jīng)驗(yàn)和知識,認(rèn)真把握每個(gè)交互動作的合理性和可行性,這個(gè)交互也許是個(gè)鏈接,也可能是個(gè)表單、提示窗口或者是滾動條的拉動距離,檢查是否最優(yōu)化和最合理的方式。
舉個(gè)很簡單的例子,在鏈接列表過多出現(xiàn)翻頁的時(shí)候,程序員很自然地會將上一頁、下一頁的翻頁按鈕放在了最底下,但是列表很長的時(shí)候,用戶每次翻頁的時(shí)候都需要把滾動條拉到最下面才可以點(diǎn)擊到翻頁按鈕,用戶可能就會抱怨,明明知道在某一頁,卻每次要點(diǎn)擊后拉滾動條尋找翻頁按鈕,而如果將翻頁按鈕在列表的上面也放一條,并且設(shè)置直接跳轉(zhuǎn)到某頁的按鈕,則大大減輕了用戶的工作量,類似的例子在我們的設(shè)計(jì)中屢見不鮮。
三:程序開發(fā)是系統(tǒng)的基石程序員進(jìn)行編碼,構(gòu)成了系統(tǒng)的基礎(chǔ)。在進(jìn)行系統(tǒng)分析和軟件建模以后,程序開發(fā)便進(jìn)入實(shí)質(zhì)性的過程。但是在程序員動手之前不單需要和系統(tǒng)分析員打交道,還要和界面工程師,交互設(shè)計(jì)師,業(yè)務(wù)流程分析員以及客戶交流,除了理解程序邏輯以外,同時(shí)需要理解界面設(shè)計(jì)和交互設(shè)計(jì)的要求,使得程序開發(fā)成功的可能性大大提高,達(dá)到事半功倍的效果。
隨著網(wǎng)絡(luò)開發(fā)技術(shù)的日益發(fā)展和用戶需求的不斷增長,系統(tǒng)開發(fā)中的編碼工作日益繁重,不僅僅需要考慮性能和功能的實(shí)現(xiàn),而且需要考慮今后的維護(hù)和擴(kuò)展,需要考慮到系統(tǒng)的集成和穩(wěn)定,許多稍微復(fù)雜一些的系統(tǒng)開發(fā)便不再是一個(gè)人能獨(dú)立完成的,因此程序開發(fā)需要遵照嚴(yán)格規(guī)范的開發(fā)過程。
* 文檔規(guī)范:軟件即文檔。
良好的文檔習(xí)慣是系統(tǒng)開發(fā)極其重要的,文檔是程序的一部分,程序員花一定時(shí)間進(jìn)行文檔編寫是份內(nèi)的工作。具備完整的文檔記錄,對于系統(tǒng)今后的二次開發(fā)、查錯(cuò)、升級具有重大的作用??梢哉f即使代碼全部扔掉,只要文檔完整,很快就可以再造一個(gè)系統(tǒng)出來,而只保留了代碼,缺乏文檔的時(shí)候,就像被抽了脊梁的標(biāo)本,再難站起來恢復(fù)原樣。
* 編碼規(guī)范:編碼規(guī)范包含了程序排版、注釋、命名、可讀性、變量、程序效率、質(zhì)量保證、代碼編譯、代碼測試和版本控制等等注意事項(xiàng)。
程序員最常見的問題之一:“別人寫的代碼看不懂,與其改寫不如重寫”。基本上都是沒有按照編碼規(guī)范開發(fā)的緣故。所以我們經(jīng)常聽說某個(gè)程序員離職以后,他所寫的那些模塊就沒法維護(hù)和管理了。
* 代碼復(fù)用:代碼復(fù)用是程序員的夢想,也是系統(tǒng)成熟度的重要標(biāo)志,關(guān)于代碼復(fù)用方法的討論不在本文之列,但是做為代碼復(fù)用是程序員走向成熟和提升的必經(jīng)之路。
* 測試測試再測試:筆者在軟件工程的討論會上,微軟的一位項(xiàng)目經(jīng)理在介紹微軟如何保證產(chǎn)品質(zhì)量時(shí)說:“微軟質(zhì)量保證的秘密就是:測試測試再測試!”在IE4.0的開發(fā)小組中,200名開發(fā)程序員意外還有200多名測試工程師,而且測試工程師的水平甚至高于開發(fā)工程師。測試是系統(tǒng)質(zhì)量最直接有效的手段。在國內(nèi)的開發(fā)環(huán)境達(dá)到這樣的投入和水平顯然是不太現(xiàn)實(shí)的,但是盡可能提高測試環(huán)境和加強(qiáng)測試管理,是程序員和測試工程師共同的方向。
四:本階段的重點(diǎn)工作:在這個(gè)階段是整個(gè)項(xiàng)目組參與角色最多,也是協(xié)作最密切最難控制的過程,筆者認(rèn)為做為項(xiàng)目經(jīng)理特別需要關(guān)注以下問題:1:建立項(xiàng)目小組的溝通渠道:溝通是項(xiàng)目小組具有密切協(xié)作形成凝聚力的最重要的手段,在項(xiàng)目開發(fā)過程隨著各個(gè)角色的工作進(jìn)展,沖突和矛盾是必不可少的,無論是通過論壇、郵件、會議、口頭還是私下溝通,項(xiàng)目管理人員有責(zé)任和義務(wù)建立小組通暢及時(shí)的溝通渠道,根據(jù)有經(jīng)驗(yàn)的HR經(jīng)理分析:有效的溝通應(yīng)該是在問題發(fā)生的48小時(shí)之內(nèi),否則解決的效率會降低75%。
2:建立文檔規(guī)范和管理辦法,借助PVCS、WINCVS等相關(guān)工具建立整個(gè)項(xiàng)目小組的文檔;2:建立BUG報(bào)告系統(tǒng),在內(nèi)部預(yù)先創(chuàng)建測試環(huán)境,將BUG盡可能早地消除掉。
3:測試和文檔工程師的工作自始自終地貫穿著項(xiàng)目開發(fā)過程,這在以后的文章中會繼續(xù)介紹。
五:總結(jié)* 溝通是本階段最需要注意的問題;* 建立文檔管理體系;* 建立測試環(huán)境和測試標(biāo)準(zhǔn);* 界面設(shè)計(jì)是為用戶設(shè)計(jì)的,不是用來自己欣賞的藝術(shù)品;* 為用戶著想,人性化設(shè)計(jì)是項(xiàng)目成功的保證;* 代碼復(fù)用,對象化模塊化設(shè)計(jì)是界面設(shè)計(jì)、交互設(shè)計(jì)和程序開發(fā)共同追求的目標(biāo)。
作者:九點(diǎn)
{完}