2013年1月22日 星期二

『細節決定互動設計的成敗』讀書筆記

        『開發軟體不能只顧寫程式,更大的挑戰是如何設計良好的操作界面

        現在做產品已經不是過去『功能繁多強大』就可以打天下的時代了,橫空出世的新名詞『UX ( User Experience ) 使用者體驗』已經成為真正讓消費者買單的關鍵因素。科技業如今已步上餐飲業的後塵一樣:過去人窮的時候,只要『便宜又大碗』可以填飽肚子的功能性思維,在今日人人都體重過胖的情況下,精緻美味氣氛佳的用餐體驗才是人氣大排長龍的王道。


        然而軟體業的『UX 使用者體驗』雖然成為熱門名詞,但是老實說才只是剛剛起步罷了,離達到處處為使用者貼心設計的體驗還有非常遠的路要走,因為其中佔了關鍵成敗因素的角色 - 軟體工程師,絕大部份都只熟悉技術,而對需要顧及心理層面需求的使用者感受的知識,非常非常匱乏。甚至,為了自己開發方便,可以到了一個幾乎不在乎的無良心態即使產品經理設計出好的使用體驗,工程師都可以技術性理由:做不到。而直接打回票)。

        這本書,不是寫給沒有技術背景的產品經理或美工看的,而是『寫給軟體工程師看的』使用者介面設計的好書!為何我認為這是給開發技術人員看的 UX 書籍呢?因為書中所舉的例子很多軟體的使用範例都是只有技術開發人員才有體驗,例如:Visual Studio(出現率極高、Eclipse、Registry Editor。


        當然,還是有大量屬於生活經驗的例子來闡述一些設計原則。

        這雖然是本探討使用者介面和使用體驗的書籍,但作者本身的技術的深厚實力也令我折服,我也算資深軟體工程師,沒想到還能從本書中攝取到過去不知道的工具操作與開發技巧,還有一些底層知識(可以想見,本書若是給沒有技術背景的產品經理或視覺人員閱讀,會有多少障礙)。

        要把這本書的精華截取實在是太困難了,因為正如書名所說的『細節』:魔鬼都藏在細節之中。把自己想像成追求異性的過程來追求市場上的消費者,這過程沒有什麼簡單的大方向做依循,就是靠點點滴滴很多細微的東西讓對方感受到貼心、窩心。而要做到這件事,除了下面我摘要出來的筆記外,就是閱讀、參訪大量大量⋯⋯極大量的例子去深深體會

        所以,對於想要涉獵使用者體驗相關知識的工程師,本書絕對值得細細研讀!

        我的筆記摘要如下(藍色標注出我個人認為比較經常性被忽略的項目):

易學易用篇

  1. 如何使界面讓使用者一看就懂?
    採用比擬手法
    模型匹配原則:心理模型(真實需求的理解)、實現模型(資料結構)、系統模型(實作方式
    利用預設用途設計出能夠表明其用法的界面
    一致性
    自然匹配:介面呈現方式與生活經驗概念一致

  2. 如何讓軟體一學就會?
    直接操控
    幫助使用者找到功能在哪裡
    就近原則
    對稱方法進行對稱操作
    功能進行恰當的分類與組織
    使用者能夠從介面上看到軟體提供的功能

  3. 如何幫使用者探索和嘗試?
    所有的功能和操作盡可能列在功能表系統中
    讓使用者執行某個操作前先知道它的效果:提供預覽
    使用者可以復原動作
    讓使用者可以把狀態恢復到預設值
    執行具有破壞性的操作前要求使用者確認

  4. 如何設計說明系統?
    應具備的內容:入門與學習指南、操作指南、故障排除、參考手冊、術語解釋
    表達方式的選擇
    具體例子幫助使用者理解
    介質的選擇:電子版還是書籍

  5. 如何設計一個優秀的精靈界面?
    盡可能顯示使用者在流程中當前的位置
    步驟個數和資訊量的設計
    避免顯示無用的圖片
    精靈結束前,讓使用者確認輸入的內容

  6. 如何幫助使用者高效率完成任務?
    支援批次處理操作
    支援巨集命令操作
    支援命令列方式
    增加抽象層:套用主題、風格、角色的群組概念
    提高常用操作的效率
    賦予使用者製造專用工具的能力

  7. 如何讓滑鼠操作效率更高?
    FITTS 定律:時間 (t) = 經驗參數a + 經驗參數b *log2 ( 距離 / 目標大小 + 1 )
    縮短當前位置到目標區域的距離、增加目標大小以縮短定位時間

  8. 哪些功能應當由軟體自動執行?
    防止使用者忘記做某事
    免去使用者必須或很可能要執行的操作
    幫助使用者執行重複性和機械性的操作
    免去使用者不會使用的操作
    自適應

  9. 如何讓介面適應使用者的操作習慣?
    被動調整策略
    主動自我調整策略
    主動自我調整策略的應用範圍:什麼操作、涉及什麼物件與資料、何時發生、哪裡發生
    主動自我調整策略的實現:使用者識別、搜集相關資料並據此分析使用者的操作特點、對介面進行調整
    主動自我調整策略的缺點:應用範圍有限,開發難度高
    主動自我調整策略的最新發展方向:根據其他使用者的操作行為來主動地進行自我調整、介於主動自我調整和被動自我調整之間的混合策略

錯誤處理篇

  1. 如何減少使用者在操作軟體時出現錯誤?
    讓使用者能有效地看出或知道如何正確操作
    採用限制因素防止使用者出現錯誤
    減少混淆
    利用回饋來讓使用者看到操作是否正確
    用某種方式提醒使用者有可能出錯
    降低靈活性
    向使用者提供工具,讓他們自己設定限制因素以防止錯誤操作
    克服『模式現象』受狀態影響,同樣的操作產生不同的結果的影響:有害模式和無害模式、模式產生的根源和產品設計如何處理

  2. 如何設計錯誤資訊?
    不要只告訴使用者操作失敗
    不要只給錯誤代碼,應給予錯誤代碼意義
    不要在錯誤資訊中使用使用者無法理解的術語
    錯誤原因盡可能明確
    錯誤資訊要具有建設性,要讓使用者看出怎樣才是正確
    不要秀出誤導性的錯誤資訊
    向使用者提出解決問題的建議

互動細節篇

  1. 如何減少使用者的等待感?
    使用某種回饋機制來讓使用者看到操作進行的進度和狀態
    讓使用者以漸進方式得到處理結果
    讓使用者在等待的過程中有事可做,分散注意力

    減低使用者的期望值

  2. 如何克服短時記憶局限性對於介面的影響?
    分割:長資料分割為較容易記憶的短資料組,例如信用卡號每四位一組
    由軟體傳送資訊,消除使用者記憶的必要性
    讓使用者可以一直在螢幕上看到不易記住的資訊

  3. 如何減少人們在使用軟體時的長時記憶負擔?
    將需要記憶的資訊在介面上顯示出來,讓使用者看到
    用識別替代記憶:掌握關鍵特徵即可找到需要的資料,如 Intellisense
    利用使用者已掌握的知識,不要求使用者記憶新的東西
    讓電腦幫助使用者找到那些難以記憶的內容
    讓使用者自己幫助自己記憶:書籤、我的最愛、便利貼
    利用規律或規則減少所需記憶的資訊

  4. 如何充分利用螢幕空間來顯示更多內容?
    自動分時處理,輪流或滾動顯示
    僅在滑鼠經過時顯示視窗
    利用下拉式控制項減少對螢幕的佔用
    抽屜式介面(折疊
    標籤式介面(切換
    去掉毫無意義的圖片
    全螢幕顯示

  5. 如何吸引使用者的注意力?
    視覺手段吸引使用者的注意力:顏色、字體、顯示位置、閃爍和動畫
    聲音吸引使用者的注意力
    振動方式吸引使用者的注意力

  6. 回應時間多長才是合適的?
    使用者的期望:對產品的熟悉程度、影響忍耐性的其他特點、操作頻繁程度和重複性
    產品使用環境的要求
    軟體的使用性質
    使用者是否等待某個操作的結果來繼續其他事情
    回應時間對使用者的影響
    回應時間定量分析的三大門檻:0.1秒、1秒、10秒
    回應速度越快越好嗎?不見得

  7. 如何更好和更有效地向使用者輸出資訊?
    差異化:不同的狀況採用不同的呈現方式
    相對標記法:數量、時間、空間,人對相對資料理解勝過絕對資料
    形象思維與邏輯思維:圖像抽象資訊解讀勝過邏輯資料解讀

    根據資訊的內在關係,選擇恰當的組織形式
    對資訊進行適當的排序以方便使用者找尋
    從多個角度進行顯示

方法篇

  1. 使用者自身及其使用特點如何對介面設計產生影響?
    生理和心理的特點:視力、閱讀和理解能力、手眼協調和肌肉控制精準度、辨色能力、性格特徵和心理偏好
    使用者對產品使用的熟練程度:初級使用者、中級使用者、高級使用者
    使用者的領域知識
    使用者對電腦操作的一般性知識
    使用者使用的頻率
    使用者進行輸入操作時,輸入資訊的真正來源在哪裡?
    使用者某個操作的目的是什麼?
    使用者操作軟體的環境與輸入輸出設備方面的限制因素?

  2. 如何進行使用者研究?
    使用者訪談
    問卷調查
    觀察使用者
    體驗式研究
    從技術支援人員那裡獲取使用者資訊
    線上使用者論壇
    收集和研究使用者的使用日誌

  3. 如何制作原型?
    原型設計的作用和目的:交流設計方案、更早更有效地讓使用者參與進來、對設計方案進行評估和改進的基礎、降低開發成本
    制作方式:紙面原型、用軟體工具繪製靜態介面表示、使用快速開發工具來制作原型、使用 Web 應用開發技術製作原型、基於 Flash 技術的原型
    原型的保真度:與介面無關的非功能性因素全部不用考慮
    如何得到一個好的最初原型
    何時停止原型改進和反覆運算過程:專案時間限制、達到最小可用性要求
    原型的局限性:難以完全模擬真實情境與資料

  4. 如何進行可用性評估?
    認知演練法
    啟發式評估
    可用性測試:招募使用者、選擇地點與記錄方法、測試前準備、測試過程、測試結束的活動、事後研究與分析

  5. 如何進行創新性的介面設計?
    巧妙利用原本被浪費的空間和時間
    解決矛盾需求
    螢幕上原本只用於輸出的區域也能接受輸入,增強交互性
    組合
    透過去除某些維度上的功能來產生新的產品或使用方法
    從非軟體的產品和系統中尋找靈感

沒有留言:

張貼留言