見出し画像

事業会社のUIデザイナーがSQLを書けるようになったら、デザイン能力が爆上がりした

【この記事はこんな方々におすすめです💻】
- 事業会社のデジタルプロダクトのデザイナーで、デザインの評価・改善に悩んでいる人
- 駆け出しPdM
- 非エンジニアだけどSQLを書きたい・書かなきゃいけなくなった人

こんにちは、クラシルでプロダクトデザイナーをしているかしこです!

半年ほど前から開発チームに異動になり、【既存の機能改善】や【プロダクトのグロース】を担当していますが、SQLを書けるようになったことでデザイン業務が数倍やりやすくなりました🚀

この記事では、
①SQLをデザイナーが学んだ先にどんないいことがあるのか
 
②どこまでがデザイナーの業務に必要なレベルなのか
③知識ゼロから何を手がかりにSQL学習を進めたらいいのか
を紹介していきます✍️

章ごとに内容が分かれているので、必要な所から読んでください◎

SQL初学者のための記事やTipsは数あれど、デザイナー目線の発信は多くありません。かつての自分も、何から始めていいのか戸惑ったため、似たような境遇にある方の参考になればと思います👋


🌥そもそもSQLってなに?

SQLとは、Structured Query Languageの略で、データベースを操作するためのプログラミング言語のことです。

- コメント数が〇件以上ついているコンテンツを調べる
- ある期間に最も検索されたキーワードを調べる

など、知りたいデータをデータベースから取り出すために必要な言語です。
もっと詳しい説明はAWSによる説明やこの記事で後半で紹介している書籍などでご覧ください📚

🌈デザイナーがSQLを習得すると、どんないいことがあるのか

SQLを習得してデザインワークを行うようになったことで、以下のような3つのいいことがありました。

1. 自社サービスへの解像度が短期間で爆上がりした

デザインする上で最も重要なことのひとつは、対象となるサービスやプロダクトを深く理解することだと思います。ここの解像度を上げるにあたって、習得しやすく、かつパワフルな方法がSQLです。

サービス理解には多角的な情報の蓄積が必要かと思いますが、SQLを習得すると、直接データベースにアクセスし、ユーザーの動向、利用状況、フィードバック等を数字として取得できるようになります。
私自身、SQL習得以前に持っていた経験や直感だけでは捉えきれなかった、細かいユーザーの振る舞いやニーズをデータ出しで明確に把握できるようになり、自社サービスに対する解像度がめちゃくちゃ上がりました。

もちろん、新規に確認したいデータがある場合、エンジニアに依頼するというのもひとつの手です。しかし、依頼するためには指示をまとめ→書いてもらう→データの確認という回り道が必要になりますよね。

依頼する場合と自分で書く場合のスピード感の差

自分である程度書ければ依頼の時間を短縮できるため、知りたい情報を得るまでのスピードがグッと上がりました
また、頻繁にデータを確認することで、サービスに関する知識が自然と蓄積され、以前よりはるかに短期間で知見が増えたと感じています🚀

2.データに基づいたデザイン立案・改善が身についた

デザインをする上で「リリースしてみないと分からない」「何が最適なのかを判断が難しい」ことってありますよね。これらを判断するための具体的なデータがなければ、その判断は直感や経験に頼ることになってしまいます。

💭 グラフィックを入れるべきか否か
💭 ボタンの色・形の違いにCTRの違いは出るのか
💭 ログイン画面は何番目に表示するといいのか

「ログイン比率を伸ばしたい」という課題に対してオンボーディング画面をデザインする場合、
こんな感じの迷いポイントがあるかと思います

SQLを習得することで、【リリース前】には「すでに出ている類似機能・画面の数値をみる」ことができ、不確実性を下げるひとつの手段としてデータを活用することができるようになりました。
定量データだけが全てではないですが、自分の仮説の精度を高める材料は多い方がいいですよね🌞

【リリースした後】にはもちろん、ユーザーがどこで離脱しているのかやボタンのCTRはどうだったか、実際のデータを自ら「最速で」取得し、デザインを評価することができるように。どの要素が効いたのか明らかにするべく、更なる改善案を出す際には変数をひとつにするという意識もSQLを書くようになってから深く根付きました。

デザイナーでもある程度のSQLを習得することとはつまり、「自分は作るところだけで、データ出しや分析はエンジニアに頼む」という分業ではなく、デザインプロセスにおける大部分を自ら担えるようになることです。

何を伸ばすためのデザインなのか、リリース後にはどんな数値を見るべきか、次に何をするべきなのか。「作ってほったらかし」に決してならない、デザインの品質と効率を向上することができるようになりました✊

3. 「デザインすべき対象」を見つけるPdMに役割が拡張した

SQLを習得したことで、依頼ベースでデザインを仕上げるUIデザイナーから、「デザインすべき対象」を見つけるPdMへと役割が拡張しました。

単一のUI改善のための調査から徐々に調査・分析の範囲が広がっていったことで、機能の配置やアクセシビリティの変更といった、より大きな範囲の改善案を提案できるようになりました🚀

データが自分で出せるようになることで、細部のデザインだけでなく、全体のUXやプロダクトの方向性にもコミットできるようになるので、デザイナーのみなさんにはSQLの習得を強く強くおすすめします。

✍️0からどうやって勉強するの?

今ではSQLを用いた調査を自走できるようになりましたが、私も半年前は全く書くことができませんでした。どうやって勉強したのか具体的な方法を紹介する前に、まずはSQL初学者がぶち当たる壁を概観したいと思います。

■ SQLが上達するまでの学習の段階

まず、SQLを習得するまでには大きく2つの段階があると思います。
1つ目が、SQLそのものの文法を習得すること
2つ目が、自分が知りたい情報を具体的なイベント名やテーブル名に置き換えて挿入するために、自社のデータベースを知ることです。

よくSQLは語学学習にも例えられるのですが、「英語が話せない」という状態には、文法がわからなくてどう文章を組み立てたらいいのかわからないという問題と、言いたいことにしっくりくる語彙を引き出せないという問題の二つが含まれていますよね。SQLも同様で、この二つのを棲み分けて段階的に学習することで、「SQL何もわからん」という状態から確実に抜け出ることができます。

■ 文法を理解するための学習方法 【所要時間:約2週間】

1. 本を買って構造を「頭で」理解
2. Progateに課金して「手で」覚える

1. 本を買って構造を「頭で」理解する
まず手始めに、SQLとは何をどう操作するものなのか、全体感をイメージで理解するとその後の文法の勉強もグッとやりやすくなりました。まずは分かりやすく説明している本を読み、学習を進めるための地図を手に入れましょう。
私のおすすめ二冊はこちらです。

1冊目の『SQLの絵本』はその名の通り、イラストと共にSQLの用語や記法が解説されているので、「データベースって何?」という状態からでも安心して読むことができます。(私は本当そういうレベル感からのスタートでした🙃)
2冊目の『ゼロからはじめるデータベース操作』も、図解や実例が充実した一冊になっており、今でも辞書として度々使っています。

2. Progateに課金して「手で」覚える

初学者ブログでは必ず登場するProgate、やっぱり本当におすすめです。
先に挙げた2冊の本の良いところを掛け合わせたようなプログラムで、キャラクターによるやさしい解説と、サンプルテーブルを用いた実践によって、知識を定着することができます🐕
反復的に基礎的な構文を書くことができるので、一周終わる頃には何となくSQLってどんな方法でどういうことができるのか理解できていると思います。

■データベースを知るための学習方法 【所要時間:1ヶ月〜3ヶ月】

書いて書いて書きまくる!
1. チームが出したい数値や自分が見てみたい数値を設定する
2. 既存のクエリで似たような数値を出しているものがないか調べる
3. 既存クエリで使用しているイベントやテーブルを使って1の数値を出せないか試みる

どのように自社データへの理解を深めるかは各社の状況にもよるのですが、まずは書く回数を増やす。それに尽きると思います。

わたしも書く回数を増やすうちに、どこにどんなデータが入っているか、どんな方法で出したい数値を出すのかが身について行きました。
もし特定の機能改善などに取り組まれている方であれば、それに関わる数値を中心に出していくとデザイン業務との掛け合わせもしやすいのでおすすめです🥕

📱デザイナーに必要なSQLレベルってどれくらい?

もちろん環境によって必要なレベルは様々かと思いますが、「業務で活用できるようになった」という実感を持ったのは「コピペせずに基本的な構文を書くことができる」「他人が書いたSQLを8割程度解読できる」レベルに到達した時でした💪

-- 基本的な構文っていうのはこんな感じ
SELECT event_name, COUNT(*) AS event_count 
FROM user_actions 
WHERE event_date between '2023-07-01' and '2023-07-14'
GROUP BY event_name 
ORDER BY event_count DESC 
LIMIT 10;

この二つが達成できると、「知りたいコトをどこから、どんな条件で取ってくる」かが概ね実行できる状態になります。

まず、基本的な構造さえわかっていれば、他の方が書いた既存クエリを読むことができるようになります。既存クエリを読むことができれば、それを参考にクエリを組み合わせて自分が出したい数値に近づけるので、あとは回数をこなすことで速さや正確さが上がっていくはずです🎉

特に、with句が使いこなせるようになったらほとんどデザイナーに必要なSQLレベルに到達していると言えます。
簡単に言えばwith句は「レシピの手順」を作るようなものだと私は捉えています。

レシピって、まず下準備して、焼く前に材料を混ぜて、というようにスムーズに料理を仕上げるために手順を分けますよね🍳
手順を分けずに一気に全てをフライパンの上で作業すると上手くいかないように、SQLでも一度に値を出そうとするのは難しいことがあります。
with句を使うことで一つ一つの手順の複雑さが下がるので、順を追って自分の作業を冷静に俯瞰できておすすめです👶

ちなみに、ここまで到達するのに私は大体【2ヶ月】ほどかかりました。
データ出しが必要な業務が短期間に集中していればもっと早かったかもしれませんし、自社データを理解する速さなどは環境要因によっても変わるので期間に関しては一概に言えません。
ただ、自分の場合は2ヶ月やればデザインワークに幅と深さが出たので、どんな学習よりも費用対効果が高かったかもしれないとさえ思います🚀

(番外編)Chat GPT時代のSQL学習&活用方法

「Chat GPTがあるからSQLを自分で書けなくてよくない?」と思われる方もいるかもしれません。私もそうなったらラッキーだな、と思っていたのですがGPTを用いて欲しい数値を出すのに"最低限"必要なのが、これまで書いてきたデザイナーに必要なSQLレベルになります。

「既存クエリを8割程度理解できればOK」と先ほど書きましたが、残りの2割を埋めてくれるのがまさにChat GPTです。
Chat GPTを使うことで、文法の細かい誤りの修正や、エラーが出た際の原因の特定や修正してくれるので、データベース特有の書き方をひとつひとつ覚える必要なくショートカットすることができます。

ただ、Chat GPTは社内のデータソースを熟知しているわけではありません。文法そのものはあっていても、出力結果が疑わしい場合は多々あり、イベントの実装そのものや参照テーブルがあっているのなど確認する必要があります。

自習もしっかりおこなって、頼りになる相棒のChat GPTとうまく渡り合いましょう✊

まとめ

🚩デザイナーがSQLを習得するメリット
①データをはやく取得できるようになり、サービスの解像度が上がる
②データを用いた仮説検証でデザインの精度を上げられる
③プロダクト全体に対する改善案を提示できるようになる

👉学習のコツ
①SQLの構文を理解するフェーズと、自社データベースを理解するフェーズを分けて学習する
②前者は本やProgateで、後者はとにかく集中してクエリを書きまくる

以上、デザイナーがSQLを学ぶメリットとそれに必要なSQLレベル、学習方法まで丸っとお届けしました。
私自身、自分が解くことのできる問いの大きさが日々上がってきていることに、とてもワクワクしています✊
デザインを極めたい人にも、デザイナーから少しはみ出てPdM業務を行いたい人にもSQLは本当におすすめです。このnoteが学習の参考になれば嬉しいです!

ではまた👋




この記事が気に入ったらサポートをしてみませんか?