OOUX:一個面向對象的體驗設計思維
編輯導語:本文介紹了一種能夠幫助保持 UI 的可擴展性和一致性的思路,通過五個方面展示了一種新的方法,即:圍繞內容元素構建用戶體驗的“面向對象”的一眼設計方法,感興趣的小伙伴一起來品讀吧。
基于任務的用戶流是 UX 設計的黃金標準。首先,檢查用戶的目標。接下來,確定實現這些目標所要完成的任務。最后,將這些任務放入一個邏輯序列中,這樣就是一個基于用戶的流程。這種方法是 UX 設計的主要內容之一,它是經過測試和證明的。
然而,本文介紹了一種不同的方法——圍繞內容元素構建用戶體驗的“面向對象”的一眼設計方法。這是一種能夠幫助你保持 UI 的可擴展性和一致性的思路。
為什么面向對象的用戶體驗設計方法有助于構建可擴展和一致的系統呢?
“隱喻”一旦被發現,就是一個完全確定的東西:對象的集合、對象上的動作以及對象之間的關系?!?Dave Collins,設計面向對象的用戶界面(1995)
本人從事應用程序和網站設計 20 多年。作為一名設計師,我總是稱自己為系統設計師。這是因為我將應用程序視為一個個內容塊的編排,每個內容塊都具有不同的屬性和功能,它們共同組合創造了用戶體驗。過去,這種思路幫助我建立了更連貫的用戶體驗,可以隨著業務需求的增長而增長。
一、基于任務的思維方式所存在的問題
我仍會使用設計流程,但我認為它是一種驗證系統的方法,而不是我的思維過程。逐例處理的方法將迫使你不斷整合需求,并更新相關組件。這將花費時間,但如果不這樣做,會導致許多組件和系統難以維護。
最終,隨著更多流程分叉,設計系統將達到臨界點。此時,你要么重新設計重要的部分,要么弱化設計系統。如果開發還沒有開始,重新設計還是有可能的,但需要大量的設計工作。如果開發已經開始,事情就會變得更加棘手。因為設計變更不僅需要額外的設計工作,還涉及額外的開發工作。
我們一定都經歷過這種情況。你是怎么做的呢?長遠來看,這對你的用戶界面有什么影響?一兩次例外并不是最糟糕的,但是每次更新,你都將有更多的組件和異常情況需要考慮。對于用戶、設計師和開發人員來說,保持系統清晰簡潔將變得更加困難。
二、面向對象的思維方式介紹
讓我用一個類比來說明這種思維方式。想象一下,你正試圖探索一個黑暗的地下室。你可以打著手電筒在里面穿梭。你也可以打開頂燈,從高處看。使用手電筒能夠幫助你獲得特定路線的更多細節,但你可能會錯過場景的整體畫面。同樣,頂燈能夠為你提供整體概況,但你可能會錯過一些細節。但是詳細描述一個系統要比改變它更容易。
面向對象的思維方式超越了個人用戶目標(手電筒),它從整體的角度(頂光)來考慮界面。面向對象的方法首先查看所有的內容和數據(地下室的盒子),然后試圖創建一個高級地圖、一個定位系統、一個可擴展的心智模型,最后才開始詳細說明它的細節(打開盒子)。
面向對象的思維方式并不新鮮,這在許多編程語言中都很常見。很多人可能已經在某處應用了面向對象的思維。但就在 2016 年,索菲亞·沃切霍夫斯基·普拉特(Sophia Voychehovski Prater )第一次創造了這種面向對象的 UX(OOUX,Object-Oriented UX )方法。
OOUX 從內容出發,而不是界面或流程。面向對象的方法基于真實的對象對應用程序進行建模。這些對象不一定是物理對象,而是用戶可以聯想到的東西。舉個例子:在購物體驗中,這些對象將是商品、貨架、購物車和收銀臺。OOUX 的目標是識別所有涉及的對象,其核心內容元素、元數據、嵌套對象和用戶操作。
面向對象的體驗設計(OOUX)方法如下:
- 從用戶目標出發,確定實現這些目標所需的所有對象,并確保這些對象對用戶有意義;
- 確定對象之間的關系。在處理用例時確定他們之間的關系;
- 接下來,確定每個對象所需的操作。將用戶需要完成的事情與對象相映射,從而實現他們的目標;
- 最后,你需要確認實際的內容元素:核心內容和對象元數據(也稱為屬性)。
請記住,這個過程可能不是線性的。你可能偶爾需要回滾,直到整個系統是穩定的。一旦所有內容有了索引,這些元素就會被優先排序。因此,無論對象在何時何處顯示在用戶界面中,它都遵循一致的內容層次結構。
我不會深入討論實際過程。有很多優秀的文章從各種角度涵蓋了這一點。如果你想了解更多,可以查看 Lindsay Eryn Sutton 的《An introduction to object-oriented UX and how to do it》。我將帶你了解面向對象的思維方法的兩個關鍵概念,幫助你在整個過程中做出更好的決定。
三、以面向對象的體驗設計思維進行設計
“抽象”是面向對象程序設計背后的核心概念之一。其方法是將對象簡化為相關信息。從體驗設計的角度來看,我將擴展這個概念。利用抽象概念很重要,它能夠幫助你確定某些信息應該組合成一個對象還是拆分成多個對象。
將你的應用程序想象成賣水果這件事。水果是一個對象,如果用戶界面對所有水果的處理都相同,這個抽象程度就很棒。如果某些水果需要不同的內容元素,你可能會將它們拆分開來,那么你將會有多個對象,例如蘋果、香蕉等,而不是一個叫做“水果”的對象。
利用抽象級別能夠幫助你控制系統的復雜性。對象越多,越復雜。了解哪個級別最適合你的應用程序可能需要時間。你可能需要創建不同的抽象模型并進行一些迭代。不要著急。內容對象決定了基準線。對象連同對象之間的關系,將共同決定架構和心智模型。
對象及其關系創造了連貫一致的構建模塊,形成了可識別和可關聯的心智模型。
此外,這些對象可以幫助你確定和設計各個組件。在大多數情況下,內容對象會在整個用戶體驗的不同位置被使用。若要了解它們的實例化位置及其出現的變體數量,可以檢查它們的嵌套位置。內容對象的組件的優先級將幫助你知道在哪個時刻需要哪些組件。這種方法可確保整個應用程序或網站的外觀一致。
對象及其關系可以讓你很好地理解接口的需求。盡管它確實需要一些前期的理論工作,但它將創建一個更加一致的系統。此外,從長遠來看,這將節省你的時間和精力。那么可擴展性呢?
四、擴展面向對象的系統
封裝是面向對象思維的另一個關鍵概念。對象應該獨立工作,很少受到或不受到外部影響。只有嵌套的對象才應該有某種程度的依賴關系。從用戶界面的角度來看,這對于創建更獨立工作的用戶界面組件很有用。
從用戶界面的角度來看,每個對象都應該通過它自己的組件來呈現。大多數對象將有多個實例,但是這些實例化的層次結構應該是獨立的。它們應該受到保護,免受外界影響。
讓我們回到上文提到的水果的例子,想象一個應用程序中的水果對象。不管對象在結賬時顯示在網格、詳細信息頁還是購物籃中,每個組件應該獨立于顯示的位置。位置可能會影響可見操作,但是內容和渲染方式應該保持不變。這個概念將有助于設計更多封閉的交互和獨立的用戶界面組件。
封裝對象能夠創建更多獨立擴展的封閉獨立的 UI 組件。
之前我談到了在基于流程設計時面臨重大設計變更的情況。如果做得徹底,這就是面向對象方法的閃光點。最初規劃系統及其內容時所做的努力應該會讓你考慮到所有會改變規則的對象。在系統建模上所花費的額外時間應該為設計的可擴展性打下基礎。此外,由于內容對象的封裝性質,今后在UI層面只需很少的整合工作。即使出現新的需求,對整個系統的影響也比較小,只是一兩個對象的補充。因此,需求的變化主要是一個進化過程,而不是更廣泛的重新設計。
五、為什么流程仍然重要
正如我在開始提到的,我仍然會使用基于流程的設計方法,它在我的設計過程中仍然起著至關重要的作用。一旦系統就位,基于流程的思考能夠幫助我捕捉更多的上下文細節。此外,面向對象的方法是相對抽象的,它與開發人員的心智模型一致。然而,對于產品團隊或其他非技術利益相關者來說,面向對象的概念可能很難理解,而流程有助于演示整體系統并使其具象化。
總結
面向對象的體驗設計(OOUX)提出了一種不同的思維方式來設計應用程序。它從整體的角度處理用戶界面,把內容放在第一位,幫助設計師建立一個以對象及其元素、屬性、動作和關系為中心的系統。
玩轉系統的抽象層次,能幫助設計者控制系統復雜性。面向對象的設計思維有助于創建連貫一致的構成要素,共同形成一個可識別和可關聯的心智模型。對象的元素優先級驅動各個內容層次結構,它確保整個應用程序的UI組件一致。封裝的概念有助于設計獨立擴展的封閉 UI 組件。因此,該方法支持應用程序的自然增長。它減少了重新設計和重新開發重要部件的需要。
最終,如果這篇文章啟發你深入研究面向對象的 UX,也許你甚至可以在你的下一個項目中嘗試一下。
原文標題:Stop thinking about flows, start thinking about objects;作者:Matthias Dittrich
原文鏈接:https://uxdesign.cc/stop-thinking-about-flows-start-thinking-about-objects-16143c1b8b1f
翻譯:劉倩茹;授權獲?。簞①蝗?;文章審核:王翎旭(益達);編輯:章欣怡
本文由 @三分設 翻譯發布于人人都是產品經理,未經許可,禁止轉載
題圖來自 pixabay,基于 CC0 協議
一看標題,就感覺涉及到產品設計的專業問題,擁有面向對象的體驗設計思維蠻重要的。