為什么應(yīng)用設(shè)計(jì)會(huì)損害應(yīng)用開發(fā)
移動(dòng)應(yīng)用現(xiàn)在已經(jīng)變得十分普及,以至于技術(shù)圈的大部分人都認(rèn)為開發(fā)應(yīng)用是一個(gè)簡(jiǎn)單直接的過程。然而,當(dāng)你揭開應(yīng)用開發(fā)的帷幕時(shí),你會(huì)看到一個(gè)充滿預(yù)算超支,代碼和素材的臃腫,以及開發(fā)進(jìn)度延遲的艱苦歷程。
上面提到的很多阻礙都是移動(dòng)應(yīng)用開發(fā)所獨(dú)有的?,F(xiàn)在的移動(dòng)應(yīng)用通常都會(huì)作為連接用戶和公司之間的主要紐帶。這就意味著移動(dòng)應(yīng)用設(shè)計(jì)涉及的人員數(shù)量是非常龐大的:設(shè)計(jì)師本身、產(chǎn)品團(tuán)隊(duì)、市場(chǎng)人員、產(chǎn)品經(jīng)理,甚至包括最終為應(yīng)用開發(fā)提供資金的用戶(或風(fēng)險(xiǎn)資本)——他們當(dāng)中很少有人能夠大概了解真正的應(yīng)用是如何在代碼層面實(shí)現(xiàn)的。
這并不是說工程師是唯一能夠理解應(yīng)用開發(fā)過程的人——只是說大部分應(yīng)用的策劃階段(也就是概念和設(shè)計(jì))和制作應(yīng)用所需的代碼部署階段(也就是開發(fā))之間都存在嚴(yán)重的脫節(jié)。
應(yīng)用開發(fā)過程的關(guān)鍵矛盾在于,負(fù)責(zé)部署最終代碼的開發(fā)者和其他人之間在文化和技術(shù)上存在的差異。換句話說,技術(shù)圈的大多數(shù)人都是造成這個(gè)問題的一部分原因。下面我會(huì)向大家進(jìn)一步解釋這點(diǎn)。
執(zhí)著于代碼無法實(shí)現(xiàn)的視覺效果
當(dāng)我們談?wù)撘苿?dòng)應(yīng)用設(shè)計(jì)的時(shí)候,我們通常所指的是應(yīng)用在 Photoshop 或者 InVison 和 Pixate 這些原型設(shè)計(jì)平臺(tái)上面所呈現(xiàn)的形象,這些功能強(qiáng)大的視覺化工具可以展現(xiàn)出最終應(yīng)用的外觀和感覺。
但是這些平臺(tái)與應(yīng)用的基礎(chǔ)代碼其實(shí)沒有直接的聯(lián)系,而且它們只能代表一個(gè)非常理想化的最終成品,但是這種想象是有可能無法實(shí)現(xiàn)的。(例如大量的動(dòng)畫,高度可動(dòng)的 UI 在視覺上是很有吸引力的,但是這些元素也許會(huì)增加幾個(gè)月的開發(fā)時(shí)間。)
然而,開發(fā)公司經(jīng)常會(huì)將精美的視覺設(shè)計(jì)作為應(yīng)用的核心參考對(duì)象。(這點(diǎn)和網(wǎng)頁設(shè)計(jì)很不一樣,后者的 HTML/CSS 最終代碼通常可以進(jìn)行實(shí)時(shí)的原型設(shè)計(jì)。)
我已經(jīng)見過很多這樣的情況:當(dāng)你向客戶展示原型設(shè)計(jì)的時(shí)候,他們就會(huì)對(duì)產(chǎn)品產(chǎn)生一個(gè)固定的印象,但是經(jīng)過幾個(gè)星期或幾個(gè)月之后,當(dāng)他們將最終成品和當(dāng)初通過的設(shè)計(jì)進(jìn)行比較的時(shí)候就會(huì)感到非常失望。
這點(diǎn)引出了一個(gè)相關(guān)的問題……
設(shè)計(jì)資源分配的矛盾
雖然原型設(shè)計(jì)可以確定應(yīng)用的外觀和功能,同時(shí)也是公司與客戶和內(nèi)部開發(fā)團(tuán)隊(duì)進(jìn)行溝通的一個(gè)重要工具,但它實(shí)際上也屬于開發(fā)流程當(dāng)中(成本很高)的一部分,而且它跟最終產(chǎn)品之間沒有直接的關(guān)系。
一旦應(yīng)用已經(jīng)完成了代碼部署,原型設(shè)計(jì)就沒有價(jià)值了,也就是說,大量的開發(fā)時(shí)間和預(yù)算都花在了一些最終會(huì)被丟棄的東西上面。另外,設(shè)計(jì)一些不會(huì)出現(xiàn)在最終應(yīng)用里面的功能也是一種浪費(fèi)資源的行為。
這種存在于原型和開發(fā)之間的脫節(jié),意味著設(shè)計(jì)師可以輕易地想出一些動(dòng)畫、UI 概念和富媒體內(nèi)容,但是它們幾乎不可能通過代碼實(shí)現(xiàn)。
在這樣的情況之下,設(shè)計(jì)師的時(shí)間和精力就被完全浪費(fèi)了。當(dāng)發(fā)現(xiàn)應(yīng)用出現(xiàn)問題之后,他們就需要進(jìn)行新一輪的設(shè)計(jì)工作——在這個(gè)時(shí)候,原型的“終稿”往往已經(jīng)通過了審批,應(yīng)用也進(jìn)入了開發(fā)階段。
缺乏真實(shí)數(shù)據(jù)的設(shè)計(jì)
在原型設(shè)計(jì)的過程中,設(shè)計(jì)師總會(huì)挑選出一些數(shù)字、名稱和圖像,展示出用戶輸入內(nèi)容在最終應(yīng)用上的***效果。但是他們通常會(huì)忽略用戶輸入內(nèi)容可以是多種多樣和凌亂不堪的——其中部分內(nèi)容可能會(huì)導(dǎo)致應(yīng)用出現(xiàn)“走樣”或者完全不可用的情況。(Dropbox 的喬什·帕克特(Josh Puckett)之前在 Medium 的一篇文章上生動(dòng)地描述過這個(gè)問題)
不幸的是,數(shù)據(jù)和設(shè)計(jì)之間的沖突一般只能在應(yīng)用公開測(cè)試階段被發(fā)現(xiàn),這已經(jīng)是比較好的一種情況,更壞的情況(也是更常見的情況)是應(yīng)用已經(jīng)上架 App Store,用戶真正開始使用它之后才發(fā)現(xiàn)這個(gè)問題。無論是哪一種情況,設(shè)計(jì)師和開發(fā)者通常都需要進(jìn)行新一輪長(zhǎng)時(shí)間的更新開發(fā)流程。
我們開發(fā)的是應(yīng)用,而不是原型
為了應(yīng)對(duì)這些難題,有人提出的一個(gè)解決方法是讓設(shè)計(jì)師學(xué)習(xí)編程。但是我的看法跟 杰西·韋弗爾(Jesse Weaver)一樣,我們都認(rèn)為這種做法既不可行,也難以接受。我們真正需要的對(duì)應(yīng)用整體有更好的理解——從它的編程基礎(chǔ)到表面的 UI 和藝術(shù)素材,并充分考慮到它在不同平臺(tái)上真正運(yùn)行的情況。
我們還需要認(rèn)識(shí)到應(yīng)用開發(fā)并非一個(gè)線性的過程,它不像是把一個(gè)設(shè)計(jì)好的應(yīng)用直接交給開發(fā)者那么簡(jiǎn)單。相反,設(shè)計(jì)師和開發(fā)者之間需要通力協(xié)作,在打造出引人入勝的外觀之余,他們還要保證這個(gè)外觀的每一步都能夠被實(shí)現(xiàn)出來。
現(xiàn)在已經(jīng)有越來越多的公司將應(yīng)用作為自己的唯一產(chǎn)品,因此按照這種方式進(jìn)行應(yīng)用開發(fā)就顯得更為重要了。