社内で初心者向けSQL勉強会を始めてみた話
こんにちは、クラッソーネでアプリケーションエンジニアをしている菅野です。
もう年末なので今年をふりかえってみると、世界最高の古楽アンサンブルグループであるタリススコラーズの東京公演が今年はスキップされてしまったことが地味に残念でした。隔年で毎回行っていたのですが、ここまでコロナウィルスの影響が続くとは思いもよりませんでした。2023には無事開催されることを願ってます。
今回は全社的なデータの利活用の推進を目的に、知識ゼロから学んでいく初心者向けのSQL勉強会をやり始めた話について紹介していきたいと思います。
当時の状況・背景
弊社では、私がジョインする前から全社的にOSSのMetabaseがBIツールとして活用されていて、開発部門以外でもある程度SQLを使いこなせる方が存在している状態でした。
(事業の本格的なデジタルシフトが直近2~3年程度であることを考えると、この点は非常に素晴らしいことだと入社時に感じていました)
とはいえSQLを利用して自在にデータを参照できるメンバーは全体からすると非常に限定的で、その限られた方々に各部署からの取得依頼が集中しているという状況になっていました。
また私が直近関わっている新規事業の立ち上げ、新規プロダクトの開発に関しては、セールスやCS部門をはじめいわゆる「プロダクトの開発」自体が初めてという方も多く、サービスを開発・改善していくというゴールに向かって諸々のコンテクストを揃えていく必要に駆られていました。
SQL勉強会という取り組みの企画
そんな状況の中、ひとりでも多くの方がデータに対する解像度を高めて、かつ実際に業務活用していけるように、知識ゼロからSQLを学んでいける場としてこの勉強会をスタートさせました。
業務片手間の個人プロジェクトではありますが、以下その企図と経過を含めてあらましを記述していきます。
目的
当初から以下の3点を明確にゴールとして定めていました。
1. セールスやカスタマーサクセスの人も、シンプルな内容であれば分析クエリを自弁できるようになる
こちらが第一義的な目的で、クエリ依頼の偏在が解消されるとともに、
全社の視点で見てもSQLを多少なりとも扱えるクルーが増えることはデータリテラシーの底上げに寄与しそうです。
またこのゴールを念頭に、SQLの細かい構文やデータベースの仕組みなどにはあまり言及せず、あくまでデータの利用者として「大掴みにデータ・SQLを概観できる」という点を重視することにしています。
2. プロダクトのコアとなるテーブル構造やカラム定義などについて、全体に大枠の内容が共有される
こちらは統合的なDWHがまだ存在しないことに起因するのですが、
分析のためにはアプリケーション都合のデータ構造やその背景などにある程度知悉する必要がありました。
(特にプロダクトがイミュータブルなデータモデルを基本方針に設計されているため、その点は重点的なインプットが必要となりそうです。)
3. バックエンド開発が行えない、またキャッチアップが必要な開発メンバーに、バックエンド開発に取り組むための手がかりを与える
こちらは開発チームに閉じたゴールですが、フロントエンドエンジニアやマークアップ出身の方など、
様々なバックボーンをもつメンバーで開発を進める中、バックエンド開発のコンセプト、コンテクストを理解してもらうための手がかりになることを裏の目的のひとつとして据えています。
特に私たちの開発チームは開発体制の分業を一切しておらず、いわゆるフルサイクルな感じで各自がやれることを増やして手を広げていく姿勢を文化として良しとしています。
個人的にはfreeeさんの開発文化のひとつ、 「何でもやれる、何でもやる」 のステートメントに非常に感銘を受けており、我々のチームにとってこの取り組みがその一助となればという感じでがんばってます。
参考) 失敗して攻め続けるために - freeeのエンジニアが障害対応で実践していること | freee Developers Blog
カリキュラム
基本的に全4回くらいででそれっぽいことができるように、という意図でカリキュラムを組みました。
各回1時間という時間設定で、座学とワークショップを組み合わせていい感じに学んでもらうことを目指しています。
この記事を執筆している2021/12時点で第2回まで実施していて、全工程の半分程度を消化しているかな、というところになります。
実施済みの回は実際に利用した資料をアップしているので、その内容から雰囲気を掴んでいただければ幸いです。
Vol. | ゴール | 座学 / WS の割合 |
資料 |
---|---|---|---|
第1回 | select文の基本がわかる | 5 / 5 | 第1回 SQL勉強会 (社外公開用) |
第2回 | 結合と集計の基礎がわかる | 8 / 2 | 第2回 SQL勉強会 (社外公開用) |
第3回 | 結合と集計をある程度使いこなせる | 3 / 7 | - |
第4回 | データ構造の見方、追い方の理解 / ゼロベースでの問い合わせ |
4 / 6 | - |
運営について
なにぶん私個人が業務の片手間で行うことなので、開催は不定期な感じでやってます。
想定受講者は字義通り知識ゼロ、「SQL is 何?」レベルの方を想定していましたが、実際には開発チームからも数名参加したりなど、様々なレベルの方に参加いただきました。
運営上の課題や拙いポイントなどがいくつもありながらも、途中からGoogleフォームでアンケートをとるようになったりなど、いろいろ試行錯誤しながら継続しています。
内容についてもSQLやデータベースの知識ゼロのクルーに対して説明することについて、当初かなり不安ではあったのですが、
参加された方が色々と質問してくれたりして、理解度を確かめながら進めていくことができているかな、と感じています。
また、社内とはいえ勉強会を主催・運営するのはたぶん初めての経験だったので、日々新規プロダクトのビルドに追われる中で業務としてもいい気分転換になっている気がします。
現時点でのふりかえり
まだまだ道半ばの取り組みではありますが、ここまでを簡単にふりかえって本エントリを締め括りたいと思います。
他社さんでも同じような取り組みをされているところ、またこれから始めようとされているところも多くあるかと思うので、何かの参考になれば幸いです。
よかった点
-
SQL、データベースへの理解ではなく、あくまでゴールをBIツールの利用に置いたこと
- 正味1時間程度の限られた時間での開催になるため、目的の割り切りとその事前共有は正解だったかなと感じています
-
データベースやテーブルの説明にSpreadsheetのアナロジーを用いたこと
- あくまで講師視点での感想になりますが、日頃利用しているSpreadsheetとの対比をベースに説明することで、色々理解が捗っていたのではないかと感じました
-
各回で質問が出ていた
- 質問は出れば出るだけ受講者の現時点での理解度を推し量るための指標として活用できるため、一方通行なコミュニケーションにならずにホッとしています
- とはいえ今後もより多くの質問をしてもらうための仕掛けや工夫が必要だと感じています
- 質問は出れば出るだけ受講者の現時点での理解度を推し量るための指標として活用できるため、一方通行なコミュニケーションにならずにホッとしています
課題点 / 改善点
-
ワークショップの設計が稚拙
- ワークショップについては事前に用意したサンプルクエリに対して口頭での指示通りに手を加えてもらう、という方法で進めていたのですが、もう少し工夫があってもよかったと感じます。
- たとえば設問や解法などを明示的、説明的に事前に言語化しておけば、当日の段取りだけではなく、参加できなかったクルーへのフォローや事後的な復習にも活用してもらえたかもしれません。
- ワークショップについては事前に用意したサンプルクエリに対して口頭での指示通りに手を加えてもらう、という方法で進めていたのですが、もう少し工夫があってもよかったと感じます。
-
録画・録音必須!
- 実際に始めるまでまったくアタマにありませんでしたが、当日の様子を録画ないし録音することは必須だと感じています。
- 同期的な参加が難しいクルーへのフォールバック措置
- 自身の事後的なふりかえりへの活用
- 録音を客観的に聴いてみると、説明のスピードと受講者の理解とでいかに足並みが揃っていないか、またひとつひとつの説明がいかに無用なフィラー表現で満ちているか、などなど、当日は気にも留めなかった課題点をありありと見せつけられます
- 実際に始めるまでまったくアタマにありませんでしたが、当日の様子を録画ないし録音することは必須だと感じています。
We Are Hiring!的な
最後に、クラッソーネではエンジニアを積極採用中です!
少しでも興味を持っていただけたらぜひお気軽にご連絡ください。