デザイン・実装の生産性を上げるための7つの考え方
デザイナーによるデザインにも、エンジニアによる実装にも、
「生産性」の問題はつきものかと思います。
プロダクト開発ではエンジニアとデザイナーが力を合わせて設計・実装をしていくわけですから、デザインの生産性を考える上で、実装上の生産性も同時に考える必要が出てきます。
(一般的に、デザインと実装効率を上げるためには多くの組織がデザインシステムを構築・運用するというアプローチを取るのではないでしょうか。)
デザイン視点から、デザインと実装の生産性向上への取り組み方について考えてみました。
デザイン・実装の生産性の重要性
まずは前置きから。
デザイン・実装においても、「斧を砥ぐこと」は重要です。
斧を砥ぐことを怠った結果として、
生産性が落ちたプロダクト組織で起こりうるであろう一般論を挙げます。
プロダクト品質の低下
「プロダクト品質は外部品質と内部品質によって構成される」という前提にすると、生産性に直結する内部品質が落ちれば、プロダクト品質にも当然マイナスの影響が出てきます。
時間効率の低下
本来はカットできた不要なコミュニケーションが多ければ多いほど、アウトプットに至るまでの時間効率が落ちます。エンジニア・デザイナーにとって「ルール化された共通パターン」がなければ、両者のコミュニケーションは非生産的なものになるでしょう。
↑コミュニケーションパスの複雑化
画像引用:Leveling up Design Communication
生産性向上によって得られるもの
・デザインの共通パターンを作る
・エンジニアとデザイナーの共通言語を作る
・両者が参照できるドキュメント基盤を作る
・個々人が承認なしで意思決定できる品質基準を作る
このような中長期での生産性向上の取り組みに投資した結果、時間効率が上がります。
時間の効率化により、より本質的な事柄に取り組む時間が増えたり、リリースに至るまでのデザイン・開発速度が上がることで、市場・顧客に提供できる価値の質・量が向上します。
デザイン・実装の生産性を上げるための7つの考え方
デザイン側から意識すべきだと思う、7つの考え方を紹介します。
1.車輪の再発明を行わない
既存のアセットで十分である状況にも関わらず新しい要素を生み出してしまうと、デザイン上の意思決定コストが増加し、無駄な実装コストも発生します。
↑Buttonコンポーネントのカオス化
画像引用:Design Better Buttons
そこで、リユースとリデュースを重要視します。
以下はUIコンポーネントのデザインする際の例です。
リユース:同じ役割を果たすことができるコンポーネントを再利用する
リデュース:プロダクトの変化によって不要になったコンポーネントを捨てる(または、アップデートして役割をその他コンポーネントとマージする等)
リユースとリデュースは一貫性を形成することにも繋がるので、見やすく・使いやすいプロダクトを作ることができるという点でもプラスの影響を与えます。
2.戦わずして勝つ
「不戦而屈人之兵、善之前者也」
成果に対してコストを最小限に留めることは、ROIの最大化という観点でプロダクト開発においても価値があります。
付加価値を生まないクリエイションはビジネス上は無駄なコストであり、時にはUIをデザインしないことが価値ある意思決定であることもあります。
3.汎用性と拡張性を重視する
UIコンポーネントのデザインを例にとって考えます。
共通コンポーネントは汎用性(1.のリユースにもつながる)が高く、スケール可能な拡張性のある設計をすること。様々な利用ケースを想定し、プロダクト全体に適用可能かどうかを検討しながらデザインします。
横展開が可能なスケーラビリティのある設計は、デザイン・実装上で本当に必要な要素がコンパクトになり、作業効率が上がります。
↑あらゆる画面で使える汎用性と、多様なシーンで使える拡張性を持つコンポーネント
4.信頼できる唯一の情報源を構築する
エンジニア・デザイナーの両者が参照できる秩序ある情報の安全地帯を作ることには価値があります。
両者の共通言語を作り、デザインを言語化し、同じ言葉で話せるようにしてコミュニケーション効率を上げます。
5.プラットフォームのルールから逸脱しない
守破離の守をすっ飛ばしては、内部的にも外部的にも美しい設計はできません。
Web / Android / iOS各プラットフォームの慣習に従いながら、プロダクトのオリジナリティを作れるところで作っていき、乗っかるべきところはそのまま乗っかりましょう。
6.原則化する
生産効率が重要であるということを、組織のデザイン原則とする方法があります。組織の品質基準を定めることで個々人の意思決定の効率が上がります。
クラシルには Elegant というデザイン原則があり、「一切の無駄のないデザインであること」を良しとしています。
7.生産性向上のための時間を作る
スキマ時間を活用して少しずつ手を入れていく。意欲的に、正々堂々と中長期の生産性向上のために丸々時間を使う日を設けるなど。
デザインシステムの構築を例にあげると、
海外の巨大テックカンパニーのようにデザインシステムの専属チームを作れるような会社はほぼないだろうと思います。
メインタスク外のスキマ時間で取り組むという制約がある以上、一朝一夕で作り上げられるものではないため、短距離走ではなくマラソンであると認識する(される)と気持ちは楽です。
さいごに
このあたりのテーマや、デザインシステムについてざっくばらんにお話したいエンジニア・デザイナーの方はDMいただけると嬉しいです!
Twitter
また、クラシルではiOS/Androidエンジニアを絶賛募集中です!
僕と一緒に秩序あるUIを作っていくことに興味がある方をお待ちしております。