天の月

ソフトウェア開発をしていく上での悩み, 考えたこと, 学びを書いてきます(たまに関係ない雑記も)

価値提供スピードを上げるための技術的負債への向き合い方に参加してきた

dmm.connpass.com

こちらのイベントに参加してきたので、会の様子と感想を書いていこうと思います。

会の概要

以下、イベントページから引用です。

DMMオンラインサロン事業部がこれまで向き合ってきた技術的負債とその解決策について、深く掘り下げるイベントです。

今回のイベントでは、異なる視点から技術的負債と向き合い、解決策を模索してきた3人のエンジニアが登壇します。それぞれの領域で経験した技術的負債の具体的な実例を共有し、それがビジネスにどのような影響を及ぼし、どう克服してきたのかを詳しく紹介します!

現場最前線の技術情報をお届けし、参加者の方には明日からの技術的負債に対しての向き合い方のヒントを持ち帰ってもらえること目指します。

会の様子

講演1〜開発者体験から見える技術的負債〜

オンラインサロンのプロダクトを実例として、開発者体験と技術的負債の関連の話をまずは聞いていきました。

オンラインサロンのプロダクトでは、入会画面に変更が加わると管理画面に取り込む必要性が都度出てきてしまう課題を抱えているそうです。

現状は取り込み漏れが発生しないようにチェックリストを活用したりタスクブレイクダウンの時点でプレビューの修正を実施しているということですが、これが開発者体験の悪化につながっているということで、オーナー管理画面から入会ページを直接参照する仕組みを考えているそうですが、単純なプレビュー機能に多くの制約が出てくる形になるため、少しずつ課題解決を試みているということでした。

講演2〜サロンアプリの技術的負債解消への取り組み〜

具体的な事例の説明の後は、技術的負債を解消するために具体的にどのような取り組みをしているのか?という話を聞いていきました。

サロンアプリではReactNativeを採用していることが技術的負債になっており、現在はSwiftに移行を進めているということで、直近はSwiftUIを積極的に採用しているそうです。

こうした取り組みを推進していくにあたっては、Human Interface Guidelinesの輪読会を通して共通のコンテキストを作っていくのと、iOSメンバーでの課題出しMTG、事業部全体に向けたスプリントレビューを実施しているということでした。

講演3〜マイクロサービス・モジュラモノリス化によるシステム負債の解消プロジェクト〜

最後に、マイクロサービス・モジュラモノリス化を活用してシステム負債を解消していくプロジェクトの話を聞いていきました。

現行システムは複数システムが密結合しており、分散モノリスに近いアーキテクチャになっているということでした。
その結果、片方のデータを動機する必要があったり、片方にデータがないフローが出たりと機能開発の速度が遅くなっているそうです。

そこで、システムをマイクロサービス・モジュラモノリス化するためのプロジェクトを立ち上げて対応をしているそうで、主要なサービスをモジュラモノリスとして一部をマイクロサービスとすることを目指しているということでした。

このプロジェクトでやってきた具体的な仕事としては、

  • 管理画面/専用コミュニティとのデータを新DBへ同期
  • API GW構築
  • 認可基盤作成

などを実施しているということでした。

Q&A

講演の後はQ&Aがありました。以下、内容を一問一答形式かつ常体で記載していきます。

将来的なサービス分割へ向けて整理しているということだが、並行開発やデプロイ頻度、サービスや組織のスケールでは困っていないのか?

困っていないことはないが、小規模開発が主なのでまだスケールといった段階ではない。また、デプロイ頻度に関してもユーザーに届けるような仕組みになっていないので現状は困っていない。

5, 10年戦えるアーキテクチャを選定するにあたっての基準は?

5年, 10年間同じアーキテクチャでいくというのは難しいと思っているが、メンテナンス性は重要視している。

新規に開発も進んでいると思うが新たな負債を産まない工夫はあるか?

ドキュメントを残していくようにするのと、誰でも分かるようなコード表現を心がけている。

会全体を通した感想

技術的負債というと具体的なコードレベルの話が多く取り上げられる印象ですが、技術選定やアーキテクチャといったところを中心に話があったのは貴重だな、と思いながら話を聞いていきました。

もう少し具体的な話が聞けると良い部分もあったのですが、実際のプロダクトを例にした講演ということである程度仕方ないかなとも思いますし、生々しい話が聞けて楽しかったです。