技術的負債は開発者体験を悪化させる / Technical Debt and Developer Experience - Speaker Deck
「品質と速度はトレードオフの関係ではなく、比例する」みたいな話を見聞きするたびにモヤッとするのが、
- 本当に短期的な話、三十分以内に変更してデプロイしたい、みたいな「短期的」な話であれば「テスト書いてる時間はない」は間違いではない、一分将棋みたいなギリギリのプロジェクトに従事している人のことを考えろ(?)
- 「ちゃんと設計せずに作った(そうせざるを得ない外圧があった)→ちゃんと設計する余裕があれば負債を溜め込まずに済んだ」みたいに聞こえるが、十分な時間があったら負債が出ない高品質の設計ができたとでも思っているのか?
- ↑に書いた「三十分か一時間か」みたいなギリギリの状況ならいざ知らず、日・週単位でスケジュールが組まれてるソフトウェア開発プロジェクトの場合、できる人は余裕がなくてもひどいコードは書かないし負債も最小限に抑える、一方でダメなやつは何ヶ月かけてもクソコードばかり書くので余裕があればあるほど負債が貯まるのでは?
- 似た話で、「負債を返済する」と言って書き直したコードが単に新しく書かれただけの同じくらいダメなコードで負債の総量は減ってない(どころか、曲がりなりにも一定期間動いてきた実績があるコードを捨てて時間の試練を経ていない新しいコードに置き換わる分、悪化しているといえる)、というケースについて「負債の返済」文脈で十分に言及されないのはなぜ?
- 負債の返済 = マトモなコード(設計・アーキテクチャ含む)に修正する、を正しくできるようになるには、結局クソコードに苦労させられた経験を積むしかないと思うが、苦労したからといって正しく負債を返済できるようになるとは限らない
この話題にいつ触れてもただの泣き言にしか聞こえなくて、どこまでいっても分かり合えない気がする。「心理的安全性」とか人を傷つけない時代とかが悪いと思っていて、「なんだこのクソコード誰が書いたんだよ!」ってキレたいけど許されない(と思っている)から変に行儀良く「書いた人ではなく技術的負債(の要因)のせいです」とかいうはめになって、それが一種の欺瞞だと思っているおれのような奴は白けるし、無邪気に「そうか!クソプログラマーなんていないんだ、真の悪は技術的負債なんだ!」とか言ってる人にイラっとしてしまうのだ。