DMMのCTOが言っていた「Disposability」について真剣に考えた
こんにちは!Rikukukuです!
1つアウトプットして満足してしまって(笑)、最近全く投稿できていなかったのですが、再開しようと思います!まずは質をあげるより量だ〜ということで今週から週3投稿頑張ります!
で、今日の記事なんですが、今日は技術を選定するときに「disposability」を意識するべきであるというお話です。
「disposability?なにそれ」と思われる方が多いと思うのですが、個人的にこうじゃないかな?という考察めいたことを考えたので、ぜひ皆さんも考えながら読んでいただけると幸いです
そもそも「disposability」ってなに?
「DMMでは幅広い技術を使用していますが、disposabilityを意識して技術選定をするように心がけています」
前回のイベント時にCTOの松本さんはこう言われました。
それを聞いた時の自分は「ほう、disposabilityね..........?」みたいな感じで意味が全くわかりませんでした。
ただ気になったのでイベント終了「disposability」についてGoogleでしらべると以下のようなことが....
disposability 廃棄性;分別廃棄性 (weblioより引用)
うーーむ、やはりよくわからん.....
この時は「捨てやすい技術」とは一体なにが嬉しいのだろう?というような感じでした。
技術選定と「disposability」について
しかし見方を変えて、システムの設計面や運用面で考えると「捨てやすい技術」の素晴らしさに気づきました。
一般的にサービスは年数が増えるにつれ、複雑なビジネスロジックに対応するため、次々に機能を追加することでシステムが肥大化することは周知の事実です。
このような状態になると開発効率が悪くなり、多くの組織でリファクタリングやサービスのリプレイスなどが検討されると思います。
しかしときすでに遅し...
複雑に絡み合って肥大化したサービスは各種に依存関係があり容易には改修できません。
ここで、もし「捨てやすい技術」でサービスを設計していたらどうでしょう?
不要になったコードや機能群などを容易に捨て去ることができ、保守に必要以上の時間を取る必要はなくなるかもしれません。
さらに各システムの依存関係が薄く、捨てたシステムによって他の機能が動かないなどの心配も軽減できます。
以上をまとめるとdisposabilityを意識して技術を選定すると以下のようなメリットがあると思いました。
・技術負債が減る。負債を解消しやい
・現実の複雑なロジックに対応しやすい
・リスクの高い再構築を避けやすい
・新しい技術をキャッチアップしていくことが容易
こんな風にまとめると、disposabilityが高いシステムは素敵すぎますよね...
しかし同時に
・どうやって捨てやすい技術を選んでいくのか?
・どのようにサービスを運用していくのか?
ということを考え続ける必要があると思います。
ここはすごく難しいし、別に答えがあるわけではなさそうです....
組織の規模やステージによって変わってくる話だと思います。
ただ1つ言えることがあるとするなら、
DMMはこの最適解を出そうと取り組んでいる企業の1つであるように感じます。
なぜかというと
・大きいサービスから小さいサービスまで50以上のサービスを運営している
・月1つ程度のスピートでサービスができている状況
・技術に縛りが全くない
からです。
つまりあらゆる規模のサービスがあり、あらゆる技術を使用しているためそれぞれの規模やステージでの最適解の集合知を持っているのです!
まとめ
今回は「disposability」について真剣に考えた先にDMMのTechVisionのすごさを垣間見たという内容でした。
サービスを設計するときに「disposability」を意識することの大切さは非常に感じましたが、実務に落とす難しも同時に感じました。
そういった意味でも今後のDMMの技術動向から目が離せません。
という感じで今回はこの辺で締めさせていただきます。
あくまで主観的な意見ですので、何か間違いやご意見ががあれば気軽にコメントしていただけると嬉しいです😆
では👋
PS:DMMと自分は驚くほどに関係がありません(笑)
この記事が気に入ったらサポートをしてみませんか?