広告効果を可視化するBIツールの保守運用
【チーム】PjM2名、エンジニア3名
【役割】リードエンジニア
【技術】Tableau, Airflow, Google Cloud (Composer, BigQueryなど)
【概要】
別会社が開発・運用していたシステムを引き継いだチームに参加しました。TableauやAirflowといったデータ領域は、私にとっては未経験の領域になるので、技術的なキャッチアップを進めています。また、技術側面以外に部分において、俯瞰的な視点でチーム課題・システムの弱点を改善する活動を行っています。直近では、まずは守備力を上げるために、潜在的なリスクの解消、内部品質や開発環境の改善に取り組んでいます。
【取り組み】
- システムの基盤構造を改善するメリットを顧客へ提案
- 不具合解消の見通しと優先度のコントロール方法の提案
- Tableauの開発環境改善
- 開発プロセスの見直し提案
【Pick Up】Tableau開発体験の改善
Tableauのチュートリアルなどで何ができるのかを把握しつつ、チームでどのように開発をしているのかを観察して、理解を進めました。Tableauは手軽に構築できる一方、柔軟性と透明性が低く、チーム開発においては工夫が必要でした。特に、手元ファイルを手動でデプロイしている状態で、いつ誰がどのような操作でデプロイを行うのかの透明性がなく、デグレのリスクが高い状態でした。
◎対策:Git管理とCI/CDの構築
まずはGitLabにリポジトリを用意し、Tableauのワークブック(実質zipファイル)を配置しました。常に最新のファイルがある状態、かつ、マージリクエストを挟むことにより、変更履歴とデプロイタイミングの透明化を図りました。
次に、tabcmd を活用して自動デプロイを行うGitLab CI/CDを設定しました。手動操作によるミスを防止するとともに、常にmainブランチの最新が反映される状態を作ることでデグレのリスクを軽減しました。この際、自動的にReview用の環境が個別にデプロイされるようにし、自動デプロイの安全性を確認するとともに、マージリクエストのレビュー負荷を減らす一石二鳥の効果を得られるようにしました。
差分表示に関しては、ロジック部分をCSVファイルに抽出して管理することで、どのような変更を行なったのかを可視化できるようにしました。完璧ではありませんが、ロジックのCSVファイルをビジネスサイドに提供するなど、開発目的以外でも利用できるようになりました。