Posted
デザイナーはコードを書かなければいけないのか?
2/4(土)に開催されたWPJ Conference Vol.1に参加してきました。
このイベントでは、”デザインとコードの融合”をテーマにしており、登壇者の方々はアプリ開発やWeb制作のデザイナーを本業としながら、併せて”コードも書く”という人達でした。
会場には主にデザイナーの方々が参加しているようでしたが、やはり”コードを書くデザイナー”という存在は少数派のようで、かなり多くの関心を集めている印象を受けました。僕自身、デザイン学校を卒業した後に新卒で入社した企業でプログラミングを覚えることになり、最初はコードを書くことに苦労したのを覚えています。
おそらく、デザイナーの中にはコードを書けるようになりたい人もいる一方でコードを書く必要性がないと思われる方もいると思います。Webが当たり前となった昨今において、デザイナーもコードを書く必要があるのか?
この問いに対しては賛否両論あると思いますが、自分でも改めて考える機会を頂いたので記事にしました。
デザイナーもコードを書くべきかはプロジェクトの規模による
結論から書きますが、デザイナーがコードを書くべきかはプロジェクト毎の規模や作業人数によって変わると思います。デザイナーがコードを書いた方が良いケースとしては以下のような状況が考えられます。
- フロントエンドエンジニアがいない(バックエンドエンジニアがフロントも実装する)
- 予算が少なく、開発スケジュールに余裕がない
- 実際のモノを微調整を繰り返しながらデザインしていきたい
特にUIの微妙なマージンや色調整など細部を作り込む時にはエンジニアがデザイナーから指示を受けて作るよりも、デザイナーが自ら編集できた方が効率良くデザイナーの意思がプロダクトに反映できる場合があるからです。
しかし、近年のフロントエンド技術は複雑化の一途を辿っており、環境構築をはじめCSSすら簡単に編集できない状態になっている事もあります。
デザイナーにJSXを触ってもらうための仕組み作りの話たまに聞くけど、実際にそれをやってるデザイナーってどれぐらいいるのだろうか。フロントのエンジニアがいないようなスモールチームだと昔WebデザイナーがHTMLを書いてたようにJSXを編集してる人も多いのかな。
— sumio🐣 (@m_ohsumi) January 9, 2017
こちらの問題に関しては本題からずれるのでここでは割愛します。
とは言ったものの、デザイナーは商品価値を向上させるためにサービスを設計したり、UIを設計したり、ビジュアルを作り込んだりする重要なミッションがあります。
なので、デザイナーもUIの些細な修正ができるレベルでコードを書けた方がいいが、必ずしも必要ではなく、あくまで付加価値であるという考え方です。
デザイナーがコードを書けると何が良いのか
デザイナーがコードを書く事ができる場合に以下の面でメリットがあると考えられます。
- 自分でUIを調整できるので改善サイクルが早い
- マイクロインタラクションやアニメーションなど言葉で表現しにくい部分を実装できる
- 開発をサポートできる事でチームワークに貢献できる
- プロダクトを作っているという感覚をより味わえる
- 技術的に実現できる事やアンチパターンなどが学習できる
5に関しては、技術を知る事でアイデアの幅を狭めてしまう可能性も0ではないので、一概には良いとは言えないかもしれませんが、それでもコードを書ける事で得られるメリットは大きいと思います。
イベントに登壇していたDeNAの成澤さんの場合はiOSアプリのUIデザインをした後に、XCodeのStoryboardを使って画面構築を行い、swiftファイルにIBOutletを書き出すところまでやるとの事で、そこまでやればエンジニアは裏側の処理に集中できるので格段に開発効率が上がるとの事でした。(ここまで出来るのは中々いなそう…)
ただ、ここまで出来るようになるまで2年程かかったとの事なので、まずはStoryboardを使って、フォントや色、マージン等を変更できるようになる事がオススメとの事。
参考記事を以下に貼っておきます。
デザイナーがコードを書けるようになる方法
そもそもコードを書く必要がないと考えているデザイナーの方は別ですが、コードを書けるようになりたいと考えているデザイナーがコードを書けるようになるにはどうしたらいいのでしょうか。
僕も一応デザイナーからエンジニアに転向した身ですが、初めてJavaを勉強した時にはかなり苦労しました…。
この点に関しては、深津さんのつぶやきに学びのヒントがあるかもしれません。
デザイナーとエンジニアの合体について。エンジニアがデザイン憶えるほうが、デザインからエンジニアリング憶える人より多い印象。エンジニアはデザインを研究する段階で近視的に楽しめるけど、デザイナは先に作りたいモノの明解なビジョンが技術的に無謀すぎて最初で挫折することが多い気が
— 深津 貴之 (@fladdict) November 28, 2013
その上で、デザイナーがコードを書けるようになる方法について「デザイナがエンジニアリング(プログラム)を学ぶコツ」で次のように書かれています。
最初に「◯◯が作りたい」というゴールを定めるのではなく、「学習した範囲内で、面白いものを作る」というアプローチだ。
デザインエンジニアであるTakramの田川欣也さんもデザイン思考の人がエンジニアリングを学ぶ時の際の助言として以下のように述べています。
エンジニアリングがうまくできなくて感覚的にものを作りたい人は、「ここはちょっとがまんして、動機から自分の生理的な感覚をちょっと外して、冷静にものづくりのプロセスを組み立ててごらん。」と投げかけます。
要はいきなり大きなアイデアを描くのではなく、簡単なところから少しずつ作っていって、出来る範囲内で面白い事を考えるとモチベーションが持続しやすいのでは?という事です。ここに関しては自分が新しい技術を学ぶ時も同じようなプロセスなので参考になるかもしれません。
大事なのはコードを書けるよりテクノロジーを知っている事
デザイナーがコードを書ける事は素晴らしい事ですが、それよりも大事なのはテクノロジーを知っている事ではないかと思います。特にユーザーインターフェースデザインにおいては技術的な制約や整合性を考慮した上でデザインしないと客観的に使いにくいものになる恐れがあります。
近年は自動車を始め様々なデバイスにインターネットが接続されたり、仮想現実空間を作り出すVR、ARなどユーザー体験が多様化してきています。
そのような中でデザイナーに求められるのは、従来のディスプレイに納まるデザインではなく、人間とテクノロジーの対話をどうデザインするか、という部分になってくると思います。
もしかしたら、人口知能や機械学習のような専門性の高いエンジニアのように新しい職種のデザイナーが現れるかもしれません。
終わりに
少し話が飛躍してしまいましたが、コードを書く事がデザイナーの本業ではないものの、プロジェクトの規模によってデザイナーがコードを書いた方が全体最適となる場合があります。もちろん、必要に迫られなければ書く必要は無いと思いますが、デザイン+αで何かを身に付けたい場合はコードを書く事を選択肢に入れても良いかもしれません。