技術的負債について自分が考えたことをメモする。
意図的な技術的負債と不注意な技術的負債
- 技術的負債を負うとき、意図的に負うか不注意で負うかがある。いわゆる、技術的負債の4象限
- 「期日があるから負債を負うが、改めてあとで直しましょう」で生まれた負債と「何も考えずに実装しました」で生まれた負債は全く異なる
開発中、技術的負債を意図的に負うかどうかの判断力は人やチームによって異なる
- 意図的に負債を負うか判断する力を持っているかは、人やチームによって異なりそう
- 意図的に負債を負うか判断する力は、経験と内省で得る再現性が高い能力な気がする。少し前に技術力とはなにかで話した訂正しやすくつくる力の一部だと自分は思う
- とはいえ、能力の問題だけではなく期日に追われていて正しい判断ができる状態になかったなど組織的な問題もあるはず。個人だけのせいではない。
意図的な技術的負債と不注意な技術的負債の違いは、返済しやすく出来るか
- 意図的な技術的負債は、返済することを前提に出来るのでコードやGitHubのプルリクエストにコメントを残したり、テストを書いておくなど後々返済しやすいようにするための活動ができる
- 不注意な技術的負債は、そもそも負債だと気づいていないのでそういう活動は一切ない。なので、コードを読んで直すしかない。どんなにコードを読み書き出来ようが所詮人間なので読み間違えたりするとバグが起きる。なので、かなり気をつけて作り直したりする必要があってコストが大きくかかり返済がしにくい
返済しにくい意図的な技術的負債もある
- 意図的に技術的負債を積んだからといって、自動的に返済しやすくなるわけではない
- 返済しやすいように活動する必要はあり、それが出来るかは人やチームによって異なる
- これもやれるかどうかは、経験と内省で得る再現性が高い能力な気がする。これも訂正しやすくつくる力の一部だと自分は思う
技術的負債を作る人間と返す人間が別だと良いことがない
- 他人の借金をずっと返していると「なぜ私が返しているのか?」となる。技術的負債も同じで、技術的負債を作る人と返す人が別だと技術的負債を返す人は「なぜ私が…」となる気はする。
- 「仕事だから」で片付けられる人も片付けられない人もいる。人間だもの。
- また、技術的な負債を作る人も返すことがないので、経験と内省ができず、訂正しやすくつくる力を身に付けられない
まとめ
- 意図的に負債を負うか判断していくぞ
- 意図的に負債を負うときは返済しやすいようにコメントやテストなりを書いていくぞ
- 負債を作ったら返すぞ