Gunosyデータ分析ブログ

Gunosyで働くデータエンジニアが知見を共有するブログです。

社内技術ブログのはじめかた

はじめに

こんにちは。グノシー事業部の大曽根です。好きな曲はザ・ディランⅡの「男らしいってわかるかい」です。

この記事はGunosy Advent Calendar 2018の12日目の記事です。 昨日はhongmhoonさんのiOSでNotificationを非同期で送ろうでした。

最近、プライベートや採用面談などで「会社で技術ブログなどを書きたいけど始められない (or 始めたけど続かない)」という相談を受けるので、弊ブログが如何にして立ち上がったかをまとめたいと思います。

※本稿ではあくまで立ち上げの際に読者にいかに読んでもらえるブログを作成するかのお話で、ある程度までコンテンツ (記事) が揃った後の継続方法については言及しません

きっかけ

2016年当時、エンジニアの採用に弊社は困り果てていました (現在もそれなりに困っています)。 学会や大学の説明会に参加し、学生に「Gunosyに興味がありませんか?」と聞くと、

「あーあのCMのグノシーですか、ニュースの編集者は何人くらいいるんですか?*1

という回答が多く、もともとデータマイニング*2を専攻する大学院生が起業している、データとテクノロジーの会社であるというイメージがあまりありませんでした。 そこで、危機感を覚えた我々は、「Gunosyはデータ分析に力を入れている」というアウトプットの必要性を感じ、手段の一つとしてブログを始めることになりました。

執筆計画を立てる

しかし、「ブログを始めたが続かない」ことを避けるためにそれなりに計画を立てる必要があると考えました。 社内でのWebメディアの有識者に聞いたところ、メディアを始める際には、

1. `分析とか興味ある人`ペルソナを書く
2. 1が検索するであろうクェリの一覧をつくる
3. 検索ボリュームしらべる
4. カテゴリ分け
5. 作るべき記事のリスト(記事タイトルまでだいたいきめちゃう)をつくる
6. 記事を書く担当者とスケジュール引く

が必要である、というありがたいアドバイスをいただきました。 それでは、上記の6つ (+アルファ) を弊ブログでどのように設定したか具体例を示していきます。

1. 分析に興味がある人のペルソナを書く

初期のデータ分析ブログのペルソナ(というか想定読者)は下記の通りでした。

- 23~35歳
- 企業で分析(or 機械学習担当)
- 日本在住
- 企業のデータを分析
- ガチのPythonistaなどは対象にしない
- 学生も対象にしない (のちに対象に入る)

ユーザが「データ分析」を始めようと思った際に、何かしらの検索を行い、「Gunosyって面白いことをやっているな」と思ってもらうことが目的になります。

2. 1が検索するであろうクェリの一覧をつくる

当時作成したクェリの一覧です。

- 手法    
    - ランダムフォレスト、クラスタリング、ロジスティック回帰、SVM、NN、Word2Vecなど
- 基盤
    - Redshift, BigQuery
        - SQLも入るかな
    - データフローなど
- データサイエンスのスキルセット (なるには)
- データサイエンスの組織
- 機械学習 + (株価予測, 競馬予測などなど)
- 会社名 + 分析
などなど

現在だともう少し変化するかもしれません (弊社も途中からRedash、AWS、Airflowなどの実用的なワードが増加しています)。

3. 検索ボリュームしらべる

ここはあまり、きちんと調査はしてません。当時Googleトレンドで「やっぱDeep Learningやな」と思った程度です。

f:id:dr_paradi:20181212212945p:plain
Googleトレンド

4. カテゴリ分け

2で出たクェリを分類します。 下記の4つに分け、それぞれだれがどんな記事を書くかざっとしたイメージします。

  • 手法実装系
  • 分析 (SQL含む)
  • データ基盤
  • 組織

5. 作るべき記事のリスト(記事タイトルまでだいたいきめちゃう)をつくる

ここで、ブログで出した際にどのようなものが受け入れらるかを考えました。 以下がアイデアとして出たブログタイトルの一部になります。

- 手法実装系
    - (手法名)を実装した
    - (手法名)で精度向上事例
    - (手法名)でまるまるを予測した
    - kaggleのまるまるのソースリーディング
- 分析 (SQL含む)
    - まるまるをpresto (or Redshift)で計算する (中央値とか)
    - まるまるをpandasで計算する (DataFrame整形とか)
    - 便利なSQL集(アクセスログからわかるKPI出すSQL的な)
- 基盤
    - Sparkでのまるまる集計
   - DWH比較してみる
- 組織
    - 強い分析の組織とスキルセット

これらのうち実際に書けそうなものを担当者を決めてアサインします。

6. 記事を書く担当者とスケジュール引く

下記のように具体的なスケージュールを引き、公開することでコンテンツを充実させました。 最初のいくつかのブログを1週間ごとに更新しているのは、初期はコンテンツ (記事) が少ないのでユーザが満足しないのではという考えがあるためです。 少しでも興味を引くものを用意し、読者になるボタンを押してもらったり、潜在的にGunosyによいイメージを抱いてもらうことを意図しています。

おまけ

弊ブログでは、記事公開に際して、部長によるインセンティブ*3を設定し、クオリティへのモチベーションを高める工夫をしています。ある程度の指標を越えると、報酬のランクが上がる仕組みになっています。

記事がシェアされるたびにslackに流し、自分のブログがどの程度バズってるか観察し一喜一憂しています*4

また、弊ブログ開設にあたりロゴも作成してもらいました。 やはりオリジナルのロゴなどがあると記事作成のテンションが上がります。

f:id:dr_paradi:20181212221927p:plain

おわりに

2年前に弊ブログを立ち上げた際の計画の建て方をさっとまとめました。 このような経緯で立ち上がったブログですが、ありがたいことに開設して数ヶ月経つと「ブログ見ました!」や「参考にしました」というような声を面談の際などに聞くことも増えました。A/Bテストの〇〇で参考にして会社で仕組みを作りました、など具体的な事例を教えていただけると嬉しい限りです。

あくまで当社の例ですので、それぞれの組織にあった技術ブログの形式や立ち上げかたがあるかと思います。 本稿が、多少なりとも参考になれば幸甚です。

*1:弊社はメディア様からいただいた記事を独自のロジックで自動で配信しているため編集者はいません

*2:https://thebridge.jp/2012/06/interview_gunosy

*3:PVなどが一定数を越えるとランチなどを奢ってもらえる

*4:ここらへんは実際のプロダクトでのKPI管理と一緒かもしれません