lynx   »   [go: up one dir, main page]

2025-08-04

技術負債と騒いでる人達スキルが低いのだろうか

技術負債って騒いでる人達は、単にコードを読んで直せないだけのスキルの低い人では?」

という意見を見かけて、さすがにどうなんだろうと思った。


関わった現場ひとつに、キャッシュがない状態トップページを表示するだけで数千件のクエリが実行されるようなサービスがあった。

かなり短い間隔で定期実行し続けるバッチが、ユーザーアクセスされる前にキャッシュ層にクエリ結果を流し込み、キャッシュクリアするデプロイ前後以外は普通Webサービスくらいの動作速度に隠蔽されていた。

単純に N+1 問題の大爆発みたいなものが起きていただけだったので、データ取得を再設計したら初期表示のためのクエリ数は数件程度にまで減ったし、キャッシュ使用量も大幅に削減できた。


とある有名な MVC フレームワークを使っていたのだけれど、片手で数えられるような少数コントローラファイルにそのアプリケーション必要アクションがほぼ全部詰め込まれている、という状態になっていた。

privateメソッド共通処理が埋め込まれていたり、使いたいprivateメソッドがあるコントローラアクションを追加するような空気感になっていたり、アクションを実行する前に処理しておきたいミドルウェア的な処理がコンストラクタに大量に書かれていたりして、リクエストを受け取ってからレスポンスを返し終えるまでの全体で何がどう動いているのか、何をどこに書くべきなのか非常にわかりにくい状態だった。

責務ごとにファイルを分割、共通処理は再利用できる形に切り出して、初期化は適切なライフサイクルで実行されるように整理という現代では当たり前の状態に整理した。

その結果、コードの見通しがよくなり、新機能の追加や修正の際の影響範囲も明確になった。インフラコストリリースに伴う精神的負荷も大きく下がったし、何よりテストにかけるコストが激減した。そしてテストコードを書く、という行為自体可能になった。

これらの作業は単に「読める」「読めない」「直せる」「直せない」のスキル論ではない。

人を増やせば増やすだけスケールする、開発速度は加速するとは決して思っていないが、新規参入したうちの多くが露骨に頭に ? が浮かばせ、見てはいけない闇を見たという顔でそそくさを去っていくのは健全なのだろうか。

環境変わったから直すケースの方が多い」みたいな意見にも違和感がある。

もちろん、言語ランタイムのものが大きく変化して互換性を失う場合(たとえばPHPのように)にはどうしても改修が必要になることはある。

でもそれは「設計しても意味がない」こととは違う。

環境依存の影響が全体に波及してしまうのは、設計段階で依存を分離していなかったから起こることで、抽象化できていれば影響は局所化できる。

局所化できるはずのものを「考慮しても意味なかった」と片付けるのではなく、どこまで考慮すべきだったか、分離できていたかを振り返り、失敗を繰り返さないための動きをするべきではないかと思う。

振り返り、行いを正すということは難しいことなのかもしれない。人は過ちを繰り返し続けている。これは日本史世界史教科書を開くだけですぐわかることだ。しかしだからと言ってやらなくていいということではない。

話が逸れかけたが、いわゆる技術負債というものについて問題だと感じているのは、誰もが安心してリリースできない状況を作り出していることだ。


そういう状態を "技術負債がある" と呼ぶのではないだろうか。

から、「スキルがある人なら読んで直せるでしょ」という話では済まないし、

逆に言えば特定の人だけが持つ「直せる」スキル必要な時点で、それは既に構造的な問題を抱えているということ。スケールしないし、事業リスクしかない。

まぁ色々書いたけど、技術負債を “スキルが低い人の言い訳” と切り捨てるのは簡単なんだよね。

黙って火を消している人たちの努力はそんな嘲笑のために存在しているわけではないことを胸に刻んでいただきたい。

  • アセンブラ読めないのは甘え

  • そういうやつには俺が移行した400テーブル一スキーマの設計から読んでもらおう ちなみに30万行あったが2000行読んだだけで移行した どのみち理解するのは人類には無理なので そういう...

  • そんなくだらない事より金を稼ぐ方が大事って分からないんだな

  • ゴミカス企業は、いきなり技術的負債を作り、それが負債であることに気が付かない

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん
Лучший частный хостинг