設計與工程的萬年戰爭
在軟體界,不少工程師和設計師總是會在工作上有不少爭執,其實我覺得本質其實就是不了解對方的工作。
這兩個在工作上最明顯的區別就是,設計師要的是「發散」,講究的是包容,最大程度的把各種可能和良好的創意與發想包容進去。而工程師要的是「收束」,講究的是可行性,為所有天馬行空的想法找到一個可行的實行方法。
設計師的職責:交得出創意,但要扛成本
回頭談談職責吧,一位設計師的本質職責是什麼?不就是找到一套市場解決方案,提供用戶一套理想的使用者體驗。如果交不出有創意的提案,很快就會顯得沒有價值,你我後只是一個寫文件和畫圖的機器。但理想的東西最大的問題背後要承擔的問題是「成本」。所以認清手上有什麼工具,極限和速度在哪,如何最有效率去規劃和執行就很重要了。
工程師的職責:把天馬行空變成可執行
回到工程師,他本質其實是產出可執行的實體,並且能夠提出每個天馬行空的想法一個實現的具體方案、限制、時間,並下去執行實現。但問題是經常在乎的變成「我能不能快速做到」,而非實行方案。經常衡量工程師的KPI並不是用「實現困難的東西」,而是用多「快速去產出東西」,那又為什麼要花時間在產出困難的東西呢?但反過來說,技術區別價值就是在能否最大程度去實現「老闆的夢想」,這樣自己才會顯得有價值。
工程師的立場:不是做不到,是時程內做不到
工程師的立場來說:
當主管覺得要你做充滿動畫的簡報,但你手上可以使用的工具只有PowerPoint,但是他希望明天就可以給他呢?你心裡想著,雖然不是做不出來,但只有1天怎麼可能做得出來?但老闆卻覺得,做簡報不就是1天能搞定的事?於是乎你就回答:「做不到啦!」但問題並不是「做不到」,而是「時程內做不到」。
設計師的立場:同一套系統,不同的人做不出來
設計師的立場來說:
假設你今天規劃一套系統,但是得交付給其他工程師做,但那名工程師卻回答你「做不到」。但是這系統規劃很可能只是你抄隔壁公司的系統架構,你可能很疑惑會想問:「為什麼做不到?」。然而問題是,那位工程師可能只是剛入行的菜鳥,但這套系統卻是頂級企業的資深工程師做出來的。
但現實是公司總是又要馬兒好又要馬兒不吃草,你相信一個心臟移植手術的手術費只有10萬嗎?那背後龐大的成本肯定有一個人買單,或是⋯⋯根本做不到。所以同時要兼具整套的軟體技術其實實在不太現實,最後搞得全部的能力都是半套三流,人一天只有24小時,能學到什麼程度?
要理解對方,只能換位思考
回歸主題,其實要理解對方,最好的做法就是換位思考。當你做不到換位思考,你就永遠困在自己的思考能立場,那思維依然被困在那個位置,無法拉抬上更高的層級。