2015年12月31日 星期四

什麼是設計?


 Design Q&A by Charles Eames 中譯

Q: 你對設計的定義是什麼?
A: 人們可以將設計描述為安排元素來達到特定目的(purpose)的計畫。

Q: 設計是一種藝術的表現嗎?
A: 我寧願說是一種目的的表現。它可以... 如果它足夠好,之後會被判斷為藝術。

Q: 設計是一種為了工業目的的工藝嗎?
A: 不是,但是設計也許是某些工業問題的解。

Q: 設計的限界是什麼?
A: 問題的限界是什麼,設計的限界就是什麼。

Q: 設計是只關注一部份環境(environment)的學科嗎?
A: 不。

Q: 它是一種通用表達的方法嗎?(Is it a method of general expression?)
A: 不,他是行動的方法。

Q: 它是一個人的創造物嗎?
A:  不,事實上每個人都會受到前人的影響。

Q: 設計是團體的產物嗎?
A: 通常是。

Q: 有設計倫理嗎?
A: 設計總是有限制,通常也包含倫理這項。

Q: 設計意味著產品是有用處 (necessarily useful) 的嗎?
A: 是的,即使用處可能很微小。

Q: 人們可以光為了樂趣的作品合作嗎?
A: 誰會說樂趣是無用的?

Q: 設計的過程中要承認限制嗎?
A: 設計和限制有很大的關係。

Q: 什麼是限制?
A: 設計問題的有效關鍵:設計師能辨識出越多限制越好、他的對於這些限制一起工作的意願和熱情。限制像是金錢、大小、強度、平衡、表面材料、時間。每個問題都有它自己限制的列表。

Q: 設計是短暫的嗎?
A: 有些需求是短暫的。大部份設計是短暫的。

Q: 該朝向短暫還是永恆的設計前進?
A: 如果是一般性、通用的需求和設計,會朝向永久。

Q: 設計是為了誰?
A: 需求。

Q: 你曾經被迫接受妥協嗎?
A: 我從未被迫妥協,但我樂意接受限制。

Q: 練習設計的首要條件是?
A: 辨認需求。(Recognition of the needs.)

看完影片大概知道,設計和目的、需求、問題、限制是息息相關的。

---
接下來看維基百科上對  Design 的定義。定義來自這篇 paper - A Proposal for a Formal Definition of the Design Concept by Paul Ralph et. al. 

他提出來的定義如下


Design

(noun) a specification of an object, manifested by an agent, intended to accomplish goals, in a particular environment, using a set of primitive components, satisfying a set of requirements, subject to constraints;

(verb, transitive) to create a design, in an environment (where the de- signer operates) 

看了應該不知道想表達什麼,所以他畫了張圖,這樣就清楚多了。

Agent 是設計的人。
產出(Output):對某個物件的規範/規格
然後這個 Output,要完成某些目的 (Goals)、受到某些限制、滿足一些條件、產出在某個環境、由一些元素所組成。

舉例來說:

平面設計:指的是設計的的產出位在的環境是 2D 平面。

服務設計、字型設計、介面設計、使用者體驗設計、服裝設計:指的是它們的產出 (Specification of Object) 是什麼。

物件導向程式設計:指的是 primitive components 是物件、產出是程式。

使用者導向設計 (UCD):指的是設計的產出的目的 (Goal) 和使用者有關。

作者進一步用動詞來看設計,畫了這個圖,清楚地標明什麼是設計這個動作的輸入 (Input) 和輸出 (Output)
最後他又把這個圖改寫成設計的新定義


design activity as a process
executed by an agent
for the purpose of generating a specification of an object based on: 
> the environment in which the object will exist, 
> the goals ascribed to the object, 
> the desired structural and behavioral properties of the object (requirements), 
> a given set of component types (primitives), 
> and constraints that limit the acceptable solutions. 

有沒有很複雜?簡單說 「設計活動就是在某些限制下,生出某個東西來達成某個目的的過程。」
好像在說廢話有沒有~~~ XD

什麼是設計?


 Design Q&A by Charles Eames 中譯

Q: 你對設計的定義是什麼?
A: 人們可以將設計描述為安排元素來達到特定目的(purpose)的計畫。

Q: 設計是一種藝術的表現嗎?
A: 我寧願說是一種目的的表現。它可以... 如果它足夠好,之後會被判斷為藝術。

Q: 設計是一種為了工業目的的工藝嗎?
A: 不是,但是設計也許是某些工業問題的解。

Q: 設計的限界是什麼?
A: 問題的限界是什麼,設計的限界就是什麼。

Q: 設計是只關注一部份環境(environment)的學科嗎?
A: 不。

Q: 它是一種通用表達的方法嗎?(Is it a method of general expression?)
A: 不,他是行動的方法。

Q: 它是一個人的創造物嗎?
A:  不,事實上每個人都會受到前人的影響。

Q: 設計是團體的產物嗎?
A: 通常是。

Q: 有設計倫理嗎?
A: 設計總是有限制,通常也包含倫理這項。

Q: 設計意味著產品是有用處 (necessarily useful) 的嗎?
A: 是的,即使用處可能很微小。

Q: 人們可以光為了樂趣的作品合作嗎?
A: 誰會說樂趣是無用的?

Q: 設計的過程中要承認限制嗎?
A: 設計和限制有很大的關係。

Q: 什麼是限制?
A: 設計問題的有效關鍵:設計師能辨識出越多限制越好、他的對於這些限制一起工作的意願和熱情。限制像是金錢、大小、強度、平衡、表面材料、時間。每個問題都有它自己限制的列表。

Q: 設計是短暫的嗎?
A: 有些需求是短暫的。大部份設計是短暫的。

Q: 該朝向短暫還是永恆的設計前進?
A: 如果是一般性、通用的需求和設計,會朝向永久。

Q: 設計是為了誰?
A: 需求。

Q: 你曾經被迫接受妥協嗎?
A: 我從未被迫妥協,但我樂意接受限制。

Q: 練習設計的首要條件是?
A: 辨認需求。(Recognition of the needs.)

看完影片大概知道,設計和目的、需求、問題、限制是息息相關的。

---
接下來看維基百科上對  Design 的定義。定義來自這篇 paper - A Proposal for a Formal Definition of the Design Concept by Paul Ralph et. al. 

他提出來的定義如下


Design

(noun) a specification of an object, manifested by an agent, intended to accomplish goals, in a particular environment, using a set of primitive components, satisfying a set of requirements, subject to constraints;

(verb, transitive) to create a design, in an environment (where the de- signer operates) 

看了應該不知道想表達什麼,所以他畫了張圖,這樣就清楚多了。

Agent 是設計的人。
產出(Output):對某個物件的規範/規格
然後這個 Output,要完成某些目的 (Goals)、受到某些限制、滿足一些條件、產出在某個環境、由一些元素所組成。

舉例來說:

平面設計:指的是設計的的產出位在的環境是 2D 平面。

服務設計、字型設計、介面設計、使用者體驗設計、服裝設計:指的是它們的產出 (Specification of Object) 是什麼。

物件導向程式設計:指的是 primitive components 是物件、產出是程式。

使用者導向設計 (UCD):指的是設計的產出的目的 (Goal) 和使用者有關。

作者進一步用動詞來看設計,畫了這個圖,清楚地標明什麼是設計這個動作的輸入 (Input) 和輸出 (Output)
最後他又把這個圖改寫成設計的新定義


design activity as a process
executed by an agent
for the purpose of generating a specification of an object based on: 
> the environment in which the object will exist, 
> the goals ascribed to the object, 
> the desired structural and behavioral properties of the object (requirements), 
> a given set of component types (primitives), 
> and constraints that limit the acceptable solutions. 

有沒有很複雜?簡單說 「設計活動就是在某些限制下,生出某個東西來達成某個目的的過程。」
好像在說廢話有沒有~~~ XD

2015年12月20日 星期日

台大不一樣思考社:設計思考工作坊 Day 2

組合虛擬人物 (CC)

第二天一早 Recap 的方式就是,從前一天的三個人物中合成一個叫 Jessica 的虛擬的人物 ( Composite Character ),這部分是很主觀的,先基於從現有列出來的 needs 和 insight 選出覺得有發展性的點。最後再藉由腦補內容、畫使用者畫像,像是 Persona 一樣把虛擬人物立體出來,因為花了一整天生出來的人,大家其實對他很熟悉 ( 比隨意的 Persona 熟的多 )。

腦力激盪  (Brain Storming )

CC有幾個 insight,最後選的 insight 是現代人會 Do something 來填補早餐的空白時間、像是滑手機,所以腦力激盪的目標變成就是想出一個「讓早餐時間不是空白時間」的方法。之後就是「不批評」「不打斷的」「不離題」的 Brain Storming 了。因為有了 Jessica,這個每個人都熟悉立體人物,溝通的時候變得方便很多,就像是有了使用者的原型一樣。Brain Storming 就是爽爽的啊,不過這次特別強調了「要延伸」他人想法、「要畫圖」要有「Title」等重點。

發想的差不多後,用「強迫聯想」的方式做 Brain Storming,這部分也是蠻新奇的,先列出「教室」和「辦公室」裡的不相干用品,然後強迫生出可以滿足人物 insight 的想法,這邊會先卡住,然後只要有人開始分享,就會變得很多神奇的想法出來。最後再把所有的想法大概有 100 個吧,一人數票投票列出幾個、然後在二次投票,二次投票的時候才想起 Jessica,想哪一個想法比較可能滿足她。最後選擇用動的食物吸引注意力的迴轉壽司早餐。(好像是小隊輔提出來的... XD) 還有設定要驗證的幾個小想法,像是少量食物、多樣組合 blah 的

製作原型 (Prototyping)

快樂的 30分鐘 maker 時間,高級的扮家家酒和演戲,多次試驗。大家都玩開了~ 我只能說大家的手做能力很強大。

請使用者測試 ( Testing )

這步真的讓我看到 Prototype 的威力所在,第一個使用者就發現這個原型對使用者的感覺,雖來一進來就盯著移動中的食物,但跟我們思考的不一樣。因為迴轉壽司早餐比較像是有空閒時間才會去的地方,對想省時間的使用者。另外還有會發覺原型的問題,像是輸送列應該一開始就要有早餐在上面、最好加上文字說明。除了輸送列的早餐外,還要有菜單、送茶水的服務生不用帶位,特別強調是週末,悠閒的週六早上十點之類的情境。修一修加上演戲,原型多少有解到空白時間的問題,在第一個 iteration 應該算是不錯吧。

各小隊火力展示 ( Demo )

很意外的是其他六隊都做 App,而且有試著嘗試去解我認為早就被解完的問題:「有效率地得到早餐。」本來以為台灣早餐店林立、便利商店林立,早餐不用跑很遠、更不用自己做,還會剩下什麼需求沒被滿足嗎?結果是「熱騰騰好吃的早餐店要排隊」,於是就寫個注重體驗的訂餐、捷運門口取餐的App,然後第一次實體看到 App 的 Prototype長什麼樣子,點點點、換頁之類的,想到我做網頁、寫 App 錢真的也該先做好 Prototype 找個使用者來用用啊~~~

結語
這個工作坊是個團隊討論、體驗設計思考流程的好地方。本來以為價位有點高 ( 和我以前辦其他社團活動比 )。不過看到一組請三個陌生人使用者來受測、中午吃的還不錯、設計 conference 都很貴、1:2 的教練學員比,總總因素來說是 C/P 還不錯的。列一下 pros and cons:

pros:

  • 可以深入的練習觀察技巧
  • 思考使用者的需求和需求背後的原因
  • 快樂的團隊思考、討論體驗
  • 大量便利貼的利用技巧
  • 得到一種完整的設計流程體驗
  • 真實的和使用者接觸
  • 小隊輔們還蠻用心的
  • 可以碰到許多願意用溝通、用設計改變世界的人
  • 小遊戲很好玩
  • 一直放舞曲很High

cons:

  • 和現實真的有一段距離 (感覺 TA 是學生)
  • 像「人本機構」的只鼓勵、不批評的環境讓「擁抱失敗」變成口號。
  • 建立「需求」、「insight」、「CC」,的過程中用了大量的假設,推論一錯就 GG
  • 完全不做現有解法的比較與調查 (像是摩斯訂餐 App)
  • 不介紹失敗的例子
  • 過度強調人本,但除了人的需求。技術和商業的重要性都不說明,一個好的偵探除了觀察和推理能力,對事物的知識也是很重要的。
  • 只有練習三個人以上的團體技巧。
---
有點小進步,不過感覺和 Design Researcher 的路還有好遠好遠。
最後有點太專心討論和解題,好像沒有好好認識其他人啊,有點可惜~

心理系的小隊輔一江、設計感的 Jarah、到處出現的 Boy、強大的設計師 美辰、很有主見的獸醫系 元皓、講話有趣的東璋、眼鏡很帥的財金系 軒凱、討厭心智圖但會組織演講的柏儒,這次有點忘記一期一會的決心...

記得感到痛苦和累的時候,稱讚一下自己吧「你努力離開舒適圈了喔 :p」

2015年12月19日 星期六

台大不一樣思考社:設計思考工作坊 Day 1

和藝術不同,設計是一門客觀的學問。重視觀察、基於觀察做出像偵探一樣的推論、做出像科學家一樣的假設,用同理心而不是同情心去理解這一個人的行為和需求、從使用者的角度去看這個世界。

問題是和需求是不同的:

從8層樓高優雅的降落到地表不受傷是一個問題。但大多數人這輩子都不會有這樣的需求。


需求要用動詞來描述而不是名詞:
需求:「吃到好吃的早餐」 => 人自動會把行動連接成
  1. 怎麼 「吃到好吃的早餐?」
  2. 為什麼要 「吃到好吃的早餐,原因是什麼?」
需求「好吃的早餐」 => 推理就的莫名其妙的卡住,加上 5W1H 都很不順!




今天請大家解的題目是「如何提升吃早餐的經驗」。

流程:
   1. 先用便利貼討論要訪談使用者的問題、把相近的問題Group後,針對每一類問題畫正字投票.

   2. 街訪:會有一個主訪、副訪和紀錄。大概十分鐘,主訪負責掌握進度、副訪負責見縫插針。

   3. 把數個人紀錄的資訊口述下載,每個人寫下事實 (Fact) 到便利貼上 & 分類。

==== 以下開始小組討論、瘋狂的 blocking I/O 超花時間,為什麼不繼續平行計算啊 ====
   4. 試著從事實 (Fact) 中,推出這個人的需求 (need)
   5. 從這個人的需求 (need),找出洞察  (insight)

[來到了 long long complain section]
一人一票決定街訪問題,真是不太好,就是一種讓人膚淺思考的快速解決方式吧、然後想問題的時候,好像沒有一個比較好的想法,怎麼問會得到提升早餐經驗的資訊,不過強調 empathize 那這次就不預設立場試試吧

從列需求就一直卡,用動詞描述真的很重要 ( 回家才看文章才懂 ),然後訪的幾個學生都不是很愛吃早餐,他們的簡單需求早就在這個台灣早餐文化發達、便利商店充斥的環境滿足了。還說「提升早餐體驗」是簡單題目,結果需求列完,洞察完全列不出來。需求出來就解啊,為何要落在為做「設計思考」強說洞察的陷阱裡,Inception 一定要下到第幾層嗎?不過別組有些很順利的,希望明天報告的時候能搞清楚,我們和別人不同在哪?做錯了哪一步?

另外一個是「提升早餐體驗」的題目定下來了,我們不知道客戶是誰、沒有辦法詢問客戶,沒法想問題背後的問題 / 找到真正要解的問題。然後一開始也沒決定是要生產品還是服務,也沒有定好 TA。最後我們這組 TA 好像是學生,但如果要解這個問題,自身的經驗、非訪談的觀察就不能使用。

然後很討厭,台上報告有事沒事後面工作人員就很 high 的附和之類的,做設計一定要這樣搞嗎?不過開始前玩小遊戲提神真的還不錯。

現在的想法就只有,使用者都想跟朋友一起吃早餐,那就請宿舍早餐店提出兩人同行,第二人早餐六折的優惠,這樣所有人的體驗都會好,早餐店也會比較賺錢。

---
現在只能安慰自己,花了 1,600 元兩天就發覺 Design Thinking 沒啥用,也是不錯的收穫,反正還有一堆其他的設計流程。 UX 這條路 QQ 回家重看了設計的心理學的 Design Thinking 一章,特別強調不要用訪談耶...Orz


Don't try to be original, just try to be good.
I don't want to be interesting, I want to be good.
( 不一樣思考又怎樣啊... 解問題為什麼不先 google / survey? )


明天就是嘴砲的 brain storming~ to be continued.

延伸閱讀:
像福爾摩沙一樣解決社會問題 (同情心、同理心、觀察力)
Problems Are Not Equal to Needs
Don't try to be original, try to be good.

2015年12月6日 星期日

Firebase:前端工程師的神兵利器

Firebase.com 像其他的「後端即服務」( Baas, backend as a service ) 一樣,不過他的 Tutorial 超簡單,你只要會用 node 的 npm 大概就夠了。

Firebase官方超簡短教學,看了這個我就被吸引住了。

React 讓人解決 MVC 中的 View。Firebase 讓人不用建 server、遠端登入,只需要用 web user  interface 就建出以 Json 為格式的即時資料庫、Rest Web API、One command deploy ( firebase deploy )、社交帳號的管理 ( Oauth 介面的 Facebook、Google、Twitter blah blah 的登入管理) ,還有靜態 CDN 資料發佈、Custom domain mapping ( 這個要花一點時間等 DNS Propagate )。

Firebase.com 去年被 Google 買走、Parse.com 前年被 Facebook 買走、Apple 也推出了自家的 CloudKit,這些「後端即服務」的公司,讓你 不用再管 Server & 資料庫。你只需要有整理資料的能力 ( Structure Data ) 和前端設計的能力,就能當全端工程師了 :)

各家都有基本的免費流量,一個月 100 GB ~ 2TB 都有,但一旦升級之後就會變很貴喔 要小心。簡單說,以後 Hackathon 不用找後端工程師了,也不要再傻傻的去 github 找看都看不懂的 Hackathon Starter Kit。

---
真心覺得,Startup 剛開始用 Baas 就好,省 Server 和後端工程師的錢。

2015年12月1日 星期二

React UI 心得文之一

這週在忙著刻一個大元件,中間有包兩三個中元件、然後中元件下面又會有小元件。要記得React 是負責 UI 的啊,千萬個不該在小元件裡面存 state。存了改了兩天還是會有問題,小元件如果存了狀態,常會有那大元件重 render 的時候,設 property 卻無法更新小元件,因為小元件的 state 不一樣了。兩天之後把大中小元件全部改成 dumb component 真的快樂的不得了,程式碼變少了、邏輯也清楚了。


刻 React 元件的方法:

  1. 盡量刻 Dumb Component,把它當成 function 去想要提供什麼參數
  2. parent component 要對 child componet 命名和設 handler(childId, value)
  3. 事件發生時就呼叫 parent 傳來的 handler,說你是哪個 child和發生了什麼
就這樣遞迴做下去,最上層的 App component 就可以知道,哪第三個child component 的第四個 child component 發生了什麼事,然後做一些處理。


客制化 React 元件外觀的方法:
  1. 幫元件的各種 property 類別放置對應的className
  2. 用 webpack 的 css loader 幫元件建立 local 的 css scope,然後用一個 scss 檔去管理一個元件,這樣一切都會輕鬆的多。( 參考 React Toolbox )
其他刻外觀小心得:
  1. 多用 em, rem
  2. 用 css 幫背景上色的方式,快速看物件是否對齊
  3. 用 Mac 的放大鏡 ( ctrl + 雙指滑動 trackpad )
  4. 用 css trick cursor 去引導 behavior
  5. 用 font-weight 和 color 的 alpha channel 去做細部微調
學各種 React 相關 Library的方法:一定要從看完官方的 Tutorial/Guide 開始,網路上的介紹文章通常都挑簡單的地方說,十篇有九篇都講一樣的東西,還不如看官方的 Tutorial/Guide 把重要的東西有系統的一次學會。很重要所以特別粗體一下...

使用者經驗部分:

碰到客戶想要重新客製化系統的時候
  1. 照他們舊有的行為,模擬跑自己刻的新系統幾次,很快就可以知道缺了什麼、哪裡會生出問題,這樣的方法比在那邊天馬行空的猜測會方便的很多。例子: 新報表系統拿舊系統的許多報表重新打一次。
  2. 用心智圖的方式窮舉可能的行為,不然光是用腦袋想一定會漏掉很多細節。

和他人合作的部分

一定要定時 Sync 進度,時常 commit。不要隱匿進度落後、缺失、維護 local state,想說這樣可以加班追回來。因為很多事從他人的角度來看會清楚的很多,也方便別人調整。不要裝弱、裝強,快放棄那沒用的自尊心吧。