エムスリーテックブログ

エムスリー(m3)のエンジニア・開発メンバーによる技術ブログです

Sansan× M3 Tech Night ~レガシーシステムに立ち向かえ!~ を開催しました

エンジニアリングGでAskDoctorsやゲノム関連サービスの担当をしている愛宕(あたぎ)です。

エンジニアとして働き始めて以来、レガシーシステムと関わることの多い人生を送ってきました。レガシーシステムの難解なコードを読み解こうとした末「こういう意味だったのか!」と気づいてアハ体験を得る瞬間は、意外と嫌いではないです。

今回はそんな私が、先日11/22に、Sansanさんと弊社が合同で開催させて頂いた「Sansan× M3 Tech Night ~レガシーシステムに立ち向かえ!~」の技術勉強会に参加してきたので、そのレポートになります。

なお、この記事はエムスリーアドベントカレンダー 10日目の記事です。

発表内容

(以下、敬称略)

急成長するシステムに追いつくためのインフラ改善への取り組み(Sansan株式会社 大澤秀一)

サービスの成長に開発体制が追いつかず、負債が蓄積されていく、というのもしばしば聞く話です。 そんな中で、リリースサイクルを高速化かつ安定化していくか、という事についてのインフラ観点でのお話でした。

例えばステージング環境の不足など、私自身も前職含め幾度となく体験した事がありますが、SansanさんはTerraformで環境構築を行う事で解決しており、どこの会社でも共通の課題なんだなと思いました。

デプロイの度に障害が起きるシステムを安全にした話(エムスリー株式会社 小本健司)

属人化し、手動で行なっていたためにトラブルが絶えなかったデプロイをいかに自動化し安全にしていったかというお話です。

印象に残っているのは、「最初に不格好でも手順書する」ということでしょうか。テキストのリリース手順書というのは一見泥臭く古めかしいものではありますが、 すぐできて効果も高いものです。一旦そういう最低限のことから始めて、少しずつデプロイの自動化を進めていくという、現実主義的なアプローチが共感持てました。

詳しくは以前このブログのこちらのエントリーでも紹介されています。

フロントエンドをきちんとSPAにしたい!(Sansan株式会社 青山修平)

複数のReactコンポーネントに対して単一のグローバルなCSSができてしまい、それをいかにしてコンポーネントごとに独立させていったか、というお話でした。

改善の方法もさることながら、改善のためにまとまった期間(二ヶ月)と専任のエンジニアがアサインされていたというお話を聞いて、やはり抜本的な改善にはまとまったリソー ス取るのが大事だな…と改めて思いました。

レガシー化しても困らないためのコーディング(エムスリー株式会社 中村貴志)

<

「自分たちが作っているものもいつかはレガシー」になるという視点から、では自分たちの書いているシステムをなるべくレガシーにしないためにはどのようにコードを書けば良いか? という実践的な話でした。

レガシーになることの要因を「コードを読んでも仕様・意図がわからない」「他との依存関係・影響範囲がわからない」という事に絞り、実例を交えながら改善案を説明されていました。どれも「見たことあるわ…」「書いたことあるわ…」というものばかりで、遠い目をしながら聞いていました。

レガシーと正しく向き合う(Sansan株式会社 藤井洋太郎)

www.slideshare.net

主にチームの文化作りの話で、「負債を助長するコミュニケーションは何か?」など、負債が生み出される背景についてよく分析されていました。レガシーなコード が増えるのを防ぐための文化作りの方法が、「知見の蓄積と共有」「負債の削減が価値あることという共通認識を作る」「行動している人へのサポート」「行動した人への称賛」 という観点で語られていました。会社を問わず普遍的に実践できるアイデアばかりです。

当日の様子

会場はSansanさんの素敵なオフィスをお借りしました。勉強会のテーマはレガシーシステムですが、オフィスはレガシーとは程遠い、とてもお洒落なオフィスです。会場は開始前から熱気に包まれ、最終的に席が少し不足するほど多くの方に来ていただけました。

f:id:naoki-atagi-m3:20181130114724j:plain
おしゃれな会場

f:id:naoki-atagi-m3:20181130114813j:plain
講演中

f:id:naoki-atagi-m3:20181130114846j:plain
懇親会の様子

まとめ

実は当日、別の場所でも同様のテーマの勉強会が開かれていたそうで、これは単に偶然だと思うのですが、実は密かに関心が高まっているテーマなのでは? とも思います。我々 の働くWeb業界も次第に歴史が長くなり、メンテナンスしなければならないシステムも増える一方なので、実は、地味なように見えて密かに熱いテーマなのかもしれません。 今回の勉強会に参加しただけでも、自分と同じような課題を抱えている人が多くいたので、なおさらそう感じました。機会があったらまたこういう会参加したいですね。

We are hiring

エムスリーでは、共に医療 × テクノロジーの未来を切り拓いてくれる仲間を募集中です!

jobs.m3.com