“In writing, you must kill all your darlings.”― William Faulkner
Prototype一詞目前最常見的翻譯為『原型』,意指在實際製作成品之前,先用較簡易的方式將概念具現,以求能以低成本早期取得使用者回饋。這放在工業設計上,可能是從早期數百種草圖中挑出來幾個做成的紙板模型;從app UI/UX上,可能是用invision或proto.io製作的;遊戲上就更精彩了,因為沒有既定形式,各有各的獨門絕活。我個人最喜歡的例子是Journey:
比較一下完整的Trailer:
他們用簡單到不可置信的方式成功捕捉遊戲的核心機制,並有效進行調整。
我的經驗上,相較於這些許許多多的設計師,軟體工程師在prototype上的概念比較薄弱。或許是職業使然吧?設計師因為是擘劃藍圖的人而不是實際下地抹水泥的人,這類實務對他們不但是習以為常,更是實際跟工程師溝通時不可欠缺的工具。但工程師因為可以直接做出來,常常覺得prototype只是多了好幾次工,增加麻煩而已。
但我們還是需要prototype:prototype某項設計、prototype某項功能、prototype整個產品的最小集成看看感覺。因為實作成分多,結果就是常常看到有人說要給prototype,給出來的卻是MVP(minimum viable product,最小可行產品)。
我個人認為Prototype對工程師來說,方法不限,但最重要的就是要快速累積自身在目標領域的經驗。要想第一次做就直接攻頂是懶惰不切實際的想法,我們大多能承認沒練過贏不了運動比賽,但為什麼常常會覺得沒練過就能直接做出好產品呢?
這跟MVP是很不一樣的。MVP有針對目標市場客群以及產品主要解決的問題所制定出的最小規格,prototype沒有。如果要擺個先後,prototype應該是要從MVP的規格中找出高風險、高未知的部位去卯起來衝撞,透過產出一些準備拿去丟資源回收的垃圾來了解這領域到底是怎麼回事,如果能找到事先因為了解不足而忽略掉的難題更是好棒棒。所以另一個很根本的分別是prototype是要拿去丟的,MVP是要拿去用的。如果你的prototype不會拿去丟,那一定是什麼地方搞錯了。
在graphics design領域中有個實務方法叫做formstorming,簡單來說,就是針對某個主題快速產出大量的具現,例如:100種A字母、100種代辦列表、100種『快樂』,等等;從Graphics design: the new basics一書的說法,『這是為了用最快的速度把爛點子消耗掉』。
舉個前陣子和同事們一起做的實例:Implement pending thank-you page after redirect。在接了一些會導出WordPress.com再導回的金流平台後,為了增進使用者體驗,我們要在網站間的重導中加入一個『處理中』的頁面。我們先花了大約一週的時間做了PoC,有了這個PoC之後就可以提出具體解決方案與大家討論,之後才實際進入產品等級的實作。相較於prototype的一週一個醜醜的大PR,這部分則是從3/26到4/13花了近三週的時間,用了10個PR以及數個非公開的後端patch才完成。
最後總結一下,好的prototype必須:
- 幫助你快速累積經驗
- 要從高風險高未知的地方做起
- 最後拿去丟資源回收
真的,拿去丟。地球會感謝你。