なぁ~~にぃ~~~ ⤴⤴⤴??? やっちまったなぁ!!!???
男は黙って
「フルリファクタ」
男は黙って
「フルリプレイス」
そんな時間は、この世にないんですけどねぇ~
・・・ってなわけで、今回は技術的負債について見ていこか~
🧠 技術的負債の種類
ホンマはもっとあるやろうけど、ざっくり3つの種類に分けてみたで!こいつらが諸悪の根源やな。
種類 | 例 |
---|---|
意図的な負債 | とにかくリリース優先。「あとでリファクタする予定やし!」 |
無意識の負債 | 知識不足や設計ミスによるもの(「その時はベストやと思ってた…」) |
ツール/ライブラリ由来の負債 | 古いライブラリを使い続けて、アップデートできなくなってくる |
ほんなら、意図的な負債から見ていくで~
💥 意図的な負債が止められないんですよぉ~
なぁ~~にぃ~~~ ⤴⤴⤴??? やっちまったなぁ!!!???
男は黙って
「リファクタ優先」
男は黙って
「品質優先」
そんなことしてたら、終電祭りなんですけどねぇ〜
🛠️ ほな、意図的な負債はどうすんねん
リリースを急がないといけない気持ちはみんな一緒や。
急ぐのが間違いやない。
やけど、焦ってリリースしても、後からアラート飛んできたり、ビジネス損害を生んだりして結局いいことあらへん。
ほんなら、リリース品質を担保するようにしよ。
それは lint や test でカバーできる。チームで合意取れた lint rule を追加したり、E2E test を導入したり、CI/CD で自動化した最低品質を守るようにしたらええんちゃうかな。
test は AI が得意な範囲やから、まだないんやったら Devin(AI エージェントで話題)や potpieAI(Jest や Storybook 自動化)とかのエージェント系 AI を使って書いてもらうのが良さそうやな。
せやから、リリース速度は落とさずに、品質を担保しよな。
💥 無意識の負債が止められないんですよぉ~
なぁ~~にぃ~~~ ⤴⤴⤴??? やっちまったなぁ!!!???
男は黙って
「技術書読破」
男は黙って
「公式ドキュメント読み漁り」
そんな時間があれば、飲みに行っちゃうんですけどねぇ~
🛠️ ほな、無意識の負債はどうすんねん
知識不足は慢性的なもので、これは常にキャッチアップし続けなアカン。メンタルの問題もあるけど、プライベートで時間取れへんこともある。
設計ミスはしゃあない。その時のベストでも、開発進んでいくうちに状況変わったりすることは多々ある。そんなん予測できひんしな。
でも、キャッチアップする機会を設けたり、設計を見直す機会を設けることはできるんちゃうかな?
ほんで、自分が得た知識を共有して、他の人の知識を分けてもらって、定期的に今の実装をみんなで振り返ったりして、ベースラインを上げていくことが、チームとしての成功パターンやと思うで。
AI は知識不足や設計ミスを補ってくれるから、copilot や chatGPT に相談するのが良さそうやな。
せやから、知識の差は、チームで補うのが一番効率ええで。
💥 ツール/ライブラリ由来の負債が止められないんですよぉ~
なぁ~~にぃ~~~ ⤴⤴⤴??? やっちまったなぁ!!!???
男は黙って
「Renovate」
男は黙って
「Dependabot」
だいたい保守するのがめんどくさくなって、放置されるんですけどねぇ~
🛠️ ほな、ツール/ライブラリ由来の負債はどうすんねん
定期的にライブラリアップデートをタスク化するのがええんちゃうかな。月に一回とか四半期に一回とか。
これを放置しすぎると、依存してるライブラリのせいで、上げたいライブラリのバージョンを上げられないから、放置してさらに古い依存が増えて・・・って感じで負のループに陥ってまう。
しゃあないけど、めんどくさい気持ちを抑えつつ、定期的にマイナーバージョンアップして、メジャーバージョンは気合いれてがっつりやっていくのがええんちゃうかな。
この辺はエージェント系の AI に頼むのも良さそうやな。テストまで一貫してお願いすれば、半自動化できそうやで。
せやから、定期的なバージョンアップで、未来の詰みを回避していこな。
🧾 最後に
実は、Facebook の motto って、途中で変わってんな。
もともとは
“Move fast and break things”
って言ってて、スピード命やってんけど、途中でスパゲッティコードだらけで、「このままやとシステムを持続開発できひん」ってなったから
“Move fast with stable infrastructure”
ってな感じで、堅牢な設計に基づいてスピード出そな~って変わってん。
スピード重視も大事やねんけど、品質を意識しないと、負債を溜めるだけや。
技術的負債って、何か一つの大きなことじゃなくって、小さい負債の積み重ねやねん。その返済も、一歩ずつ小さく刻んでいくしかないねん。
やから、「やっちまってる」コードを量産せんように、今日も品質大事に開発していこ。
「最近ちょっと負債気になってたな……」って人、
まずはひとつ、小さく返すことから始めてみよな。
🛎 おまけの宣伝
文字列や配列の分割、地味に毎回書いてへん?
そこで、divider
っていうユーティリティライブラリを作ってみたで〜
気に入ったら ☆ してくれたら、ワイがちょっと喜ぶ。笑
🔗 GitHub: nyaomaru/divider
🎮 Playground: divider-docs.vercel.app
他にも書いてるから、よかったら覗いてってな〜👇
(qiita の記事は初手スパム扱いされてワイは悲しかった )