見出し画像

「技術的負債に向き合う Online Conference」のLT大会に参加してきました

こんにちは、エンジニアリングマネージャーの山口(@yamat47)です。
去る11月26日に、「技術的負債に向き合う Online Conference」というイベントが開催されました。

その中のRookies LT(社外のLT大会に初めて参加する方が集まる会)にて「CI/CDプロセスの拡充からはじめる技術的負債の解消」というタイトルで発表をしてきたので、当日用いた資料を公開しつつ、お話した内容を改めてご紹介します。

Rookies LTにて発表した内容

当日の発表資料

当日の発表資料はSpeaker Deckにて公開しています。



溜まっていく技術的負債、どこから戦いはじめる?

開発を続けるに連れてコードベースはどんどん膨れていき、多くの場合で負債は溜まっていく一方かと思います。「使われていない関数を消せていない」「ビジネス上重要な処理なのに自動テストが書かれていない」「利用しているパッケージがEnd of Lifeを迎えそう」「ライブラリのアップデートがされていない」などなど...

とはいえ、それと引き換えにプロダクト・ビジネスを発展させてこられたという面で、それ自体が問題なわけではありません。多少余裕がでてきてようやく負債と対峙できる場面がやってきたときに、どこからはじめたらいいでしょうか。


どんなデプロイでも必ず通るCI/CDに着目をして取り組みはじめた

一般的に、ソフトウェア開発は企画から実際にリリースして運用されていくまでに様々なステップを踏みます。チームや組織によって多少の差こそあれ、ほとんどのプロダクトで上の図のようなサイクルを続けているかと思います。
そんなサイクルの中で、私はCI/CDに着目をして取り組んでいきました。しばしば「CI/CDの改善は複利で効いてくる」という話があります。もちろんその通りだと思いますが、技術的負債の解消という文脈では「安心してコードの変更ができるようになる」という方がより重要な観点です。


デプロイの心理的なハードルをさげることがチームの改善活動の促進につながる

技術的負債の解消を安心して進められるように、まずは土台となる CI/CD の拡充からスタートしていきました。
自動テストを増やすことでアプリケーションの挙動が変わっていないことを自動で確認したり、CLI ツールを使ったコードの検証によって人間によるコードレビューを支援したり。
Blue Green Deployment や再現性のあるデプロイ手法によってロールバックしやすくしたり、Feature Flag や Canary Release によって懸念のあるリリースをするときのユーザー影響を最小化したり。

こうした取り組みによって、「CIが成功しているから安心してリリースしよう」「最悪すぐに戻せば大丈夫だからリリースしよう」と思えるような環境づくりをしてきました。事実としてそう、というよりは開発者自身が実際に思うことができているかが重要です。
技術的負債の解消について、ほとんどの場合はコードベースの変更を伴います。ここに対する心理的ハードルやリスクを徹底的に下げておき、チームの活動が促されやすい状態を作っておくことが、普段の改善活動に効いているなと感じます。
皆さんのプロダクトについてはどうでしょうか。今書いているコードをリリースするのに少しでも不安を感じるようでしたら、その改善から取り組んでみるのはいかがでしょうか。


ONE CAREER のリポジトリで最近進めている取り組み

ONE CAREERではまさに改善活動中ということで、リンターによる指摘を毎日いくつか解消していく活動をしています。一つ一つは小さく地道な活動ではありますが、誰かがやらないと絶対に進まない活動でもあり、空き時間に少しずつ進めています。


まとめ

自分自身、過去に社内のLT大会に参加したことはあったものの、公開イベントで話をしたのは初めてでした。発表時間が短かったためリアルタイムに反応を見ることはできませんでしたが、終わったあとにXで感想を投稿してくださっている方もいて率直にとても嬉しかったです。
ワンキャリアではこうした発表の準備や実際の登壇を業務時間として扱うことができ、内容の壁打ちや発表練習に快く付き合ってくださる同僚がたくさんいます。少しでも興味を持ってくださった皆様、ぜひ私とカジュアル面談でお話をしましょう!


▼ワンキャリアのエンジニア組織のことを知りたい方はまずこちら

▼カジュアル面談を希望の方はこちら

▼エンジニア求人票


この記事が参加している募集

オープン社内報

この記事が気に入ったらサポートをしてみませんか?