appbrew Tech Blog

appbrewのエンジニアチームの日々です

SQL学習モチベを爆上げする「SQLテスト制度」を導入している話

f:id:abeshiiiii:20201111112500p:plain
こんにちは、最近はアプリグロースを担当しているabeshi(@abeshi_official)です。

美容のプラットフォーム「LIPS」を運営するAppBrewでは非開発職のSQL習得に力を入れています。誰でもRe:dashやログを触れる状態になっているし、それぞれのDBに何がどう入っているかを共有するためのドキュメントも存在しています。

「非開発職もSQL書けるように頑張ろう!」と掲げたところで、当の本人たちは毎日仕事が忙しくなかなか時間も取れない上に明確な目標がないといまいち学習モチベーションを保つことができません。そこで弊社が導入したのが「SQLテスト制度」です。

✍️SQLテスト制度とは

SQLの学習到達度によってレベルごとに分けたテストで、合格すると給与が上がります。 *1現在は二つレベルが存在していて、

【レベル2】... 初学者向けでwhere・joinなど基本的な文法が使えて業務に役立てられること。給与は5,000円/月加算される。

【レベル3】... エンジニアでも頭の体操になるレベルの難易度。実際のアプリのログやwindow関数、コホート分析など業務レベルでのクエリを書けること。給与は20,000円/月加算される。

と自分の習熟度に合わせたテストを受けることができます。月20,000円上がるのはめちゃくちゃ大きくないですか...?頑張ってしまう....。

現在はデザイナーやマーケター、CS、ディレクターがテストにチャレンジしており合格者も続々出ています。テスト合格という明確な目標とインセンティブがあるからこそついダラダラやってしまいがちなSQLの勉強を効率的に行えます。

かく言う私も文系非開発職PM。知識ゼロからエンジニアのサポートの元勉強し、テスト3に挑み合格しました🎉実務に必須なスキルとして、今では毎日のようにクエリを書いています。

f:id:abeshiiiii:20201110204601p:plain

受かるとみんなに褒められて嬉しい

📈なんでやってるの

「エンジニアがクエリ書けば良いのでは?なんで教えるの?」

という議論はSQLトレーニングの制度を導入しようとする各社必ず議論があるはず。

初学者がクエリを書けるように教える時間でエンジニアが必要なクエリを書いた方が効率がいいことは確かだと思います。しかし弊社は非開発職がSQLを学ぶ目的を「SQLを書けるようになること」ではなく「意思決定のレベルアップ」と考えています。

データリテラシーを身につけることで日々の業務においてデータドリブンで質の高い意思決定をスピーディに繰り返せるようになることは、クエリを書けるようになること以上の価値となります。

......というのは全て社長の受け売りなので、詳しくはこちらの記事を読んでください👶

note.com

🤔どうやって運営してるの

ここまで読んだ皆さんの中で生まれただろうツッコミを挙げます。こんなことを思ってないですか?

「いやいや、エンジニアの運営コスト重くない?」

「学習の場はどうやって提供してるの?続かないでしょ....」

頭を抱えて悩んでいる人のイラスト(男性)頭を抱えて悩んでいる人のイラスト(女性)

わかります。

社内の学習系のイベントは運営コスト問題や継続的な参加が厳しい問題によりフェードアウトするのが世の常...。

まず、運営コスト問題についてはエンジニアの持ち回り制にすることで一定解決させています。テストの設問作成や採点の担当者は定期的に変えています。

そして学習の場については、毎週水曜日16時〜17時に「DBアワー」という時間を設けています。名前の通り、データ操作に関するよろずの相談─業務で使うクエリの持ち込み相談やSQLテストの練習問題に関する質問などを、リードエンジニアのpin(@spinute)がzoomを繋いで質問を受けつける会になっています。

 

SQLのトレーニングを授業形式にするとあまりに主催者の負担が大きいため、

①それぞれのレベルで使えるようになるべきSQLやRe:dashの機能一覧

②それぞれのレベルの演習問題 

を予め用意し、それを参加者が主体的に学ぶ中で生まれた質問に答える時間にすることで参加者の内発的動機付けを確保しつつ運営コストを下げています。

クエリを書けるようになったとして、実務で使えるようにならないと意味がありません。なので、SQLの文法だけではなくRe:dashの機能(リンク挿入やパラメータ付きクエリなど)を使いこなせるようにすることもポイントです。

🗒実際のテスト問題はこんな感じ

レベル3のテストで実際に出た設問はこちら。ポイントは、シチュエーションを明確にし実用性の高い問題にすることです。

--------------------------------------------------------

特定の投稿を投稿から1週間以内に見た人が、投稿に紐付く商品をクリップしたかどうかを4つに分け円グラフで表示する(シチュエーション: 投稿効果確認)

  • 要件: 次に示す4分類で表示する
    • 投稿閲覧時点で商品をクリップしていた人
    • 閲覧後1週間以内に紹介されている商品をクリップした人
    • 閲覧後1週間以上たってクリップした人
    • 上記に当てはまらない人

--------------------------------------------------------

  • Re:dash結果例:

f:id:abeshiiiii:20201105041235p:plain 

💝みんなSQLを書けるとここが嬉しい!

非開発職のSQL力アップにより、

  • データドリブンな意思決定の速度・量が上がる
  • 非開発職<=>開発職のコミュニケーションレベルが上がる
  • 非開発職から頼まれたクエリを書く仕事がなくなる

ため、プロダクト開発を高い水準でスピーディに実行でき良いこと尽くし💪短期的にはやや運営コストが高くても、長期的には組織にとってプラスになるはずです。

We are hiring!

プロダクトに関わる全メンバーにデータに基づく意思決定のカルチャーが根付く弊社に興味を持っていただいた方、是非お会いできれば嬉しいです。

AppBrewでは、急成長中のコスメクチコミアプリLIPSをはじめ「ユーザーに求められるものを再現性をもって作る」ことを変わらぬミッションとして、複数のアプリを開発中!

全ポジション絶賛採用中ですが、iOSエンジニア、サーバーサイドエンジニア、マルチスタックエンジニアのポジションは特に採用重要度が高いです...!ぜひ一度ご応募ください。お待ちしてます。

www.wantedly.com

www.wantedly.com

www.wantedly.com

 

 

*1:昇給対象は非開発者のみ