試:人機(jī)交互實(shí)驗(yàn)報(bào)告與原型迭代)
簡(jiǎn)介面向高校人機(jī)交互課程學(xué)習(xí)者與期末項(xiàng)目完成者這套實(shí)驗(yàn)資料圍繞二維交互畫圖板、語音交互、界面設(shè)計(jì)與VRML虛擬現(xiàn)實(shí)四組實(shí)驗(yàn)展開并配套綜合性大實(shí)驗(yàn)幫助讀者完成從需求分析、界面布局、原型制作到用戶測(cè)試的完整訓(xùn)練。包內(nèi)共86個(gè)文件約24.97MB含6份doc實(shí)驗(yàn)報(bào)告、5份ppt課件、5組cpp與h源碼及obj/pdb等編譯中間文件、22張bmp界面素材、2份pdf教程和2個(gè)wrl虛擬現(xiàn)實(shí)場(chǎng)景另有語音SDK參考文檔與TTS示例便于對(duì)照實(shí)驗(yàn)步驟復(fù)現(xiàn)并做二次修改。已有2487人學(xué)習(xí)。資料覆蓋訂單管理、BBS、飛機(jī)訂票查詢等界面設(shè)計(jì)案例也提供VRML入門教程與示例場(chǎng)景讀者可參考報(bào)告結(jié)構(gòu)、評(píng)估思路、源碼組織與原型實(shí)現(xiàn)方式適合課程實(shí)驗(yàn)提交、大作業(yè)選題以及交互設(shè)計(jì)方案復(fù)盤。1. 一張人機(jī)交互的知識(shí)地圖實(shí)驗(yàn)報(bào)告和最后大實(shí)驗(yàn)其實(shí)是同一條鏈很多人把人機(jī)交互的實(shí)驗(yàn)報(bào)告和最后大實(shí)驗(yàn)當(dāng)成兩件事前者是寫文檔后者是做原型。實(shí)際上它們位于同一條鏈的兩個(gè)位置一條為「人—任務(wù)—界面」的認(rèn)知線關(guān)注用戶怎么感知、決策、出錯(cuò)另一條為「設(shè)計(jì)—原型—評(píng)估—迭代」的工程線關(guān)注界面如何被改到能用。實(shí)驗(yàn)報(bào)告是把這條鏈上某一次觀測(cè)寫成可復(fù)現(xiàn)的證據(jù)大實(shí)驗(yàn)是把整條鏈走一遍并留下修改痕跡。這份材料適合兩類人期末要交報(bào)告、要答辯的以及正在復(fù)習(xí)、需要把零散概念連成網(wǎng)的人。地圖先記住一句話所有實(shí)驗(yàn)設(shè)計(jì)都在回答「我改了什么、我測(cè)了什么、別的變量控住了沒有」所有評(píng)估方法都在回答「誰在什么任務(wù)上卡住了、卡得多嚴(yán)重」。2. 實(shí)驗(yàn)報(bào)告的骨架假設(shè)、變量、數(shù)據(jù)表三件套實(shí)驗(yàn)報(bào)告寫得像流水賬多半是在動(dòng)筆時(shí)才開始想「我要證明什么」。真正決定分?jǐn)?shù)的部分在動(dòng)手做實(shí)驗(yàn)之前就已定型一句可檢驗(yàn)的假設(shè)、一張變量對(duì)照表、一份不用返工的數(shù)據(jù)表結(jié)構(gòu)。這三樣定死后面的統(tǒng)計(jì)和討論只是順著往下推。2.1 八段式結(jié)構(gòu)里哪幾段真正決定分?jǐn)?shù)課程報(bào)告的段落順序基本固定但評(píng)分點(diǎn)分布極不均勻。下面這張表把每段「必須回答的問題」和最常見的缺失列在一起寫之前先對(duì)照看一遍。| 段落 | 必須回答的問題 | 最常見缺失 | | 引言 | 要驗(yàn)證什么、為什么值得驗(yàn)證 | 只有背景鋪陳沒有可檢驗(yàn)的假設(shè) | | 方法 | 別人照著寫的內(nèi)容能不能復(fù)現(xiàn) | 缺指導(dǎo)語原文、缺條件順序安排 | | 結(jié)果 | 數(shù)據(jù)長(zhǎng)什么樣、差異是否穩(wěn)健 | 只放圖不放描述統(tǒng)計(jì)無效應(yīng)量 | | 討論 | 結(jié)果支持還是推翻了假設(shè) | 把局限寫成客套話不解釋異常數(shù)據(jù) | | 結(jié)論 | 一句話能帶走什么 | 重復(fù)結(jié)果段沒有收斂到設(shè)計(jì)建議 |假設(shè)的寫法有個(gè)硬標(biāo)準(zhǔn)可檢驗(yàn)、有方向、帶指標(biāo)?!覆季?A 更好用」不是假設(shè)是口號(hào)「布局 A 的任務(wù)完成時(shí)間顯著短于布局 B且錯(cuò)誤率不高于 B」才是假設(shè)——它規(guī)定了比較對(duì)象、指標(biāo)和方向也提前堵死了事后挑數(shù)據(jù)的路。方法段最容易失分的地方是「指導(dǎo)語」。被試聽到的每一句話都會(huì)影響行為所以指導(dǎo)語要原文照錄包括你怎么解釋任務(wù)、允不允許提問、有沒有告訴被試可以隨時(shí)終止。這部分寫全了報(bào)告立刻從「學(xué)生作業(yè)」變成「可復(fù)現(xiàn)的實(shí)驗(yàn)」。2.2 自變量、因變量、控制變量一張表定死變量定不清后面所有統(tǒng)計(jì)都是白算。做界面實(shí)驗(yàn)時(shí)把這幾類變量攤在一張表上比在腦子里過一遍可靠得多。| 變量類型 | 具體例子 | 記錄方式 | | 自變量 | 布局方案A/B、目標(biāo)尺寸三檔、菜單廣度4/8/16 | 條件編號(hào)寫進(jìn)每一行數(shù)據(jù) | | 因變量 | 完成時(shí)間、錯(cuò)誤率、點(diǎn)擊次數(shù)、量表得分 | 每次試驗(yàn)一行不合并 | | 控制變量 | 屏幕分辨率、指針?biāo)俣?、字?hào)、任務(wù)內(nèi)容 | 固定值寫進(jìn)方法段 | | 混淆變量 | 學(xué)習(xí)效應(yīng)、疲勞、練習(xí)量、被試間能力差異 | 用平衡順序和練習(xí)試次壓住 |表里最容易被忽略的是最后一行?;煜兞坎粫?huì)因?yàn)槟銢]寫就不存在它只會(huì)悄悄混進(jìn)結(jié)果里讓你在討論段寫不出一句有底氣的話??刂扑氖侄螣o非三種隨機(jī)化條件順序、用拉丁方做平衡、每個(gè)條件前加固定輪數(shù)的練習(xí)試次并把練習(xí)數(shù)據(jù)剔除。還有一個(gè)常被忽略的區(qū)分被試內(nèi)設(shè)計(jì)和被試間設(shè)計(jì)。同一批人做所有條件叫被試內(nèi)樣本效率高但必須平衡順序不同人分到不同條件叫被試間沒有順序問題但個(gè)體差異會(huì)變成噪聲。課程實(shí)驗(yàn)里九成用的是被試內(nèi)而九成的翻車也都出在忘了平衡。2.3 數(shù)據(jù)表怎么設(shè)計(jì)才不用返工數(shù)據(jù)表的格式在實(shí)驗(yàn)開始前就該定下來因?yàn)橐坏╅_始錄數(shù)據(jù)改表頭等于重做。推薦用「長(zhǎng)表」一行一次試驗(yàn)所有條件混在一列里用字段區(qū)分。subject_id,condition,block,trial,mt_ms,error,target_w_px,distance_px,sus S01,layout_A,1,1,842,0,32,256, S01,layout_A,1,2,795,0,32,256, S01,layout_B,2,1,1103,1,32,256,每列的含義要固定subject_id是被試編號(hào)去標(biāo)識(shí)化不要寫真名condition是條件名block是第幾輪trial是輪內(nèi)第幾次mt_ms是這次試驗(yàn)的完成時(shí)間毫秒error用 0/1 表示是否出錯(cuò)后兩列是自變量的實(shí)際取值sus只有每個(gè)條件結(jié)束時(shí)填一次其余行留空。為什么不推薦寬表每個(gè)條件一列因?yàn)闂l件數(shù)一旦變動(dòng)就得改表頭而且缺數(shù)據(jù)會(huì)變成空格統(tǒng)計(jì)時(shí)很難區(qū)分「沒測(cè)」和「測(cè)了為 0」。長(zhǎng)表還有個(gè)好處能直接接分組聚合。import pandas as pd # 一行一次試驗(yàn)的長(zhǎng)表先聚合到「被試 × 條件」再進(jìn)統(tǒng)計(jì)檢驗(yàn) df pd.read_csv(trials.csv) per_subject (df.groupby([subject_id, condition])[mt_ms] .mean() .unstack()) # 行 被試列 條件 print(per_subject.describe())這段代碼的關(guān)鍵動(dòng)作是groupby再mean把幾百行試驗(yàn)壓成「每被試每條件一個(gè)均值」。不做這一步直接拿幾百行 trial 去做配對(duì)檢驗(yàn)樣本量會(huì)被虛增十幾倍p 值必然漂亮——這是整個(gè)方向里最典型的踩坑方式之一而且很難在結(jié)果段自查出來。參數(shù)上要注意unstack()之后行是被試、列是條件配對(duì)檢驗(yàn)要求兩列長(zhǎng)度一致缺數(shù)據(jù)的被試要么整行剔除要么在報(bào)告里說明處理方式。3. 經(jīng)典實(shí)驗(yàn)范式菲茨定律、??硕膳c布局對(duì)比課程實(shí)驗(yàn)報(bào)告里出現(xiàn)頻率最高的三類題目本質(zhì)是三種不同的測(cè)量對(duì)象菲茨定律測(cè)「指向動(dòng)作的難度」希克定律測(cè)「選項(xiàng)數(shù)量帶來的決策成本」布局對(duì)比測(cè)「整體方案在真實(shí)任務(wù)下的績(jī)效」。前兩個(gè)是可控的經(jīng)典范式第三個(gè)是把前兩個(gè)的指標(biāo)組合起來做一個(gè)綜合判斷。3.1 菲茨定律實(shí)驗(yàn)ID、MT、TP 三個(gè)量怎么算菲茨定律描述的是「從起點(diǎn)移動(dòng)到目標(biāo)并點(diǎn)擊」這件事有多難。核心量是難度指數(shù) ID單位是比特ID log2(2D / W)D 是起點(diǎn)到目標(biāo)中心的距離W 是目標(biāo)沿運(yùn)動(dòng)方向上的尺寸。移動(dòng)時(shí)間 MT 與 ID 呈線性關(guān)系MT a b·ID。吞吐量 TP ID / MT單位 bit/s用來橫向比較不同設(shè)備或不同設(shè)計(jì)方案。import math def fitts_id(distance_px, width_px): 難度指數(shù) ID單位 bit。 distance_px起點(diǎn)到目標(biāo)中心的距離 width_px目標(biāo)沿運(yùn)動(dòng)方向上的尺寸橫排按鈕量寬豎排量高 if distance_px 0 or width_px 0: raise ValueError(距離和目標(biāo)寬度都必須為正數(shù)) return math.log2(2 * distance_px / width_px) def throughput(ids, mts): 吞吐量 TP每個(gè)條件各自算 ID/MT 再取平均 而不是拿平均 ID 除以平均 MT。 pairs [(i / t) for i, t in zip(ids, mts) if t 0] return sum(pairs) / len(pairs)參數(shù)上有三個(gè)坑值得單獨(dú)說。第一距離和目標(biāo)寬度的單位必須統(tǒng)一都用像素或都用毫米混著算出來的 ID 沒有意義。第二W 取的是「沿運(yùn)動(dòng)方向」的尺寸一排橫向排列的按鈕量的是寬度一列縱向排列的菜單項(xiàng)量的是高度。取錯(cuò)了ID 會(huì)系統(tǒng)性偏大或偏小。第三2D/W 必須大于 1否則 ID 為負(fù)或?yàn)榱阏f明這個(gè)任務(wù)對(duì)用戶毫無難度測(cè)出來的時(shí)間只是在測(cè)手抖。一般把 ID 設(shè)計(jì)在 1 到 7 bit 之間覆蓋「很容易」到「需要專注」的區(qū)間。throughput函數(shù)里那句注釋是本節(jié)的真正重點(diǎn)。很多人先算所有條件的平均 ID 和平均 MT再一除得到 TP這在數(shù)學(xué)上不等于「各自算再平均」條件之間難度差異越大兩者偏得越遠(yuǎn)。答辯被問到這一句答不上來基本就露餡了。3.2 ??硕膳c菜單選擇選項(xiàng)數(shù)量不是線性成本??硕芍v的是決策時(shí)間隨選項(xiàng)數(shù)量的增長(zhǎng)方式選項(xiàng)越多決策越慢但增長(zhǎng)是對(duì)數(shù)的不是線性的。常見形式是 RT a b·log2(n 1)n 是等概率選項(xiàng)數(shù)。這條定律最常被用在菜單設(shè)計(jì)的爭(zhēng)論上一個(gè)大而扁的菜單還是幾個(gè)小而深的層級(jí)純按公式推似乎寬而扁更優(yōu)因?yàn)槎嘁粚泳鸵嘁淮螞Q策。但真實(shí)界面里選項(xiàng)不是同時(shí)可見的用戶還得做視覺掃描和尋找所以純??硕芍贿m用于「所有選項(xiàng)同時(shí)呈現(xiàn)、位置隨機(jī)、彼此無視覺層級(jí)差異」的場(chǎng)景。設(shè)計(jì)這類實(shí)驗(yàn)時(shí)把「決策時(shí)間」和「視覺搜索時(shí)間」分開記錄會(huì)更嚴(yán)謹(jǐn)可以用兩種條件一種是選項(xiàng)位置固定熟手靠位置記憶一種是每次隨機(jī)必須逐個(gè)讀兩者的差值就近似視覺搜索的貢獻(xiàn)。這個(gè)設(shè)計(jì)思路寫進(jìn)討論段比單純復(fù)述公式有分量得多。3.3 布局對(duì)比實(shí)驗(yàn)把「感覺更好用」變成可測(cè)的數(shù)布局對(duì)比是最后大實(shí)驗(yàn)里最常見的題目形態(tài)也是最容易做成主觀感想的一類。要讓它站得住指標(biāo)要提前定且至少覆蓋績(jī)效和主觀兩側(cè)。| 指標(biāo) | 采集方式 | 需要提前定死的事 | | 任務(wù)完成時(shí)間 | 從首次點(diǎn)擊到目標(biāo)達(dá)成 | 起點(diǎn)和終點(diǎn)的判定規(guī)則 | | 錯(cuò)誤率 | 錯(cuò)誤點(diǎn)擊數(shù) / 總點(diǎn)擊數(shù) | 什么算錯(cuò)誤誤點(diǎn)后算不算重來 | | 操作步數(shù) | 完成任務(wù)經(jīng)過的界面數(shù) | 返回算不算一步 | | 指針移動(dòng)距離 | 采樣點(diǎn)累加 | 采樣率會(huì)影響結(jié)果需固定 | | 主觀負(fù)荷 | 六維度負(fù)荷量表測(cè)試后立即填 | 填表時(shí)機(jī)要統(tǒng)一 | | 偏好排序 | 兩方案二選一或排序 | 偏好不能替代績(jī)效數(shù)據(jù) |設(shè)計(jì)上建議每個(gè)條件至少十次有效試驗(yàn)前面加固定輪數(shù)的練習(xí)并把練習(xí)數(shù)據(jù)剔除條件順序用拉丁方平衡避免所有人都是先做 A 后做 B——先做的那個(gè)一定吃虧因?yàn)榻缑孢€不熟。這個(gè)「吃虧」在數(shù)據(jù)上表現(xiàn)為 A 的完成時(shí)間系統(tǒng)性偏長(zhǎng)而你很可能把它解釋成「A 的設(shè)計(jì)更差」這就是典型的把混淆變量當(dāng)結(jié)論。4. 評(píng)估與迭代三種評(píng)估方法和最后大實(shí)驗(yàn)的完整鏈路原型做出來只是開始能不能畢業(yè)看的是評(píng)估。三種方法的分工很明確啟發(fā)式評(píng)估靠專家經(jīng)驗(yàn)快速掃雷成本最低認(rèn)知走查靠逐步推演不需要真實(shí)用戶適合極早期可用性測(cè)試靠真實(shí)用戶做真實(shí)任務(wù)最貴也最有說服力。三者不是替代關(guān)系是按階段遞進(jìn)的關(guān)系。4.1 啟發(fā)式評(píng)估十條原則怎么變成問題清單十條原則背下來不難難的是把它們變成一條條能落到具體界面上的檢查問句。下面這版對(duì)照表是按「問句化」整理的走查時(shí)逐條念出聲即可。| 原則 | 檢查問句 | 典型問題 | | 狀態(tài)可見 | 系統(tǒng)現(xiàn)在在做什么用戶一秒內(nèi)能看出來嗎 | 保存無反饋、加載無進(jìn)度提示 | | 貼合現(xiàn)實(shí) | 用詞是不是用戶自己的語言 | 出現(xiàn)內(nèi)部代號(hào)、字段名、縮寫 | | 用戶可控 | 誤操作能不能撤回 | 刪除無二次確認(rèn)、無撤銷入口 | | 一致性 | 同一個(gè)動(dòng)作在不同頁面是不是同一個(gè)說法 | 「確定/保存/提交」混用 | | 錯(cuò)誤預(yù)防 | 能不能在出錯(cuò)之前攔住 | 日期讓用戶自由文本輸入 | | 識(shí)別優(yōu)于回憶 | 需要的選項(xiàng)是不是擺在眼前 | 要用戶記住上一步的編號(hào) | | 靈活高效 | 有沒有給熟手留一條捷徑 | 只能一步一步點(diǎn)無批量操作 | | 極簡(jiǎn)設(shè)計(jì) | 屏幕上有沒有和當(dāng)前任務(wù)無關(guān)的元素 | 裝飾圖表擠占主操作區(qū)域 | | 錯(cuò)誤恢復(fù) | 報(bào)錯(cuò)有沒有說清原因和下一步 | 「操作失敗請(qǐng)重試」 | | 幫助文檔 | 幫助是不是出現(xiàn)在用戶需要的位置 | 幫助入口埋在三級(jí)菜單里 |流程比表格更重要。正確做法是三到五名評(píng)估者各自獨(dú)立走查、各自列問題然后才合并去重先討論再走查會(huì)迅速收斂到同一種視角問題數(shù)量直接砍半。合并之后按「出現(xiàn)頻率 × 嚴(yán)重程度」分級(jí)嚴(yán)重度可以用四級(jí)一級(jí)是外觀瑕疵二級(jí)是輕微不便三級(jí)是阻礙任務(wù)完成四級(jí)是可能導(dǎo)致數(shù)據(jù)丟失或誤操作。最后輸出一張問題表每行寫明位置、觸犯的原則、嚴(yán)重度、修改建議——這張表就是大實(shí)驗(yàn)迭代階段的輸入。4.2 認(rèn)知走查四個(gè)問題逐屏過一遍認(rèn)知走查不需要用戶靠的是評(píng)估者把自己代入一個(gè)具體用戶沿著一條具體任務(wù)逐屏問四個(gè)問題用戶會(huì)不會(huì)嘗試達(dá)成這個(gè)效果界面提供的操作和用戶的目標(biāo)對(duì)不對(duì)得上用戶能不能注意到正確的操作是可用的可見性夠不夠用戶會(huì)不會(huì)把這個(gè)操作和想達(dá)成的效果聯(lián)系起來映射清不清楚執(zhí)行之后用戶能不能看出操作已經(jīng)生效有沒有反饋四問的順序不能亂因?yàn)樗鼘?duì)應(yīng)的是「形成目標(biāo)—尋找操作—建立映射—評(píng)估結(jié)果」這條認(rèn)知鏈。任何一問卡住都記一個(gè)設(shè)計(jì)缺口并注明是「通過 / 失敗 / 存疑」。存疑不要強(qiáng)行判通過標(biāo)記出來留到可用性測(cè)試?yán)矧?yàn)證。這套方法最適合低保真階段紙面原型上做認(rèn)知走查改一筆成本幾乎為零等到高保真做完再走查改一個(gè)交互可能牽動(dòng)整條流程。帶血淚經(jīng)驗(yàn)的一條是走查時(shí)一定要挑「第一次使用」的用戶視角而不是「已經(jīng)用了三天」的自己。4.3 可用性測(cè)試任務(wù)腳本、發(fā)聲思考與量表計(jì)分可用性測(cè)試最容易做錯(cuò)的地方不在數(shù)據(jù)分析在任務(wù)腳本。腳本寫的是目標(biāo)不是步驟??聪旅孢@一組對(duì)比反例點(diǎn)擊右上角的設(shè)置圖標(biāo)然后選擇通知選項(xiàng)把開關(guān)關(guān)掉。 正例假設(shè)你不想再收到這類提醒了請(qǐng)把提醒關(guān)掉。反例里每一步都寫明了位置和操作測(cè)的其實(shí)是「用戶能不能照著指令點(diǎn)」測(cè)不出任何可用性問題。正例只給目標(biāo)用戶怎么找到入口、會(huì)不會(huì)迷路、會(huì)不會(huì)點(diǎn)錯(cuò)才是要觀察的東西。主持人全程只說兩句話「你現(xiàn)在在想什么」和「繼續(xù)」。任何一次「你可以試試左邊那個(gè)」都會(huì)讓這一輪數(shù)據(jù)作廢。樣本量上有個(gè)常用的經(jīng)驗(yàn)值同一類用戶群、同一類任務(wù)五名被試大約能暴露大部分約八成以上的可用性問題。這個(gè)數(shù)字經(jīng)常被誤用成「五個(gè)人就夠了」——它成立的前提是用戶群?jiǎn)我?、任?wù)類型集中。如果你的產(chǎn)品有兩類差異很大的用戶五個(gè)人分?jǐn)偟絻深惱锞筒粔蛄?。主觀量表最常用的是十題版的系統(tǒng)可用性量表。這十題里有一半是正向描述、一半是反向描述計(jì)分時(shí)必須反向翻轉(zhuǎn)這一步是重災(zāi)區(qū)def sus_score(responses): 十題系統(tǒng)可用性量表計(jì)分。 responses長(zhǎng)度為 10 的列表每題原始分 1~5。 奇數(shù)題1/3/5/7/9正向貢獻(xiàn) 原始分 - 1 偶數(shù)題2/4/6/8/10反向貢獻(xiàn) 5 - 原始分 assert len(responses) 10, 必須正好十題 assert all(1 r 5 for r in responses), 原始分必須在 1~5 之間 total 0 for idx, raw in enumerate(responses, start1): total (raw - 1) if idx % 2 1 else (5 - raw) return total * 2.5 # 0~40 折算到 0~100每題的貢獻(xiàn)是 0 到 4 分十題合計(jì) 0 到 40乘 2.5 折算到 0 到 100 區(qū)間。這里有個(gè)必須說清的點(diǎn)這個(gè)分?jǐn)?shù)不是百分比不能說「可用性 80%」。它只是一個(gè)約定區(qū)間的分?jǐn)?shù)業(yè)界常拿 68 分當(dāng)平均參考線八十分以上算比較順但樣本量只有五個(gè)人時(shí)單看均值意義有限更該看的是每個(gè)人在哪幾題上給了低分——那幾題指向的才是具體問題。4.4 最后大實(shí)驗(yàn)的六步鏈路每一步的產(chǎn)出和驗(yàn)收標(biāo)準(zhǔn)大實(shí)驗(yàn)失分往往不是因?yàn)樽龅蒙俣且驗(yàn)殡A段之間沒有咬合原型做得很漂亮但需求說不清來自哪里測(cè)試做了一堆但改了什么沒有記錄。把六步的產(chǎn)出和驗(yàn)收標(biāo)準(zhǔn)列清楚進(jìn)度和成文都會(huì)輕松很多。| 階段 | 主要產(chǎn)出 | 判定通過的標(biāo)準(zhǔn) | | 選題 | 一句話問題陳述 目標(biāo)用戶描述 | 能說清「誰在什么場(chǎng)景下被什么卡住」 | | 用戶研究 | 三到五份訪談?dòng)涗?、需求清?| 每條需求都能追溯到某條原始記錄 | | 任務(wù)分析 | 層次任務(wù)分析表或用戶旅程圖 | 每個(gè)任務(wù)有明確起點(diǎn)和終點(diǎn) | | 低保真 | 紙面或線框原型 | 認(rèn)知走查無三級(jí)以上缺口 | | 高保真 | 可點(diǎn)擊原型 | 主流程能獨(dú)立走通五人測(cè)完 | | 迭代與成文 | 問題清單、修改對(duì)照表、報(bào)告 | 每個(gè)問題都有處理結(jié)論 |兩點(diǎn)取舍經(jīng)驗(yàn)。一是別在高保真上過度投入視覺精細(xì)度和可用性沒有必然關(guān)系把時(shí)間花在第二輪測(cè)試上收益更高。二是迭代記錄要做成「問題—修改—驗(yàn)證」三列而不是只寫「已優(yōu)化」答辯時(shí)被追問「你怎么知道改好了」能翻出第三列的人立刻占優(yōu)。5. 易漏易錯(cuò)點(diǎn)五個(gè)讓報(bào)告掉檔的細(xì)節(jié)5.1 條件順序沒平衡學(xué)習(xí)效應(yīng)冒充了設(shè)計(jì)差異易漏點(diǎn)被試內(nèi)設(shè)計(jì)里所有被試都按「先 A 后 B」的順序做結(jié)果 A 的完成時(shí)間偏長(zhǎng)報(bào)告寫成「A 方案更難用」。為什么漏數(shù)據(jù)本身沒有異常兩組均值確實(shí)差著統(tǒng)計(jì)檢驗(yàn)也顯著從數(shù)字上完全看不出問題。學(xué)習(xí)效應(yīng)藏在順序里不做平衡就永遠(yuǎn)暴露不出來。怎么補(bǔ)一半被試走 A→B另一半走 B→A也就是最基礎(chǔ)的拉丁方平衡每個(gè)條件前加固定輪數(shù)的練習(xí)試次并剔除練習(xí)數(shù)據(jù)分析時(shí)把「順序」當(dāng)成一個(gè)額外因素看一眼如果順序的主效應(yīng)很大說明平衡沒做好得在討論段如實(shí)說明。5.2 量表反向題沒翻轉(zhuǎn)分?jǐn)?shù)全反了易漏點(diǎn)十題量表里反向題直接按原始分累加算出來的分?jǐn)?shù)看著像模像樣方向和真實(shí)感受相反。為什么漏正向題和反向題混排錄入時(shí)逐行敲數(shù)字很容易一路順著敲下去而且錯(cuò)誤結(jié)果仍然落在合理區(qū)間內(nèi)不會(huì)報(bào)錯(cuò)、不會(huì)越界屬于典型的黑匣子錯(cuò)誤。怎么補(bǔ)把計(jì)分寫成函數(shù)參考 4.3 的實(shí)現(xiàn)奇數(shù)題減一、偶數(shù)題用五減輸入前先斷言范圍錄完隨機(jī)抽兩三份手工復(fù)算一遍對(duì)不上就整批重來。這一步花五分鐘能省掉答辯現(xiàn)場(chǎng)被要求現(xiàn)場(chǎng)重算的尷尬。5.3 任務(wù)腳本里藏了操作提示測(cè)試變成了教學(xué)易漏點(diǎn)腳本寫「點(diǎn)擊右上角設(shè)置選擇通知關(guān)閉開關(guān)」用戶順利完成成功率 100%報(bào)告寫「界面易于使用」。為什么漏腳本讀起來非常自然像是正常的任務(wù)描述寫的人自己意識(shí)不到已經(jīng)把所有決策都替用戶做完了。而且成功率漂亮沒人會(huì)去質(zhì)疑。怎么補(bǔ)寫完腳本做一次自查——把腳本里所有方位詞和控件名劃掉看剩下的句子還能不能構(gòu)成一個(gè)完整目標(biāo)。不能就重寫。測(cè)試時(shí)主持人只記錄不提示用戶問「是不是點(diǎn)這里」回一句「你覺得呢」即可。5.4 只報(bào) p 值不報(bào)效應(yīng)量和樣本處理易漏點(diǎn)結(jié)果段寫「p 0.05差異顯著」然后直接下結(jié)論說方案 A 明顯更好。為什么漏顯著性檢驗(yàn)是最容易出結(jié)果的一步軟件一點(diǎn)就有數(shù)字而效應(yīng)量、置信區(qū)間、異常值處理這些「不顯著但重要」的東西教材上往往一筆帶過。怎么補(bǔ)每個(gè)主要比較都配一個(gè)效應(yīng)量并在方法段寫清樣本量、剔除標(biāo)準(zhǔn)和剔除數(shù)量。樣本量只有八到十人的課程實(shí)驗(yàn)里p 值本身很不穩(wěn)定多報(bào)一個(gè)效應(yīng)量能讓結(jié)論的可信度上一個(gè)大臺(tái)階。順便說前文提到的「拿幾百行 trial 直接做檢驗(yàn)」也是同一類問題的變體——先把數(shù)據(jù)聚合到被試層面再談顯著性。5.5 原型做太早太細(xì)來不及迭代易漏點(diǎn)第二周就開始摳高保真細(xì)節(jié)到測(cè)試階段只剩三天測(cè)出來的問題一個(gè)都改不完報(bào)告里只能寫「后續(xù)可優(yōu)化」。為什么漏做界面比想需求有成就感工具又順手很容易一頭扎進(jìn)去。等到發(fā)現(xiàn)方向錯(cuò)了沉沒成本已經(jīng)很大改不動(dòng)了。怎么補(bǔ)把「低保真通過認(rèn)知走查」設(shè)成硬門檻沒通過不許進(jìn)高保真高保真只做能走通主流程的最小集合裝飾性內(nèi)容留到最后。測(cè)試排期往前挪至少留出兩輪修改時(shí)間——第一輪改大問題第二輪驗(yàn)證改得對(duì)不對(duì)這個(gè)節(jié)奏比任何視覺細(xì)節(jié)都值錢。6. 復(fù)習(xí)清單交稿前把報(bào)告倒著讀一遍復(fù)習(xí)這個(gè)方向最有效的方式不是重看教材而是拿自己那份報(bào)告做一次逆向檢查。下面這張自查表按「最容易忘」到「最不容易忘」排序交稿前從上往下過一遍。| 序號(hào) | 檢查項(xiàng) | 不合格的表現(xiàn) | | 1 | 假設(shè)有方向、有指標(biāo) | 只有「更好用」這類描述 | | 2 | 指導(dǎo)語原文完整 | 方法段只有「被試按指示完成任務(wù)」 | | 3 | 條件順序已平衡 | 所有人順序一致報(bào)告不提順序 | | 4 | 數(shù)據(jù)已聚合到被試層面 | 直接用 trial 行數(shù)當(dāng)樣本量 | | 5 | 量表反向題已翻轉(zhuǎn) | 沒有計(jì)分函數(shù)手工敲的數(shù)字 | | 6 | 每個(gè)比較都有效應(yīng)量 | 只有 p 值 | | 7 | 剔除標(biāo)準(zhǔn)寫清 | 只說「剔除異常值」不說怎么判 | | 8 | 任務(wù)腳本無操作提示 | 腳本里出現(xiàn)方位詞和控件名 | | 9 | 問題清單有嚴(yán)重度分級(jí) | 一長(zhǎng)串問題不做優(yōu)先級(jí) | | 10 | 迭代記錄有「驗(yàn)證」列 | 只寫「已優(yōu)化」 | | 11 | 局限段解釋異常數(shù)據(jù) | 局限寫成「樣本量較小」一句帶過 | | 12 | 圖表有單位和誤差線 | 只有均值柱無離散程度 |然后試一個(gè)倒讀技巧從結(jié)論段往回讀每讀到一句判斷就往前找支撐它的那個(gè)數(shù)字。讀三遍基本能揪出所有「結(jié)論跑在數(shù)據(jù)前面」的句子——這是評(píng)審最容易抓住、也最難辯解的一類問題。倒讀還有個(gè)副作用會(huì)讓你發(fā)現(xiàn)某些圖其實(shí)可以刪掉因?yàn)樗鼈儾恢稳魏我痪浣Y(jié)論。最后說一個(gè)習(xí)慣。從那以后我每次做完實(shí)驗(yàn)都會(huì)在收數(shù)據(jù)當(dāng)天就把長(zhǎng)表按「被試 × 條件」聚合一遍看一眼極值和缺失再?zèng)Q定要不要補(bǔ)測(cè)等寫完報(bào)告再回頭看數(shù)據(jù)往往已經(jīng)來不及補(bǔ)了。這個(gè)動(dòng)作花不到十分鐘但它把「數(shù)據(jù)能不能用」這個(gè)問題提前到了還能補(bǔ)救的時(shí)候。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取