てくすた

ピクスタ株式会社のエンジニア・デザイナーがつづるよもやまテクニカルブログです

言われた仕事うまくやるだけでいいんですか? エンジニアがデータ分析して自分の仕事を勝ち取った話

こんにちは、PIXTA開発グループでアプリケーションエンジニアをしている梅田です。去年買ったワインセラーが温度を下げることしかできないことに気付き、冬にセラー内の温度を上げる方法を考え始めている今日このごろです。

今回は私が開発部とは別に所属しているデータアナリシスチームについて紹介させてもらいます。2019年の3月に発足し約1年が経とうとしているので、これまでやってきたことや得られたことなどを書いていきます。

自己紹介

最初に自分がどんな仕事をしているか自己紹介から始めます。
PIXTA開発グループというPIXTAサイトの運用をする部署にいて、検索基盤チームとデータアナリシスチームに所属しています。

検索基盤チームは2019年1月に発足したチームで、検索ロジックや検索ページなど検索に関する改善をするチームです。基盤とついているのは表に出ているUIに関わる改善だけでなく、裏側のロジックも携わることを表すためです。

データアナリシスチームもほぼ同時期の2019年の3月に発足したPIXTA事業でデータドリブンな意思決定を促すチームです。自分たちもデータ分析をしますし、他部署のデータ分析も二人三脚で補佐して、事業部全体のデータ分析力を上げることを目指しています。今回はこのチームの話をします。

エンジニアがデータ分析して自分の仕事を勝ち取った話

目立ちたいと思ってえらい煽ったタイトルを付けてしまったんですが、実はみなさんもできるハードルの低い話です。

前述の通り私は検索基盤という検索に関わる部署にいて、検索に関わっていましたが、検索ロジックは長年メンテナンスされ、巨大で複雑なコードになり、大きな改善を行うにはコスパが悪いので無闇に触りにくい対象になっていました。
そんなわけで検索に関わると言っても検索ページの高速化やちょっとしたメンテナンスなどコスパが高いことをしていました。

そんな中で検索に関するデータは面白いと感じていたので、仕事が終わった後夜な夜なデータを見ていました。検索キーワードや購入に至るまでの検索回数など、どんな人がうちを使ってるのかがわかるデータを見るのが楽しみでした。
そうやって調べた結果をみんなに共有していたら、検索はまだまだ改善の余地ありそうだね、と周りに思ってもらえました。その結果検索改善プロジェクトが立ち上がり、今はそのプロジェクトの仕事をしています。

あれよあれよと今の状況にありつけていますが、今までになかった楽しみを感じられています。
どうしてもエンジニアは技術があれば食べていけるのでその場に甘んじてしまいます。基本的にエンジニアは技術があれば最低賃金はとりあえず保証されるので食べてはいけるんですが、そのレベルで甘んじると、言われた仕事だけをして時間内にできなかったら怒られるだけの生活になります。前職がそんな感じでフラストレーションが溜まっていたので、その違いがはっきりわかります。

まだ立ち上がったばかりなのですが、公開できる成果が出るのは少しかかるかもしれませんが、自分の動きで生まれた仕事をやるのは楽しいです。

エンジニアがデータ分析するメリットや驚いた点

データ分析をしてみた結果いろんなことに気付いたので、それぞれについて話していきます。

  • いざエンジニアがデータ分析してみると意外とハードル低い
  • ネゴればデータ分析の時間作れる
  • 単純な分析だけでも得られることは大きい

いざエンジニアがデータ分析してみると意外とハードル低い

断言しますが、エンジニアはデータ分析向いてます。というか周りのデータ見てる人から間違いなく重宝されます。

というか、みなさんも思っているかもしれませんが、私はデータ分析はエンジニアがする仕事じゃないと勝手に思っていました。エンジニアはデータを業務が回るようにデータをきれいに作ることが仕事で、データを分析するのはディレクターの仕事で、私たちは関係ないと思っていました。
しかしいざデータに触ってみると面白いですし、私たちがうまくやれることがたくさんあって、結構ありがたがられます。

まずなによりデータを知るスピードが速いです。
データ見始めたときに困るのはそのデータが何のデータで何を表しているかわからないことです。しかしエンジニアの場合はデータを作っている立場なので、コードを見ればすぐそのデータの生成過程や意図がわかります。

そしてデータ分析後の施策を見越して分析を行うことができます。
データ分析は分析単体で行われることよりも、その分析結果を活かして新たな施策が立てられることが多いです。そしてデータ生成を自分のサービスで行っているWebサービスの場合、その施策はシステムの改修に関わることが多いです。
そういうときにエンジニアは強いです。修正の仕方は詳しいですし、誰に何を頼んでどこを見ればいいかわかるので、解像度高く仕事がわかり、コミュニケーションも自部署の人にいつも使っている言葉で頼めばいいのでスムーズに進みます。

こういった理由でいつも使っている能力を活かすだけでエンジニアでない人から重宝されるので気分がいいです笑
ただ、いつもデータ見てるディレクター陣には知見や手法ともに敵わないので、うまく分業できれば、と思っています。

ネゴればデータ分析の時間作れる

こんな記事を見ても「データ分析大切かもしれないけど、仕事忙しくてそんな時間取れないよ」っていう人が多いと思います。
確かにそのとおりなんですが、ちゃんと話してデータ分析のメリットをわかってもらえれば、時間を勝ち取れる可能性があります。

前述の通り私の場合は検索データの面白さと有用性を語っていました。特に効果があったのは1on1で上長にその重要性を理解してもらったことです。ただやりたいとかやるべきだとかいうだけじゃなく、メリットを感じてもらってYesと言いたくなる説得の仕方が必要になります。

ぶっちゃけこれは小さな社内政治です。エンジニアはきれいなロジックの世界が好きなのでコミュニケーションが得意でなくて社内政治なんて合理的じゃないからもってのほかと思う人が多いイメージです。私も根はそんな感じで、休みの日は誰にも邪魔をされずに一日中家にいてプログラミングしてお酒を飲むのが至福の時間です。
ただ、やってみれば得られるものは多いので頑張って見る価値はあると思います。

ただ時間取るには最低限の技術力と信頼貯金は必要です。仕事を頼まれたらその瞬間にレベル感を見極め、中程度の仕事だったら息をするように仕上げられるくらいの実力は必須です。力があって余裕がある状態で初めて、他の分野でプレゼンスを発揮できます。
偉そうに言ってますが、これってそんな難しいことではありません。今この記事を読んでいる方で私以上の技術力がある人もたくさんいると思います。エンジニアリングしたことがない人でも仕事で何を達成することが求められているかを解像度高く理解できて実行できれば、今のプログラミング言語は高度に抽象化されているのですぐに応用できます。慣れれば誰でもつく能力です。

単純な分析だけでも得られることは大きい

データ分析するっていうと高度な分析手法がないとできない難しい方法だと思われがちです。そういう手法もあるので勉強しなければいけないこともあるんですが、単純な集計だけでも得られることが多いです。
ある程度ユーザがいるサービスだと軽く億を超えるデータが溜まっているはずで、それらは手に収まる大きさではないので、分析されず手つかずになっている状況が往々にしてあります。

例えばうちのPIXTAのサイトなんですが、「春」って言葉が一番検索される月って何月だと思いますか?
3,4月に決まってるじゃんって思いました? 実は2月に一番検索されるんです。
というのもうちの会社は写真素材とかを売って広告代理店とかに買ってもらっています。そういったお客さんはシーズンが来る前に制作物を作ってアピールします。ということで、春に向けて制作物を作るので2月に売れるわけです。
こういうことは直感ではわかっているんですが、データをもとに事実でわかると説得力が増しますし、事実がはっきりすることによって新たな施策が生まれることがあります。
しかもこんなデータは、月ごとのCOUNT関数を使うだけで出せちゃうんです。簡単なのに多くの気付きを与えてくれます。

みなさんの周りを見てみるとそういった気付きを簡単に与えてくれる手つかずのデータがあるはずです。そういうチャンスを見つけてみるのも面白いかもしれません。

ここまででエンジニアがデータ分析をすると何が良いかや気付きがわかってもらえたと思います。
これからは実際にデータアナリシスチームが何をやっているか話していきます。

今何をやってるか

データアナリシスチームのメインメンバーは事業部長と私の2人です。できて歴史の浅いチームなので少数精鋭でやってます。

事業部長は元々分析に強い人で、主に売上に関するデータ分析と各部署のKPIに関連するデータ分析サポートを行っています。
例えば今まで行ったのは次のようなことです。

  • 売上分析
    • 素材単品購入
      • 時系列分析
      • 価格感応度分析
    • 定額制購入
      • 生存時間分析
  • Tableauを用いた各部署の定例用レポートの自動作成

また、私は検索に関して次のような分析行いました。

  • 素材が売れたときにどんなワードで検索されていたかさかのぼって分析
  • 検索システムの負荷が高いときの負荷要因をTableauを使って分析

素材単品購入に関するの売上分析

素材単品購入の売上分析には時系列分析と価格感応度分析を行っています。どちらもトレンドを見る分析です。

時系列分析とは時系列に沿って売上がどのようなトレンドを築いているかを見る分析で、
価格感応度分析は時系列分析に価格変化という変曲点を与え、価格変化前後でどのようなトレンドの変化があるのかを見る分析です。

トレンドを見ることでマクロな視点で自分たちの姿を見ることができ、価格感応度分析という武器があることで正解がわからない価格設定という世界でユーザと弊社にとってベターな価格を模索することできます。
prophetという時系列分析のライブラリを使っているんですが、データを与えて少し設定してあげればカリカリにチューニングしなくてもいい感じの分析を行ってくれるので重宝しています!

定額制購入に関するの売上分析 - 生存時間分析

ユーザに長く愛される定額制プランを模索するために生存時間分析を行っています。生存時間分析はその名の通りどれだけの期間生き延びたかを見る分析で、プランがどれだけの期間で解約されてしまったかを分析しています。
素材単品購入の価格感応度分析と同じく、正解のない価格設定の世界で現状の定額制プランの把握や、施策前後の効果検証ができる強力なツールになります。

Tableauを用いた各部署の定例用レポートの自動作成

Tableauによる各部署のマネージャーが定例会議のために作るレポートの自動化です。どこの会社でもあると思うんですが、マネージャー陣が定例会議の資料作りに忙殺されて、疲弊してしまうという問題がありました。そこでTableauを使い、データ取得を自動化することでマネージャー陣にかかる負荷を大幅に減らすことに成功しました。

素材が売れたときにどんなワードで検索されていたかさかのぼって分析

Webサービスの会社なので、素材売買のデータや検索データなどあふれかえるほどにデータが貯まっているんですが、「売買が行われたときの検索ワード」といった分析には使いたいけれどサービス運用に必須ではないデータがないことに気付きました。
しかしユーザが少しでも早く欲しい素材が見つかるような改善をするためには、「売買が行われたときの検索ワード」のような横断的なデータを見ることが必要だと思ったので、無理やり200行近くの黒魔術的SQLを書き、存在しなかったデータを得ることに成功しました笑
これを機に分析をやろうと思って初めて必要になるデータがあることに気付き、非常に学びになりました。

検索システムの負荷が高いときの負荷要因をTableauを使って分析

今は解決したのですが、特定のクエリが実行されると検索に時間がかかり、そういうクエリが一度に実行されると検索システムに負荷がかかるという事象がたまに起きていました。
単純な負荷であれば計測できるツールがいくらでもあるんですが、重いクエリがどれだけ実行されているかという個別具体的な計測を行うツールがなく、そういう自体が起きたときは、毎回手作業でそのデータを取得していました。しかもそういうデータがほしいときは大抵緊急度が高いので、どうにか楽にこのデータが取れないかと考えていました。
アナリシスチームでTableauを入れてからは、定型のデータ取得はTableauで簡単に可視化できるので、重いクエリの割合をTableauでレポート化して、いつでもすぐにみれるようにしました。Tableauは簡単に取れるけど価値のあるコスパの高いレポートが簡単に作れるので重宝しています。

こんな感じで自分が調べたいデータを調べて色々やっています。

今後やりたいこと

私としてはまだまだ検索について掘れるので検索のデータを見ていくんですが、それにあたって分析力を付けたいです!
ビッグデータを相手にするので統計を使いこなしたいのと、検索ワードを概観するために自然言語処理にも手を出そうと思っています。

ですので、そこらへんが詳しい人がいたら、ぜひお話したいです。

まとめ

データ分析に関してやってきたことを書いてみました。これを機会にデータを使ってビジネス側に関われるエンジニアが1人でも増えたら嬉しいです。

ピクスタのサービスを成長させていきたいエンジニアを募集中です!
https://recruit.pixta.co.jp/