21 私がジョインした理由は、子会社の取締役で入っていたCIOが本業で忙しく、「代わりにシステムを見てあげて」「実務はメンバーがやるので監督者の立 場で良いよ」と言われたので、プロジェクトの進捗だけを確認すればよいという認識で参加しました。ところが着任後、プロダクトマネージャーと状況の 確認をすると、半年後にリリースというのは決まっているけど、日販やTSUTAYAとは全然話も出来ていないし、そもそも受入するためのデータ基盤もな いという状況でした。メンバーも寄せ集めたばかりでほとんどが9月に参加したという状態。これは鼻ほじって座ってる訳にはいかないので、メンバーと一 緒に計画作成から一緒に入りました。さすがに半年で完全版のリリースは難しいのでα版でのリリースをスコープするように社内外の調整した上で開発計 画の作成を進めました。とはいえ別にスケジュールが楽になったわけではなく、インフラ構築、データ仕様の確認とデータ連携の開発、フロントのUI確認 や性能目標など決めなきゃいけない、やらなきゃいけない事は山のようにありました。そもそもジョインしたタイミングで、システム環境すらなかったの で、まずはアーキテクチャを急ぎ決める必要があり、バックエンドはDatabricks、フロントエンドはSnowflakeの併用を決めました。これにはひと悶着あ り、Databricksを利用経験者が数名いたので、Databricksオンリーの話になりかけましたが、DatabricksのDWH機能がその時点ではまだ弱かったこと。 特に画面の条件設定のようなショートクエリが遅い事もあり、Snowflakeを採用したいと提案しました。当然、メンバーのみんなは、Snowflakeってなに もの?という感じだったので、まずは勉強会をするところから始めました。勉強会は僕自身が開催し、SnowflakeのSAにも同席してもらいましたが、とに かく使いやすいことをプレゼンし、レビューを行い、いかにパフォーマンスを気にせず、開発に集中できるかの洗脳プレゼンを行い、その後にSnowflake のソリューションアーキテクトから具体の説明をしてもらいました。その後お試し後にベトナム人のリードエンジニアのカズさんが「使いやすいです!こ れなら出来る気がします!」と言ってくれたことで何とかSnowflakeでスタートしました。それと並行して、システム構成をとりまとめ、Azure上の基盤 構築をCCC本体に依頼し、DatabricksやWEBサーバ、LB等のインフラリソース、セキュリティ関連の設定を行い、まずは器だけは用意しました。並行し てSnowflakeのアカウントを作成し、PrivateLinkなどの設定を実施しました。開発に当たっては日販様とデータ連携仕様を設計書ベースで確認、並行して TSUTAYA側が非協力的だったので、こちらで設計書を読み取り、開発ベンダーへ直接依頼してデータ連携開発を委託しました。まぁここは色々言いたい こともありますが、議論している暇もなく、だったらこっちでやるよ!で進めました。実際の開発が始まると設計書や仕様書通りのデータじゃないものも 多く、何度も移行をやり直したり、イレギュラーなデータパターンに苦しみながら、一つ一つ解きほぐし、取込仕様の見直しや改善を進めていきました。 それぞれの企業のお作法があるけど、提供元はそれが独自と思っていないことが多く、連携して初めて分かる仕様の違いや認識齟齬が多発。こればっかり は仕方ないですが、外部と連携経験が浅い会社は得てしてこういう課題があります。一応、私はCCCMKと兼務で部長やっていたのですが、自社の業務と CDP社の開発を同時並行で全てやっていました。ちなみにこの裏でOracleとAzureSynapseの移行PoCもやってました。まじで笑えるぐらいに時間足りま せんでした。画面設計もアジャイル的に開発をしていきましたがさすがに兼務でUIまでは見れないのでフロント周りはプロダクトマネージャーに任せて、 TSUTAYA周りのデータ連携開発は何とか完了しました。画面UIもデザイン会社に発注しましたが、イマイチなものしか上がってこず、最終的に契約終了 して後は自分たちで設計を進めました。気が付けば3ヵ月ほどで基盤を作り、データ連携仕様をなんとか固めて年内を終えました。年明けからは先ほどの データ連携の仕様差異に苦しみながら、画面仕様を固めていき、なんとかかんとか4月にα版をリリースしました。ただリリース後から問題が起きました。 今回のシステムは今までの事前集計やバッチ処理型ではなく、オンライン検索型の分析サービスなので処理時間が重く、従来との分析ステップの違いで遅 いというクレームが多発、さらにパフォーマンスチューニングに苦慮しました。クエリを実際に見ながらパフォーマンスアドバイスをしていましたが、な かなか改善されず、最後は僕自身もプロファイリングを分析し、キーを大幅に見直す事で速度が劇的に改善しました。ユーザーが明らかに体感できるレベ ルで改善し、経営会議でも社外役員よりお褒めをいただきました。それ以降もデータ基盤、チューニング、UI改善をしながら一丸となってβ版をリリース し、最終的に全ての機能を移行し、正式版として商用リリースが完了しました。今では私の手を離れて元気に動いております!