見出し画像

同僚30人にSQLの講義をしたら起きた3つの変化

PLAIDでProduct Specialist Engineerをしている @jumpei_ikegami です。

私はテクニカルサポートを中心に色々やってるエンジニアなのですが、ひょんなことから社内のビジネス系メンバーにSQLを教える2ヶ月間の学習プログラムを作ることになりました。

このプログラムを2020年9月から始めてすでに半年が経過し、受講してくれたメンバーも累計で30人を超えました。今回のnoteでは、社内でSQL学習プログラムを半年間続けた結果、受講生の間でどんな変化があったかを紹介します。

PLAIDのビジネスメンバー30人が受けたSQL講義

PLAIDが提供するCXプラットフォーム KARTEはもともと大量のデータを扱うプロダクトです。さらにPLAIDは、お客様が持っているデータを統合管理するためのKARTE Datahubというプロダクトも提供しています。

特にKARTE DatahubはBigQueryをベースとしたデータ活用のためのプラットフォームであり、管理画面上から直接SQLを記述して自由度高くデータを活用できます。一方で、SQLを使ったデータ分析経験がないビジネスメンバーにはとっては、プロダクトの価値を伝えたり利用をサポートしたりすることの難易度が高い、という課題がありました。

そうした背景から、「社内でSQLを中心とするデータ分析スキルを身に付けるための学習プログラムを作れないか?」という相談を貰いました。私は業務でSQLを日常的に書いていて、技術的な内容を噛み砕いて教えるのが得意だったので、二つ返事で承諾しました。

そこからほぼ一人で、全3回のSQL講座(各回2時間の計6時間)を作りました。最初はカスタマーサクセスのメンバーを中心に受講生を募り、Zoomで自ら講義をしました。

実際の講義の様子を抜粋した動画は、こちらです。

主な講義内容は次の通りです。

スプレッドシートと比べたSQLの価値
SELECT文の基礎文法(SELECT / FROM / GROUP BY / JOIN / ORDER BY / WHERE / HAVING)
名前付きサブクエリ(WITH句)を使った複雑なクエリの作り方
よく使われる関数やテクニック

クエリ実行環境は、KARTE Datahub(BigQuery)を使いました。KARTEではWeb上のユーザー行動データを扱うことが多いので、自社メディアであるCX Clipの閲覧データを元に講義用のサンプルデータを作成しました。

講義は1週間おきに3回に分けて実施し、各回の後には内容を復習するための事後課題を課しました。事後課題は、全体で1-2割程度の脱落者が出るくらいには難しめの内容にしました。

NoCode時代にSQLは必要か?

さて、このnoteを読んでいる人の中には、「SQLなんて書かなくてもデータ分析はできる」と考える人は多いかもしれません。SQL学習の価値について書く以上は、この意見にも触れておきます。

もちろんSQLを使わなくとも、ExcelやGoogleスプレッドシートを使いこなして高度な分析をすることは可能です。またKARTE Datahubを含む世の中のデータ分析プラットフォームも、大抵はGUIだけで分析ロジックを組める機能を提供しています。

一方で、あらゆるリレーショナルデータベースに対して使える汎用的なクエリ言語は、現状はSQLしかありません。そして、SQLを必要としないデータ分析系のサービスも、裏ではSQLが生成されていたり、SQLの考え方を前提にプロダクトが設計されていたりします。たとえばデータ分析プラットフォームのLookerではGUIで簡単にクエリを作成できますが、その裏側ではSQLが生成され管理画面上からも実際のSQLを確認することができます。

もし日常の業務でSQLを書かない人でも、SQLを使ったデータ分析を一度経験することには、十分な価値があると私は考えます。SQLを学ぶことで、LookerなどのSQLベースのプラットフォームを使う場合のトラブルシューティングが圧倒的にやりやすくなります。また、SQLを通じてデータ分析の進め方や落とし穴を学ぶことができれば、SQLを使わないデータ分析もスムーズにできるようになります。

そんなわけでこのSQL講義では、受講したメンバーの「データ分析への理解の解像度を上げること」を目指しました。仮に受講後にSQLを書き続ける人ばかりではなくとも、データ分析とは何かについて具体的に理解し経験することが、仕事に活きるはず。そう信じて講義を続けました。その結果については後述します。

6時間の講義を受けただけでは、業務で使えるSQLは書けない

SQL講義は、1月に5名、2月に5名、といった具合に、毎月新しい受講生を迎えて繰り返し実施しています。2021年3月現在で、すでに6期目に達しています。期を経る毎にブラッシュアップされ、かなり質の高い講義になったと自負しています。

自力でSQLを学ぼうと思っていたが、このプログラムがあって本当によかった。さらっと他のプログラムのチュートリアルしたことがあったが、社内の講義の方が圧倒的にわかりやすい
(by セールスのTさん)
・一般的な座学6時間での身につき方じゃないと思う。めちゃめちゃわかりやすかったです
(by カスタマーサクセスのYさん)

(受講生からの声)

一方で、残念ながら、6時間の講義を受け、予め用意された「ちょうどいい難易度の課題」を解くだけでは、実践的なデータ分析スキルを身に付けるには足りませんでした。講義だけでは得られないものは、主に2つありました。

1つは、データ分析の進め方に対する慣れです。データ分析とは、およそ次のような流れで進みます。

1. 仮説を立てる(こういう集計結果が見られたら価値あるのでは?)
2. 仕様を決める(このデータをこう組み合わせてこういう出力をしよう)
3. クエリを書く(それをSQLではこう表現しよう)
4. 検証する(クエリ結果が合っているか確かめよう)

この中で、単にSQLを学んでできるようになるのは、3の「クエリを書く」ところだけです。実際のデータ分析は、目の前の課題を解くためにはどんな分析をすればいいのか仮説を立てるところから始まります。実際の分析業務の中でも、考えることは山積みです。

その分析を実現するにはどんなデータが必要か?
そのデータは社内のどこにあるのか?
チャートで可視化したい場合、クエリはどんな出力結果を返せばいいか?
書いたクエリの正しさをどのように確かめたらいいか?

独力でデータ分析をするには、こうしたデータ分析プロセス全体を経験し、それに慣れる必要があります。

2つ目は、分析対象のデータに対する理解です。どんなにSQLを使いこなせるようになっても、存在しないデータを使って分析することはできません。たとえばPLAIDでは、主要なデータがSalesforceとPLAID社内用のKARTEに入っています。それらのデータのほとんどに対して、PLAID社内で使っているKARTE Datahub(+BigQuery)からSQLを実行できるようになっています。しかし、実際にデータ分析用のSQLを書く場合には、Salesforceなどの業務で使うプラットフォームに蓄積されるデータの内容や特性についての理解が不可欠になります。

・どんなデータが、どんな形式で、どのテーブルに、どのタイミングで蓄積されるのか?
複数テーブルを結合するためのキーとなるIDは何か?
どのデータをどのくらい信用していいか?

こうした知識は、詳しい人に聞きながら実際に社内データを使って分析する経験を積まないと身に付かないものです。

ということで、SQLを教えるときは、社内にある実データを使って実際の課題解決にとり組むのが一番早いという気付きを得ました。そこで、講義と事後課題提出を完走した受講生に対しては、さらにOJT(On-the-Job Training)プログラムを提供しました。

(余談ですが、上記の理由から、「SQL教育は社外にアウトソースするのが難しい」と感じました。実践的なSQL学習のためには社内のデータに理解がある人と一緒にそのデータを分析してみるという体験が重要ですが、「社内のデータに理解がある人」は多くの場合社内にしかいないからです。)

SQL初学者を茨の道に突き落とすOJTプログラム

OJTプログラムでは、受講生に各自で課題を設定してもらい、その課題を解くためのデータ分析をSQLでやってもらいました。最初に3つの大テーマから1つを選んでもらい、それに沿った課題を決めてもらいました。

・社内データ分析(セールスやカスタマーサクセスの状態把握、プロダクトの利用状況可視化など)
KARTE Datahub利用クライアントが汎用的に使えるクエリテンプレートの実装
・個別クライアントの課題発見のためのデータ分析

もちろん完全に独力で自由課題に取り組むのは厳しいものがあります。そこで、社内のデータ分析に強いメンバー何人かにメンターとして協力してもらいました。受講生はメンターと並走しながら、社内データへの理解を深めたり、方針の立て方についてアドバイスをもらったりしつつ、データ分析課題に取り組みます。

OJTプログラムとしては、ひとまず開始1ヶ月間後に成果発表の場を設定し、それに向けて各自課題に取り組んでもらいました。成果発表後の後も、熱意のあるメンバーは継続的に社内のデータ分析タスクに手を上げてクエリを書く習慣を身に付けていたりしました。

OJTで実務的な課題に取り組んでいくと、さまざまな困難にぶち当たります。

クエリを書く中で目的がブレてくる
社内Salesforceのテーブル間の関連性が難しすぎて混乱する
有意な結果が出せるほどのサンプル数を得られない

こうした茨の道を進み、困難を自分の力で乗り越える中で、多くの受講生たちがメキメキとデータ分析スキルを身に付けていきました。

同僚30人にSQLを教えたら起きた3つの変化

こうしたSQL学習プログラムを半年続けてきて、受講生も累計30人を超えました。当初はカスタマーサクセスのメンバーが中心でしたが、噂が広がった結果、セールスやアクセラレーター(財務、労務)など他の職種からの受講希望も増えていきました

このnoteを書くにあたって、実際にSQL講義とOJTプログラムを受講したメンバーから、「受講して良かったこと」をヒアリングしました。その結果、受講生の間では大きく次の3つの変化があったようでした。

1つは、データ分析を誰かに依頼するときの意識が変わったということです。この学習プログラムの目的は「データ分析への理解の解像度を上げること」でした。PLAIDではデータ分析に強いメンバーも多く、データ分析に関する依頼が社内をよく飛び交っています。受講したメンバーの間では、データ分析に関する解像度が上がったことでデータ分析を他の人に依頼しやすくなった、という声がありました。

データアナリストへの頼み方が変わった。今までは「?」という依頼の仕方が多かったと反省。アウトプット方法がわかるからこそ、共通言語で話すことができる
(by セールスのTさん)
プロフェッショナルサービスとしてデータ分析を受注するにあたっての難易度のあたりが大まかにつくようになった(自分だったら半日、1日、1週間くらいかな?とか)
(by カスタマーサクセスのYさん)

2つ目は、事前のデータ設計が重要であることに気付いたということです。価値あるデータ分析をするには、前提として必要なデータが綺麗に揃っている必要があります。特にPLAIDではKARTE Datahubなどのプロダクトを通じて、顧客企業のデータ活用を支援しています。分析や活用を見越したデータ設計の重要性に気付けたことが、実際の仕事に活きるシーンも多かったようです。

いままで「データ分析」と簡単に言っていたけど、自分でSQLを学ぶことで、どこまでの分析ができるかは取得しているデータの細かさと綺麗さに依存すると実感できた
(by カスタマーサクセスのKさん)
・データ設計によっては資産になり得たデータが宝の持ち腐れになることを実感。KARTE導入初期のイベント設計やDatahub導入時のシステム構成のすり合わせの重要度を改めて認識できました
(by カスタマーサクセスのYさん)
KARTEのOnboardingにはデータ設計のステップがあるが、その際に「このサービスなら後々こういう分析したくなるだろうな」という視点でレビューできるようになったのはカスタマーサクセスとして大きな変化だと思う
(by カスタマーサクセスのKさん)

3つ目は、仕事に自信が付いたということです。受講したメンバーの中には、受講後も簡単なデータ分析なら自分でやるようになった人もいました。また、今までは社内の別メンバーに依頼していたような「SQLを使ったプロダクトのデモ」などを自分でやる人も出てきました。自分一人で完結する仕事の幅が広がったことで、自信が付いたり、会社に貢献できている実感を得られたりしたようです。

クライアントと共通言語を持った上での会話ができるようになった。これにより、社内リソースを使わずに自己解決できることの幅が広がったのと、クライアントと目線を合わせた上での提案ができるようになった
(by カスタマーサクセスのSさん)
・仕事に自信がついた。Datahub関連の仕事を避けがちなマインドもあったが、払拭された。積極的に取り組めるようになった
(by セールスのTさん)
SQLのスキルを身につけたことにより、データをどういう風に見せれば価値になるのか設計するところから、クエリコレクション(注: Datahubで提供される汎用的なクエリテンプレート)としてリリースするという実行まで出来るようになり、会社への貢献実感をもつことができた
(by カスタマーサクセスのSさん)

このプログラムを作った当初は「まあ1人か2人でもSQL書ける人が増えたらいいかなー」くらいの軽い気持ちでしたが、受講したメンバーに想像以上の大きな変化があって驚いています。もちろんそれは私だけの力ではなく、受講したメンバーたちの熱意と努力によるところが大きいと思います。ただ、このような変化のきっかけを作れたことには誇らしさを感じています。

「データによって人の価値を最大化する」

突然ですが、PLAIDのミッションは「データによって人の価値を最大化する」ことです。

私たちは、インターネットを飛び交うデータの価値を信じ、データを価値に変えられる人を世の中に増やしたいと考えています。今回のような「エンジニアではない職種の人にデータ分析のスキルを身に付けてもらえるようなSQL学習プログラム」を作ったことは、データの民主化を目指すPLAIDのミッションにもつながります。

もちろん、PLAID社内でSQL学習の重要性が高いのは、PLAID自体がデータ分析のためのプロダクトを提供している会社であるという理由もあります。しかしながら、データに基づく意思決定の重要性が増している中で、今回つくったSQL教育プログラムのエッセンスは他の会社でも十分に役に立つ内容だと思います。もしも、「うちの会社でも同じことやりたい!」という方がいたら、必要なら可能な範囲で個人的に相談に乗るので@jumpei_ikegamiまでご連絡ください。

また、もしも仮に一足先にSQL学習プログラムを受講したい方がいたら、ぜひPLAIDにジョインしてください

サポートをいただけると、喜びドリブンで発信量が増えます!初月無料のマガジン『仕事を楽しくするデジタルリテラシー読本』もおすすめです!