こんにちは、株式会社LIFULLの塩澤です! 今回は、2019年9月3日(火)に開催した、 「Ltech#8 LIFULL HOME'S 技術的負債との闘い」についてレポートします!
Ltechとは
Ltech(エルテック)とは、LIFULLがお送りする、技術欲をFULLにするイベントです。 特定の技術に偏らず、様々な技術の話を展開していく予定です。
Ltech#8 LIFULL HOME'S 技術的負債との闘い
今回のテーマは「HOME'Sの技術的負債との向き合い方」についてです。 LIFULLの技術横断組織に所属するエンジニアより、技術的負債に対する向き合い方や取り組みについて話してもらいました!
それでは各発表をお伝えします。
技術負債解消モチベーションへの取り組み
www.slideshare.net
技術的負債を抱えるシステムに対して、その負債の特徴からシステムを切り分けて解消へアプローチしていくお話です。
理想的な解決へ向けての方針が決まっても、やはり優先度やビジネスへの影響など、 大きな壁があり負債を解消していくのは難しいものです。
そこで、今ある資源で負債の解消ができるような仕組み作りと実践をはじめました。 また、仕組みづくりだけでなく、負債解消の仕組みと価値を現場だけでなく上流へも伝えることで、 負債解消の仕組みが組み込まれていくようになりました。
結果、現実的に負債の解消ができるような仕組みづくりと、仕組みが開発の中で回るように普及させることで、 持続的な負債の解消が小さくとも進んでいくようになりました。 目の前だけでなく上流に目を向けて、負債解消の意義を伝えるだけでも変化がうまれます。
レガシーシステム・プロセス改善史
www.slideshare.net
LIFULL HOME'S には、コードの肥大化やCIの運用が続かないなどの課題がありました。 そのようなレガシーシステムの課題に対して、どのような施策を行い、どんな結果となったのかの改善の歴史についてのお話です。
以下のような施策を行うことで、事業がより成長できる環境作りを進めました。
- ドメイン知識のドキュメント化&勉強会
- 設計規約、レビュー方針の策定&ピアレビューの実施
- ドキュメントの集約
- アーキテクト活動・ソリューションアーキテクト
- 静的解析、CI
- 自動テストの拡充、各種バージョンアップ
- レガシーコードのリファクタリングをモブ設計・モブプロ
各施策の実施前と実施後で効果が現れましたが、中には新たな課題が生まれたものも。 いくつかピックアップすると、ピアレビューを導入し、レビューの結果をピアレビュアーが確認することで、 レビュアーの育成をしています。そうすることで、誰でもレビューができるようになりました。
ものづくりが事業別の組織になった際には、機能の重複やレガシーシステムに明るい人がいなくなるなどの課題がありましたが、 技術横断部署にレガシーシステムに詳しいアーキテクトグループを設けることで、 アーキテクチャやインフラ設計などの各種の相談を行えるようにしました。
などなど、改善に向けた色々な施策をお聞きすることができました。 今後も闘いは続いていきそうです。
技術的負債返済・実装改善に関する事例紹介
www.slideshare.net
実際の現場でコードリファクタリングをするために活用されているツール・サービスについて、 より実践的な活用事例の紹介です。
今回は以下のことについてお話をいただきました。
- Code Climate活用事例
- 効果的な負債返済計画
- Datadog APM活用事例
- Buckyの活用事例
負債返済計画については弊社の体制も含めて、4つの体制について紹介していただきました。 弊社では、開発チームと技術的負債の解消チームとは別に、負債の原因を分析して解消するチームを別で設けており、 技術的負債が生まれにくい状態を実現しています。
静的解析ツールだけでなく、Datadog APMを利用することで、実行順序やボトルネックを考慮した 効果的な改善ができた事例はとても勉強になりました。
より実践的な技術的負債の返済計画と各種ツールの長所短所を組み合わせることで、 プロダクトの発展を止めることなく、技術的負債を解消していくことが可能になりました。
懇親会の様子
最後に、登壇者と参加者の方を交えた懇親会です!
最後に
Ltech では、LIFULLエンジニアが中心となって皆様の技術欲を満たすよう実例を交えた勉強会を開催しています。
今後もLtechを積極的に開催していきますので、 ぜひ気になった方は、connpassでLIFULLのメンバー登録をよろしくお願いします!