プロダクトの周辺で試作、ツール、プロトタイプからコードを書いてみよう
一方で、株式会社Gunosyのデザイナーで、成澤氏の次のセッションに登壇した森浩明氏は、デザイナーが実装に直接関わらなくてもよいのではないかという考えを示した。時間不足、実装の責任へのプレッシャー、学習の負担などさまざまな理由はあるが、何よりデザインを疎かにしてまで実装する、コードを書くというのは本末転倒になるからだという。
しかし、森氏はデザイナーがコードを書くことを否定しているわけではない。開発に直接コミットするコードではなく、その周辺でコードを書くことを勧めている。検証やテストなどを行うコードを積極的に書くことは開発や自分の作業の助けになるし、失敗しても誰にも迷惑がかからない。そこでたくさん失敗することで何らかの気づきも得られる。
森氏がデザイナーも取り組んでみるとよいとして挙げた実装は「試作」「ツール」「プロトタイプ」の3つ。試作は、自分のアイデアを試して形にする、動かしてみること。エンジニア並みではなく下手なコードでもよいので、積極的にコードを書いて何かを作ってみる。何か問題があったら、それをどう解決するか、解決するためには何が必要かを調べ、試作することで解決を図る。失敗しても、その過程で何かの気づきがあれば十分。森氏自身も、iOSでエディタを試作し、iOS SDKの限界を理解した経験があるという。
ツールは、日々使うツールを自分で作ってみることである。たとえば、IllustratorやPhotoshopはJavaScriptで制御できるので、Illustratorで描いたパスの座標をスクリプトで出力し、それをiOS用のコードに貼り付けて図形を描画するといったことが可能だ。自分で使うツールなので、自分が使いやすければよく、過剰な完成度は必要ない。
プロトタイプは、プロダクトのコードに自分で手を加えて作るものを指す。そのため、実際のデータを使ってテストして動作を確認できる。モックアップとは異なり、本番とほぼ同じフィードバックを得やすい。プロダクトにコミットしないので、品質にこだわらずさまざまな検証が可能である。
デザイナーにとって、プロダクトにコミットするコードを書くことはハードルが高い。また、必ずしもプロダクトにコミットするコードを書く必要もないだろう。森氏は「プロダクトの周辺で、開発の助けになる間接的なコミットを行うところから始めてみるとよい」という、デザイナーが実装を行う1つの方法を提案した。
デザイナーがコードを書くことでデザインプロセスを最適化し、プロダクトの完成度をアップ
ウォンテッドリー株式会社のデザイナー、青山直樹氏は、デザイナーがコードを書くことを前提とした場合のデザインプロセスを紹介した。
青山氏がウォンテッドリーに入社するきっかけとなったのは、「デザインもコードも書きたいデザイナーウォンテッド」というデザイナー募集だったという。ウォンテッドリーでは、デザイナーが全員コードを書いている。デザイナーにその理由を聞くと、「HTMLを書く延長で自然に」「作りたいのは絵ではなくプロダクトだから、自分で書くほうが効率的に目的に近づける」といった答えが返ってきた。すなわち、デザイナーがコードを書くのは、技術によってしか到達できない表現があるから、そしてチームでの開発ではデザイナーがコードを書いたほうがいろいろと効率化が可能になるからだといえる。
デザインは一般的に、ワイヤーフレーム、画面遷移、画面デザイン、プロトタイピング、指示書作成といった流れで行うが、コードを書くデザイナーを前提とするとこれらのプロセスの一部が不要になる。デザイナーにとってもコードを書けることで選択肢が増え、エンジニアが忙しいときなど状況に応じて最良の進め方を選択できる。
また、デザイナーとエンジニアとの距離が近いために、「ワイヤーフレームや画面遷移などの情報設計はミーティング中に済ませる」「標準的なグラフィックスであれば画面デザインを行わない」など、一部の作業を省くことができる。省いたことで何か問題が起こってもリリースまでに巻き返せば、デザインのクオリティは確保される。また、デザイナーとエンジニアのコミュニケーションや、プロジェクト全体の進捗管理はGitHubベースで行っており、「手が空いているときにできることをやる」体制が整っているため、作業はスムーズに進んでいるという。
このように開発のプロセスを簡易化する一方で、既存の制作物を繰り返し使用できる環境も整備している。たとえば、アイコンをライブラリ化してコマンド1つで書き出し/追加できるようしたり、ガイドラインのパターンを組み込んでおき、デザインの一貫性を確保し、変更時に簡単に修正できるようにしたりといったことだ。
まとめると、デザイナーが全員コードを書くウォンテッドリーでは、プロジェクトの進め方を大胆に最適化し、余った時間でプロダクトの完成度を上げている。ただし、「重要なのは、デザイナーがコードを書けるかどうかではなく、エンジニアと一緒にいかに無駄なく作業できるか」だと青山氏は指摘する。デザイナーがやりたいならコードを書けばよいし、別なことで価値を発揮できるならコードを書かなくても別にかまわないのでは、との考えを最後に示した。
