2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

技術的負債が溜まっちゃってるんですよぉ~

Posted at

なぁ~~にぃ~~~ ⤴⤴⤴??? やっちまったなぁ!!!???

男は黙って

「フルリファクタ」

男は黙って

「フルリプレイス」

そんな時間は、この世にないんですけどねぇ~

・・・ってなわけで、今回は技術的負債について見ていこか~

🧠 技術的負債の種類

ホンマはもっとあるやろうけど、ざっくり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 の記事は初手スパム扱いされてワイは悲しかった :crying_cat_face: )

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?