在互聯網產品相關職能中,有部分叫做前端開發(front-end web developer)的工作,到底屬於設計還是技術?我個人認為是既要設計水准也要技術含量,不過講起來似乎有點矛盾。曾經爭論不休,因為之前的軟件項目管理從沒有涉及,這也就是曾經說過,除可用性外只互聯網產品才有的可訪問性、兼容性、標准化等指標。
通過前端開發的例子更能證明,考慮web-based的可用性和可訪問性必然至少了解客戶端代碼(不是第一次第二次提了),這是我們職業生涯進階的門檻。因為構成互聯網產品基礎的就是每個客戶端頁面,否則所有idea只建立在空中花園之上。尤其項目管理中,90%的矛盾來源於溝通不善,90%的溝通不善來源於知識結構不對等。
在網站產品管理發展相對成熟的過程中,幾乎所有公司都是把前端開發安排在產品團隊的組織體系之下。從這點起我開始深入思考設計與技術的聯系,“做技術的、做設計的”常見於資深工程師和資深設計師自謙的介紹,但是我越來越發現這個說法有問題。通常理解做技術就是寫代碼,做設計就是畫圖什麼的,其實都不太准確。
資深工程師都了解,整個代碼框架、邏輯需要精心設計才可能達到良好實用性、適應性、可維護性、可擴展性、可靠性、可量測性的境界。好代碼就是藝術品,那不是設計是什麼?豈止技術那麼簡單?軟件技術領域有個熱門職位叫Software Architect,也有專職Test Architect等。
資深設計師都了解,熟知整個業務體系,充分建立起以用戶為中心的設計模式和產品管理機制,保證產品用戶友好、開發者友好、搜索引擎友好並不是容易的事情,那不是技術是什麼?又豈止設計那麼簡單?互聯網技術領域也有類似職位叫Information Architect,在歐美相對成熟。
也就是說,真正工程師、設計師解決的問題,都需要architecting,都需要designing,都有技術含量。並且在信息傳達角度,通常所說“設計”與“技術”並不在同個維度。反過來理解,沒有創造性的工程師只是程序員,沒有創造性的設計師也就是設計(專)員吧。