【熱血一次就上癮】
分享特地從高雄上來上一天課的熱血夥伴,燒腦完的熱血感想。
真要說我推薦上課的順序,先【#單元測試實戰營】再【#演化式設計:#TDD與持續重構】是好一點的。
至於【#極速開發】,比較沒有依賴關係。先上,馬上受用。
後上,當你上完【單元測試】跟【重構與TDD】之後,你可能就會發現自己寫代碼的速度,就像你看不會寫代碼的人一樣。
尤其是,參加完【熱血 Coding Dojo】的社群活動,發現其他參加過【極速開發】的人,寫代碼怎麼比你順那麼多時,那種衝擊感會更強烈一點。
此外補充一些,三月份的【C#進階設計-#從重構學會高易用性與高彈性API設計】跟五月份的【Clean Coder:#DI與AOP進階實戰】,也都是進階的實戰課。
上課的方式,依然沒有投影片,依然會給需求讓大家動手做,依然會給挑戰讓大家感受卡點,依然不會直接介紹框架,而是讓你用基本的設計與原則,搞定你的需求跟卡點,再用框架來提昇效率和彈性。
上課,就是要學一些網路文章、書上、影片上找不到或不容易自己理解的內容囉。
繼兩個月前參加 TDD 與重構課程以後,想不到這麼快又與 91 哥見面,上個週末又參加了一堂單元測試實戰課程,因為一樣有蠻多感想的,所以還是來記錄一下心得 XD
這次課程只有一天,完全聚焦在「怎麼寫有品質的單元測試」,沒有廢話,句句是精華。印象最深刻的就是課程開始的第一個小時內就學到了超好用的一招解耦手法,直接秒殺上次回去練習時覺得用 DI 很難處理的 Legacy Code 情境,當然也連帶理解了之前會覺得很難解,是因為對於單元測試的觀念還不夠完整。
基本上這次課程進行的模式跟重構那堂差不多,用壓時間實作需求的方式推進,雖然不強制採取 Pair Programming,但用同樣語言的人還是被鼓勵坐一起,因為兩個人會一起被同樣的難題卡住,然後一起相看兩無言。果不其然,看似無害的第一題需求才剛完成,馬上就被緊接而來的測試需求逼死。原想說自從上次課程以來也算是練習過一些單元測試的撰寫了,不至於被秒殺吧,嗯,還真的被秒殺了呢。這逼死人的不是多嚇人的程式碼,用 inline 和三元運算甚至能寫成僅僅一行。透過這個實作,入手了上面講的解耦手法,原來不用什麼奇形怪狀的手段,善用 OOP 的特性就可以輕鬆解決難搞的耦合,在學習的當下內心真的是拍案叫絕激動不已啊。
上午的內容主要就在打實單元測試的基礎觀念,到了下午的實作題才開始納入測試框架。跟使用其它任何框架一樣,沒有把框架代理的任務原理先摸清楚就直接享受便利,免不了都會有毛毛的感覺,像這樣先徒手走過一輪再用框架的學習模式讓人感覺還是挺紮實的。使用 Mock Framework 以後,產生假物件做測試變得更有效率且直觀了,甚至可以輕易實現原本覺得很難、很麻煩或不可能的測試,印證了很多事情「沒有做不到,只是不知道」的道理。最後一道實作題是集一日大成的需求,雖然不難但因為不夠熟練新掌握的觀念、技巧(還有打 code 太慢)最後也只完成一半,殘念得斯,回家後持續練習還是不可少的。
兩個月前的重構課程中,有關於單元測試的部分是從 TDD 的觀點出發,關注的是如何從一開始就不讓路走歪;而這次課程的學習角度是偏向處理既有的 Legacy Code,在測試案例規格化的觀念上有更多著墨,以直接學到的實務技巧來說,這次比上次吸收的程度更大,但應該是我太廢了所以上次的重構課程顯得有點越級打怪,不過從前次的課程被啟發很多觀念也是完全不假。
雖然兩次上課都打了那麼多感想,但真要推薦也很難推薦哪門課比較適合先上或後上,畢竟我覺得自己也是因為有上次課程的觀念為底,才讓這次課程能夠吸收得較好。如果是「想要試試 91 系列課程」,就蠻推薦有學習單元測試需求的朋友來試試看這堂,時間只有一天、價格也硬是比重構課程低一半以上,雖然直接被灌輸實務觀念這件事是無價的,但金錢有時候也是很現實必須考量的要素之一啊哈哈,這堂課就算觀念沒有被啟發,至少一定學得到技術。
這次課程還有覺得超值回票價的一點就是,除了單元測試的實戰,91 還加碼開講了關於「架構設計」、「測試導入團隊」的觀念、「整合測試」以及「OOP 介面拆分聚合提升可測試性」的原則等等,都是從實務的角度出發,雖然不一定與單元測試直接關聯,但在軟體開發中卻都是息息相關的環節,有些議題尚未遇過感受還不深,但先記下來,我想有朝一日會碰上的。不過不確定是不是每次上課都有這一趴,感覺比較算是隨緣的部分,但應該也要歸功於同學蠻踴躍發問的啦,所以可以保證的一點是學員多提問 & 主動回答對大家都有幫助,很容易撿到寶啊!
說到最值回票價的部分,莫過於新學到的測試手法直接應用於最近寫面試試題上了,所謂來得早不如來得巧。(好像應該等測驗有過再來說嘴)
總之再次感謝雅令老ㄙ張仁瀚的相揪,雅令老ㄙ真的很優秀,第一題我被卡死的時候他很快就想到其它解法而且還實作完成惹,學長覺得慚愧R
也謝謝 91 哥除了熱血上課還各種送書,書桌上待看的書本堆又變厚了...。
「易用性測試任務」的推薦目錄:
易用性測試任務 在 As A Product Designer - 易用性測試需要注意五件事情】... 的美食出口停車場
UX 設計- 易用性測試需要注意五件事情】 易用性測試對於一個產品的開發是重要的一環,也是檢驗自己產品與客戶之間的聲音,那該如何有效地進行測試呢? ... <看更多>
易用性測試任務 在 如何在敏捷開發中進行易用性測試 - 博碩士論文下載網 的美食出口停車場
Usability Testing (易用性測試)是什麼? · UX Research-易用性測試(Usability test) | 博碩士論文下載網 · 【UX筆記】原型設計與易用性測試的工作坊記錄| ... ... <看更多>
易用性測試任務 在 [心得] 如何開始內部易用性測試? - 看板Soft_Job - 批踢踢實業坊 的美食出口停車場
前陣子在本版看到有人詢問關於網頁測試的問題:
除了工程師測試,會讓全公司的其他人測試嗎?
文章代碼:#1TaBYoiN
之前我有寫過一篇文章分享跟QA合作的經驗:https://user449.psee.ly/LVQ93
裡面提到一開始我們沒有QA,因此的確有點類似全公司亂測,
工程師、PM、客服或相關部門都會幫忙測試,
有專職QA加入後就由QA來帶領我們把關產品的穩定與安全。
最近新寫了一篇文章關於「易用性測試 Usability Testing」,
比較偏向產品團隊有點資源又沒那麼多資源,想要開始使用者測試的試水溫方法!
Medium 好讀版:https://pesc.pw/KGYAZ
【沒有資源做產品的使用者研究?讓我們從內部易用性測試開始!】
大家都知道使用者研究、易用性測試(Usability Testing)很重要,但不是每個團隊都機會或資源進行。
最常見的狀況是老闆認為這不是必要的,因此不想花時間跟資源下去,其他狀況如小公司或新團隊沒相關經驗、之前的階段不需要(先照抄競品、或工程師快速建一個版本去衝流量和銷量)、羞於將半成品呈現給他人、或覺得產品新功能是公司機密不能外流等等理由,而遲遲沒有開始嘗試。
在這邊分享一個較為輕量級的作法 — — 找內部的團隊成員來做易用性測試與訪談。
▍什麼是易用性測試
易用性是一種以使用者為中心的設計概念,易用性設計的重點在於讓產品的設計能夠符合使用者的習慣與需求。以網際網路網站的設計為例,希望讓使用者在瀏覽的過程中不會產生壓力或感到挫折,並能讓使用者在使用網站功能時,能用最少的努力發揮最大的效能。(以上取自維基百科)
易用性測試則是透過直接讓使用者與產品互動,了解他們實際如何使用、遇到什麼困難、是否有解決他們的問題,來驗證產品的易用性,並以之為基礎來優化產品。
PM、設計師雖然是產品設計、UIUX 的專家,但畢竟不是真正的使用者,無法非常直覺又透徹的了解使用者的問題與需求;就算本身是使用者,也可能因為對產品、軟體設計太過熟悉而會有盲點,看不出產品難以操作的地方。在這種時候,使用者才是真正能夠幫助產品團隊的專家。
易用性測試進行的階段通常在改動實際進入開發之前,由 PM、設計師針對現階段設計出來的產品解法做出可互動的 prototype,初步驗證解法的方向是否正確,蒐集回饋來修正;有時也會在功能開發完成後、上線前進行易用性測試作為上線前的最後確認,避免好的點子與功能因為難用而無法發揮效果。
易用性測試有它的限制,它可以告訴你好不好用、容不容易用,但無法完全告訴你使用者會不會想用這個功能、數據會不會增長,對於一些較小的改動,直接上線、做實驗、看數據可能會有更好的效果。除了產品本身的 UIUX 外,有時候文案、FAQ 的易讀性等產品輔助也會對易用性造成影響。
▍什麼是內部易用性測試
內部易用性測試,說穿了就是不找外面真實的使用者,而找內部團隊成員來做易用性測試。如果平常本來就會將 PRD、mockup 丟給大家給意見,不如就當成另一種搜集資料的方法,也作為未來若有機會找真實使用者測試前的內部練習。
在某些團隊中,本來就會找內部同事進行 Pilot Testing 來作為正式測試前的 rehearsal,確保真正找外部受測者時流程可以順利進行。
▍內部易用性測試的作法
1. 規劃與設計
內部易用性測試的使用情境跟一般易用性測試沒有不同,包含 Prototype 測試、不同解法的測試、上線前的測試等。
一開始先設定好研究與測試目標、預期達成的結果,規劃測試流程(主要使用情境、需要使用者完成的任務),並撰寫流程稿與訪談大綱。
最重要的是招募受測對象!
內部易用性測試容易遭人詬病的原因,很多都與同事這個「人」有關,找到合適的受測對象對於這次是否能搜集到有用的回饋非常重要。
- 不要找產品團隊的人,包含其他 PM、設計師、工程師、QA,因為他們本身就是軟體/產品專家
- 不要找你的利益關係人(stakeholder),包含你的直屬主管或老闆,這些人給的回饋不一定會中立
- 不要找真實使用者的利益關係人(stakeholder),因為他們可能會建立假設並從使用者角度思考,而不是從自己角度思考(這個階段應該是要接收受測者本人最真實的回饋)
以上這些人可以直接幫你看 PRD 給意見,但不見得是最適合當成受測者的對象。找受測者、受訪者的重點是挖他們腦中的想法出來,而不是塞東西進去他們的腦海,但對於同個公司甚至同個部門的人來說,他們腦袋已經有各種揮之不去的產品細節了。若他們想要參與測試與訪談過程,作為不介入流程的「觀察者」會較適合。
排除以上選擇之後,通常在招募外部測試的受測者時,會先釋出問卷(Screeners)來篩選出合適的對象,但在公司內部,我認為第一次練習時可以先省略這一步。畢竟如果團隊很小,其實也沒什麼好篩選的;如果團隊很大,的確可以試試使用問卷篩選,但隨著時間成本增加,算是有點失去內部易用性測試的彈性與優點,同時可能也會降低同事願意受測的意願(懶的填問卷)。
找錯人的風險就是浪費時間、蒐集到無用回饋,如果真的遇到測試到一半,你跟設計師突然發現對方不是你們想要的受測者,提早結束也不會太失禮,同事大不了回去座位上工作。將「找到不合適的受測者」這個資訊記錄下來,也可以當成未來正式招募受測者時的參考。
那可以找哪些人呢?
- 較不相關的部門同事,例如財務、人資、行政,他們甚至可能還沒認真用過自家產品。
- 其他產品線的同事,例如其他產品線的業務、BD、客服、行銷等等。
- 剛加入公司沒多久的人、實習生,他們腦袋裡還沒太多產品想法,是很好的測試對象。
接下來就是寄送測試邀請和注意事項,包含時間地點、所需時間長度、是否需要自備器材(帶自己熟悉的電腦、手機)等等,靜待測試日的到來。
二、進行流程
測試當下的流程大致如下:
1. 說明今日的流程與 PM 團隊的期待
2. 說明測試情境與背景資訊
3. 讓受測者開始進行測試、完成指定的任務
4. 測後訪談
5. 讓受測者提問、針對整個流程做回饋
第一點即先幫受測者做心理建設、說明你希望得到的回饋,例如:一遇到不懂或有問題的地方就提出,看到每個頁面、進行每個步驟的時候簡單說出看到什麼、想做什麼等等。這篇文章《First-Time Usability: The Test and Script》提供了滿好的範例。
第二點簡單說明完情境後,在第三點測試進行中,跟受測者互動時最好都使用問句,讓他來說明他的想法,而不是由產品團隊推銷與解釋自己的點子。就算是受測者主動提問,也可以繼續反問他「你覺得呢?」,持續引導他說出內心的想法。他說愈多,你賺愈多!
舉例來說:
- 受測者:「這邊我應該要按 XXX 對嗎?」
- 主持人:「你覺得呢?」
- 受測者:「我覺得我好像應該要按,但是頁面上的 OOO 看起來也可以讓我(達成某任務),所以我第一眼是比較想去 OOO 的。」
- 主持人:「瞭解,就依照你認為合理的方式去做吧!」
這時可以持續追問他為什麼會這樣認為,或者也可以先記錄下來,讓受測者繼續操作並完成整個任務,待會後的測候訪談一併做更深入的討論 — — 「你剛才在操作的時候,第一次是先去 OOO,可以多跟我說明一下原因嗎?」也許是介面設計的輕重與明顯程度、文案內容、產品操作流程的一致性等等各種原因,問下去才會知道受測者實際的使用邏輯。
第四點的測後訪談,除了針對在測試時沒有跟受測者討論的議題進行追問,也可以更加了解受測者的背景、動機,補問我們沒有在問卷(Screeners)問到的基礎問題。
3. 後續分析與追蹤
上述的測試流程,最好有至少兩位產品團隊的人參與,一個主問、一個主紀錄,每位受測者離開後負責測試的團隊可以先簡單的整理記錄與做總結,並且調整測試流程和訪問內容。待所有的測試都完成後,就可以跟整個團隊一起整理、分享測試結果,並依照觀察到的問題來優化產品。
根據研究表示,找到五個受測者來做易用性測試,就足以發現大部分的問題了。每次規劃易用性測試不用測試太多人,但是可以在優化解法與流程並產生新的 prototype 後再進行第二次的易用性測試,找回第一次測試中合適的受測者再次參加,同時邀請之前沒來參加過的受測者。
除此之外,一定要將這次的經驗、結果記錄下來,作為未來要求公司做外部真實用戶測試的籌碼!
▍內部易用性測試的優缺點
不做易用性測試和使用者研究的風險在於,花了資源做出使用者不滿意、難用、沒意願使用的產品/功能/變動,直到推出上線後才發現一切都是白工。請注意,儘管做了內部易用性測試,如果找錯人(畢竟他不是真的使用者),或是沒有正確的期待與認知,這個風險還是會存在的。
內部易用性測試的優點
1. 在公司內部推動對 UX 的重視
老闆請給我一次機會!我認為最大的優點在於,對過去沒有機會做使用者訪談或易用性測試的團隊,要老闆一步到位花錢跟時間做他不確定價值如何的易用性測試也許不容易,但若是小規模的先從內部開始試驗,讓老闆看到易用性測試可以達到的效果,也許未來就有機會去找真實的使用者來測試。
另一方面,被招募來受測的同事可以更了解產品團隊的工作流程,一起參與產品設計過程,透過提供真實的意見來推動產品優化。
2. 金錢/時間成本較低
在一般的易用性測試中,金錢成本包含給受測者的車馬費,時間成本包含來來回回篩選跟招募受測者的時間;在內部易用性測試中,可以用零食打發同事,招募跟敲定時間較容易外,也比較不會輕易被放鳥(辦公室走來走去就可以碰面,跨國團隊就用線上視訊)。
如果想做多次的易用性測試,修改 prototype 之後,可以輕易找到同一個人再次搜集回饋,而不用屈就於只有部分的受測者有空、有意願再次受訪。
3. 給自己練習的機會
一方面如同前面提到過的 Pilot Testing — — 先在內部測試「測試的流程」再進行外部測試總是比較保險。
另一方面是練習和優化自己團隊易用性測試、訪談的方法,在內部測試的試錯空間較大,例如時間與流程掌控不順、PM 與設計師訪談默契不足、原本設計的流程測不出東西等等都可以發現,如果測試與訪談當下忘了追問某個問題(你為什麼覺得XXX?多問一個為什麼!)也有機會事後再找那位同事追問。
內部易用性測試的缺點
1. 很難從同事口中得到真實的回饋
同事的回饋有時候不可信!這些不真實回饋的來源可能是:
- 同事太愛公司,所以不想提產品缺點
- 同事跟你是朋友,所以怕指出產品設計很爛會傷了你的心
- 同事怕不會用產品顯得自己很笨、很丟臉,因此假裝一切都沒問題
- 同事在公司是老鳥,一直以來都有某些強烈的產品建議,順勢提出來
- 同事因為自己本身的工作內容、KPI,而傾向某種設計方向或是優先級
2. 同事是專家(或覺得自己是專家)
假設同事原本就很常在使用類似功能的產品,或常常在做競品研究的人,可能會因此非常熟悉如何設定與操作。這不能代表這個產品的易用性很高,只能代表同事真的滿強的。大家都懂行話可以說是優點,也可以是缺點,在測試過程中看似很順利,不代表真實使用者使用時也會很順利。
有些同事則是本身也懂點技術,會自主幫產品團隊想很多 — — 這個技術上要花比較多資源跟時間、這個跟其他功能會有相依性、甚至開始想要討論設計或技術的實作細節。
另一個狀況是同事覺得自己是專家,看到 prototype 後沒有先融入情境試用,而是直接提出了修改的建議與解法。在修改 prototype 的第二次易用性測試、或是產品上線後,當他發現產品團隊沒有採取它的意見,可能會有些失落、或再次強烈表達意見。
如何處理?
這些「人」的問題會造成團隊搜集到的可能不是真實的「使用者」回饋!裡頭參雜了額外的拉扯與小劇場,要避免這些狀況,只能從受測者招募與測試前的心理建設下手。
第一是在篩選受測者的時候先排除掉不適合的對象;第二是自己要先認知到可能會遇到上述問題,當下要設定正確的期待,事後也要適度篩選回饋;第三是也要給受測者正確的認知與期待,測試前先建立好規則,希望他們在聽了我們的肺腑之言後,可以用平常心來試用產品。
「嗨,我的好同事!這個測試的目標是為了讓產品更好,我們在測試的是產品本身好不好用,不是你用的好不好。所以如果你不會使用、遇到任何問題,通常是產品設計的問題。當下直接回饋給我們,不會傷到 PM、設計師的心,反而能讓我們搜集到更多真實的回饋來優化產品!你給的回饋愈真實,對公司與團隊的幫助愈大唷~」
這些難以避免的「同事」的問題,在內部團隊進行易用性測試時,風險是可以適度被降低的;但若是「使用者訪談」則就非常非常不適合找內部的人來進行,因為解讀搜集到的訪談內容、挖掘洞見的時候很容易跟真實使用者有大大的出入。
特別不適合進行內部訪談的情境
1. 產品本身還在早期發展階段
這時最重要的是找到真實的使用者、重度使用者會是誰,他們面臨的問題是什麼,我們如何幫他們解決。優化產品流程、UIUX 並不能回答這些問題,那個階段最重要的是發展產品核心價值。
2. 前期的使用者訪談
就算產品本身已經較為成熟,但要挖掘特定使用者遇到的問題、行為背後的動機,還是要找到真實的用戶才能找出值得解決的問題。
3. 產品 TA 屬性特別
如果產品很明顯是做給特定族群,尤其是特定行業的 B2B 產品,業內人士的使用方式與痛點會是同事無法提供的資訊。
▍長遠目標:真實用戶的易用性測試
內部易用性測試不應該是團隊內使用者測試與研究的全貌,而是一個過渡期 — — 先在內部測試沒有問題,長遠目標應該是說服公司能夠找真實用戶來做易用性測試,再推動真實用戶的前期訪談與使用者研究。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 157.14.224.141 (日本)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1570353188.A.CD2.html
... <看更多>