見出し画像

【インターンレポート2024夏】データ解析業務を経験した話

こんにちは、C-Style の広報担当です。
C-Style ではオフィスで 5 日間、高専生向けにデータ解析業務のインターンを行いました。今回はインターン生の K 君にインタビューしました! インターンやデータ解析業務に興味のある方は、ぜひご覧ください!


なぜ、C-Styleのインターンに参加してくれたんですか?


K 君:昨年度に Kloud で開催されたハッカソンイベントに出場した経験から、Kloud の運営会社である C-Style に興味を持ちました。DM にてインターンシップをしたい旨をお伝えすると快諾いただき、インターン生として 5 日間お仕事をする運びとなりました。

インターン参加前はどのような技術を使ったことがありましたか?


K 君:以前から小さなプロダクトを作成しており、プログラミング言語は

  • Google Apps Script

  • TypeScript

  • Emacs Lisp

  • C++

を利用したことがあります。今回の業務では Google Apps Script, TypeScript の経験はかなり役に立ったと思います。

データ解析業務とはなんですか?


K 君:データ解析業務は、Google Analytics などで蓄積した利用状況データを可視化・分類することで、データの背後にあるサービスの現状を理解するだけでなく、改善すべき点や戦略的な意思決定のためのエビデンスを提供し、サービスの最適化や成長に貢献することを目的としたお仕事です。

K 君がインターンで担当した業務を教えてください!


K 君:私が携わった業務は、先方のサービスの利用状況やサイトの離脱率・どの機能が使われたかというデータを解析、改善のご提案をするといったものです。
私はまだエビデンスを提供してサービスを改善する……というところまで携わったことがありませんが、先輩曰く「指摘が綺麗に決まったときの嬉しさは半端じゃない」とのことです。この段階まで辿り着いてみたいです。

今回使用したツール

今回使用したツールは以下の 4 つです。

  • Looker Studio:ダッシュボードを作成するツール

  • Google Analytics 4:サービスのアクセス解析ツール

  • BigQuery:複雑なデータの操作も可能なクラウドデータベース

  • Google Apps Script:ECMAScript の構文を利用し Google 関連のサービスを操作できるツール

どのような業務スケジュール・内容でしたか?


広報担当:K君に以下の業務スケジュールを書いてきてもらいました。 

K 君:今回の業務スケジュールはこのような流れでした。

■ 1 日目

前もってある程度作成されていた「CSV を加工し、複数の Google SpreadSheets に変換するツール」の仕上げを行いました。
今回の業務で取り扱っている、先方から頂いた CSV データには、いくつかのカラムに JSON が含まれています。
この CSV データを Looker Studio で読み込む際、パースできずエラーが出てしまいました。

ーーーイメージ

user_name,sleep_datetime,user_behavior
suzuki,2024-08-20T02:00:00Z,"{ ""wakeup"": {""BOOL"": false}, ""sleep"": {""NUM"": 420} }"
tanaka,2024-08-20T04:00:00Z,"{ ""wakeup"": {""BOOL"": true}, ""sleep"": {""NUM"": 180} }"

そのため、ダッシュボード作成よりも前に Looker Studio で解釈できるフラットな CSV に変換することが必要でした。つまり、こうしたいわけです:

ーーーシート 1

user_name,sleep_datetime
suzuki,2024-08-20T02:00:00Z
tanaka,2024-08-20T04:00:00Z

ーーーシート 2

user_name,behavior_wakeup,behavior_sleep
suzuki,false,420
tanaka,true,180

CSV をこのようなシートになるように処理するスクリプトを Google Apps Script (以下GAS)を用いて書きました。
生の GAS を触るのはかなりストレスなので、TypeScript + webpack を用いることで対処しています。

■ 2 日目

午前は 1 日目に書いた CSV を処理するツールのリファクタリングとバグフィクスを行いました。

ーーーリファクタリング
早くダッシュボード作成に取り掛かりたく、雑に即時関数実行式を main に全ベタ書きしていたため……

  • 再利用性の向上のために処理をある程度分離した

  • null / undefined を握りつぶしていたが、ちゃんと early return するようにした

ーーーバグフィクス
勘で書いてる上に型が信用ならない状態だったため……

  • 動かして変だったところを直していました

    • TypeScript を活用できていなくない?と誰かに言われて何も言えなくなりました

  • REPL 駆動開発で育ちました

午後からは既存の Looker Studio ダッシュボードの修正依頼に対応しました。
我々と先方の間での、特定のデータに対してどのようなグラフを用いて可視化するなどのイメージのすり合わせには限度があるため、ある程度概形を作っておいて、細かいところを一緒に修正していくという形をとっています。

■ 3, 4, 5 日目

この 3 日間に関しては、1, 2 日目で行った CSV 処理で利用可能となったデータを Looker Studio で可視化するのが主な業務内容でした。

ーーー3 日間に共通するダッシュボード作成の手順

( 1 )以下のような CSV があるとします (この CSV は ChatGPT に生成させたイメージです)

( 2 )この CSV が与えられて、例えば「ユーザーがどのようなボタンを押しているかの割合を収集したい」と先方がおっしゃった場合、以下のようなダッシュボードを作成しています。

( 3 )今回のダッシュボードでは、ユーザーがどのようなボタンを押しているかを表す ”button_interacted” のカラムの情報を集計したいため、

  • ディメンション: “button_interacted” , 指標: “Record Count”

として円グラフを作成し、表にはそのアクションを行ったユニークなユーザー数を表示するようにしました。

以上のように「可視化したいもの」がたくさん与えられており、これらが見やすくなるようにダッシュボードを作るのが 3日間の仕事でした。

■ 3 日目

サービスのアクセス情報を収集するために、先方のサイトには Google タグ (gtag.js) が埋め込まれています。
しかし既存の gtag のみで収集できるデータでは解析に不十分であるため、新たに gtag を埋め込みたい箇所を検討する会議を社内にて行いました。
この検討内容はその後の会議にて先方と共有しました。

■ 4 日目

サービスを運営している先方との定例会議が行われました。私は普段出席できていないのですが、インターン中ということもあり出席させていただきました。3 日半かけて作成した複数個のダッシュボードを報告し確認していただきました。

■5日目

ダッシュボードは 15 個ほど作成しなければならなかったのですが、1 日 3 個ペースで作成して最終日に完成することができました。


今回のインターンに参加してみてどうでしたか?


K 君:日々更新される生きた実際のデータを解析する経験は、個人では得られない経験かつユーザー体験について考える絶好の機会であると考えています。この機会を活かしてユーザーのことを考えられるエンジニアに成長したいです。また、わからない箇所があれば C-Style のオフィスにいる方にいつでも気軽に質問ができたため、生産性の高い労働ができたと思います。今回のインターンでの経験をきっかけにデータ解析に興味を持ったので、これからも勉強を続けていきたいです。


ご回答ありがとうございました!


K 君:5 日間のインターン期間はとても楽しかったです。お世話になりました!今後もまた機会があれば C-Style の業務に貢献したいです。インターン生として受け入れていただきありがとうございました!



広報担当:K君がC-Styleでインターンをしてくれることになったきっかけは、C-Styleが運営しているKloudのイベント!高専生支援コミュニティであるKloudでは、日々の交流やハッカソン、LT会などを開催しています。興味のある高専生はぜひこちらのKloudのマガジンをご覧ください!

この記事が良かったと思った方は、是非スキ&フォローをお願いします!

この記事が気に入ったらサポートをしてみませんか?