こんにちは。DMM inside編集部です。今や40を越える事業・サービスを抱えるまでに成長を遂げているDMM.comグループですが、その根幹の一つを担っているのが動画配信事業部です。
今回は、その動画配信事業部で長い年月を費やして開発を進めているシステムプロダクトがあると聞いて、システムエンジニアの二人(山口良平さん、菊知伸征さん)に開発にまつわるエピソードを伺ってきました。
属人化したシステムをオートメーション化へ
早速ですが、動画配信事業部で現在導入が進んでいるという新しいシステムプロダクトはどのようなものなのでしょうか?
山口:現在と言いますか、実は随分と前から開発を進めてきているものなのですが、『Coda』というプロダクトになります。動画配信開発部の基盤整備が目的で、プロダクト名は『Contents Operation Data Archives』の頭文字から取ったものです。
取り扱っているデータのボリュームが年々急速に拡大するなか、部門のメンバーも増え、でも肝心の運用システムは旧態依然という状況がしばらく続いてしまっていたので、そこに対する危機感から菊知さんと私で主導して開発をスタートさせました。
動画配信事業部でシステムエンジニアを務める山口良平さん
「基盤整備」や「危機感」といったあたりについて、もう少し具体的にお聞かせください。
菊知:人による運用でなんとか正規化が保たれ続けていたものの、僕たちから見ると、データ管理が事業スピードに追い付いていなかったんです。そういう状況を脱するためにまずは情報を一元管理するシステムを作り、オートメーション化を図っていこうという狙いです。
同じく動画配信事業部のシステムエンジニア・菊知伸征さん
開発が始まったのはいつ頃なんですか?
山口:社内で開発承認を受けたのが、2017年の4月です。先ほど私たち二人の主導と言いましたが、データ管理部やコンテンツ制作部といった各ステークホルダーからも期待を寄せられていたので、当時は開発に向けてスタートを切れたこと自体に一つ嬉しさがありました。
そういう気持ちは、菊知さんも?
菊知:そうですね。バックエンドのシステム開発は社内で承認を受けるハードルが高いので、そこを突破できて良かったという気持ちでした。とはいえ、大掛かりな作業になるのは間違いないわけで、扱っている情報をしっかりと整理するところから始めて新しいシステムを開発しなければと気持ちが引き締まるような思いもありました。
スタート直後から始まった苦労の連続
そのスタートの時点から、開発は順調に進み始めたのでしょうか?
菊知:それが、実際にはなかなか順調とは言えないようなスタートでした。
山口:最初の想定以上に難しさを感じることばかりでしたよね。
菊知:当時はとくに多くのエンジニアがECの案件に掛かりっきりで、そこから人を集めるのにまず時間がかかってしまいました。ただ、社内でECの案件が優先されるのは分かっていたことでもあり、まずは自分たちが進められるところから手を着けて裏側の整備に励んでいました。
山口:プロダクトの全体像や課題に対するビジョンはもちろん事前に描いていたつもりだったのですが、それでもいざ開発に着手するとそこで直面する問題が多かった、というのが実感でしたね。
それは例えば?
菊知:皆がそれまでの業務態勢に慣れ過ぎていたとでも言えばいいのか、そもそも何が課題になっているのかを察知してもらうのに各部門がやや鈍感になっていたような印象だったんです。だから、いざ改めてリクエストを聞き出そうとしても、思いのほか出てこない。
契約内容や商品情報など、コンテンツ販売に必要な情報をグループ化するところからスタートして、そこから情報を扱う人間の役割分担をクリアにしていく作業にサッと入っていければ良かったのですが、情報整理の前、状況整理の段階で時間がかかってしまいました。
そんななかで、山口さんと二人で細かなことにも工夫を重ねて模索しながら、新たな事実が判明しては、まとめ終えていた要件や設計の修正を迫られることの連続でしたね。
なるほど。こうして振り返っていただくだけでも、様々な苦労があったんだなと伝わってきます。
お話を伺っている私自身が開発の現場に疎いので、お二人に込み入ったことをお聞きできないのが心苦しいのですが、少し視点を変えたお話も聞かせてください。
昨年の春から夏頃の時期にかけては、社内で開発環境が変革期を迎えていたという話を周囲のエンジニアからは度々耳にしています。そういった点での具体的なエピソードなどはありますか?
山口:そうですね。ちょうどその頃から、まさに社内の開発手法が変わってきました。それまではウォーターフォール型でやってきたものが、アジャイル開発、スクラム開発へと。そういう転換を図っていたタイミングだったので、そこに慣れるのに少し時間がかかってしまった面はありました。
ウォーターフォールと比較して、アジャイル、スクラムの有利な点は当時から十分に分かっていましたし、手法を変えること自体は大歓迎だったのですが、そのメリットを最大限に引き出すことに試行錯誤してしまった状況でしたね。
菊知:今になってみれば、変化に対応しやすいアジャイル、スクラムだからこそ大掛かりな開発を進められたのは間違いないのですが、いま山口さんが言ったようなもどかしさのようなものは僕自身もありました。
とはいえ、そういうふうに当初から多方面で難しさを抱えながらも、菊知さんの言う「大掛かりな開発」をここまで進めて来られているわけですよね?
山口:これも実は……という話になるのですが、『Coda』の開発には前段があって、年月をかなり遡る話から始まっているものなんです。それがあって私たちのなかでは、中途半端なところでは止められないという気持ちがとにかく強かったんです。
『Coda』開発に詰まった積年の思い
『Coda』の前段、ですか?興味深い響きですね。
山口:システム部に対して最初に変更の要望があったのがそもそもの始まりで、それが2012年頃だったと聞いています。
私自身が関わるようになったのはおよそ2年後からなのですが、当時の開発プロダクト名では『CES』と呼ばれていました。最初に開発要望を出てきたのがコンテンツ制作部からで、私がシステム部門としてリーダーになって開発に当たっていました。 ただ、1年ほど経った頃、自分が他の事業部を兼任で見ることになり、それから間もなくして、担当ディレクターも異動になってしまったんです。
会社が急ピッチで事業を拡大していくなか、バックエンドにはそれ以上手を割けなかったのが実情だったのですが、その段階では部分的なリリースまでが精一杯で終わってしまいました。
そこには、菊知さんは関わっていなかったんですか?
菊知:僕が関わるようになったのはその先で、いま山口さんが話したところ、営業部門の管轄になる契約フェーズのリリースまでで『CES』の開発が止まってしまった後からです。いったんは開発がストップしてしまったものの、他の業務も統合していく形にしていきたい、続きをやりたいっていう気持ちが各部門にあって、次は外部に委託して開発をする流れになったんです。
ただ、そこでハンドリング不足だった面があって、上手く進まなかった。いくらパートナー企業に委託するとはいえ、クライアント側にもシステムの知識があるに越したことはないのですが、僕たちから見るとそこが不足していて、非機能要件についてまったく話ができていない状態でのオーダーになってしまっていました。 それが原因で開発が上手く回らなくなり、再度、社内のシステム部門に話が来たというわけです。
そこでプロジェクトマネージャーとして開発に加わったのが僕自身で、必要だと思う人材が見つかれば上長に掛け合ってメンバーを集め、最終的にはシステム部門から自分も含めて6人。そうやって人を集めたぶん、コストも大幅に掛けました。その結果、なんとか最低限の形にはなったものの、残念ながら、出来が良いものとは言えませんでした。
思うようなシステムができなかったのですか? 原因はどこにあったのでしょう?
菊知:途中からプロジェクトを引き継ぐ形で自分がチームに入り、散らかっていた状況を整理しなくてはいけなかったのに、それが上手くできなかったという点が一番ですね。あとは、いま思えば当時の自分のやり方にも反省点もあるのですが、僕たちの立場からすると、どのように開発をスタートさせるかが重要なんです。 いずれにしても結局、最初のイメージとは違うものができあがってしまい、そのシステムが使われることはありませんでした。
そこから『Coda』には、どのようにつながっていくのですか?
菊知:その後、もう一度、今度はまた山口さんが部分的に関わる形でリプレイスプロジェクトが企画されたものの、それも承認が下りることなく終わってしまいました。
そんな状況になってしまい、自分たち以上に切迫していたのが現場の各部門のマネージャー陣で、とくに最初に開発リクエストを出してくれたコンテンツ制作部の畦地(祥子)さん。彼女が諦めずに、「外部委託ではなく、スタートから社内のシステム部を使う形でもう一度!」と、僕にとってはリベンジのチャンスにもなり得る話で再度開発のリクエストを出し続けてくれたんです。
そこで、システム部の当事者として責任を感じていた自分としても、このまま引き下がりたくないという気持ちが当然あったので、それならば今度は僕たちが主導する形で開発をスタートさせたいとシステム本部としての開発企画書を山口さんと一緒に作成しました。それを認めてもらえたものが、2017年4月の『Coda』開発承認というわけです。
なるほど。本当に長い道のりだったんですね。
山口:そうなんです。畦地さんたちの尽力があって得られた開発の機会だからこそ、今度は私たちシステム側が辛抱強く進めていかなければならないと、常に自分に言い聞かせながらやってきました。
この取材に先立って聞いた話ですが、昨年末に3段階のうちの第一次リリースを済ませ、今年もここまで開発を継続してきたんですよね?
山口:はい。まずは最低限の機能として契約関連の業務を対象にした第一次リリースを形にできて、その後、ポータル機能などの補助機能も今年の初めに追加できました。
菊知:もとのシステムから移行したデータのチェックには時間がかかるため、それが済んだものから順次、それに新規のすべての案件で契約情報の参照先を『Coda』に切り替えてもらうようにしてきました。直接『Coda』を使ってもらえるようになったことで、システム全般について現場の理解が一気に進みましたし、実際の反応も上々でこの先の改善に向けた意見や要望も活発に出てくるようになりました。
業務の起点になる重要なフェーズだったという第一次リリースを経た現在、商品開発に関わる第二フェーズ、それから、ファイル自動エンコードの最終フェーズまでが当面の開発目標になりますね。
山口:はい。大小の課題を自分たちで解決しながら自信も増してきましたし、それに、私たち開発側の主導で各部門の役割分担を変えてきたプロセスの副産物と言えるのか、現場での職域の広がりやT型人材化も今は大いにプラスに働いています。
菊知:ステークホルダーも含めて皆でここまで苦労してきたけど、それを乗り越えられたんだから、しっかりと第三次リリースまで持っていきたいですね。