created 2023-12-28 updated 2023-12-30 read 3 min

クソコードあれこれ

箇条書き部分に記載しているが、

そもそもクソコードという名称自体、はインターネットで概念として語る程度が丁度いい

  • クソコードが持つ要素
  • クソコードはなぜ生まれるのか
    • 個人プロダクトでもない限り、コードを書いた個人の責任ではない。レビュー体制、タスク分割、役職、労働条件や待遇も含めた組織設計自体が問題
      • クソコードを責めることは個人を責めることにはならない
        • が、個人が責められるように感じてしまう人が多いので配慮をする必要がある
          • そもそもクソコードという名称自体、はインターネットで概念として語る程度が丁度いい
      • レビューで止められるのに止められなかった人、体制も悪い
      • その人に割り振られたタスクは本当に適切か?
        • 能力、量、得意/不得意、役職等を考慮して最適を目指したか?
      • 期待した成果が本当に妥当か?
        • その成果を求めて然るべきと言えるような報酬、もしくは成果に応じて報酬を適切に挙げる評価制度がないのであれば成果を上げるインセンティブがない
          • あるいは成果が上がらなければクビになる、減給されるという負のインセンティブもあるが、日本だと厳しい
          • 安い人材を拾ってきて高い成果を要求し、実現しなかったら文句を言うのは正直子どものわがままレベルのないものねだりだと思う
  • クソコードをどう解決するべきか
    • テストを書く
      • テストがクソになる場合もあることも考慮すべきだが、ないよりマシは常に成立する
    • レビュー/教育体制を整える
    • 報酬を上げる/高い人材を用意する
  • クソコードが擁護されるとき
    • クソコードだろうが利益を生むのであれば価値がある
      • 間違ってはいないと思うが、クソコードについて批判するときの場面/論点は大体、今までであったクソコードを話題にして茶化す/クソコードの生産を予防する/既存のクソコードへの対応策を考える、等だと思うが、これらの論点について話しているときに上記の擁護をしたところで論点ずらしとしか思えない
      • 要はバランスおじさんみたいなもので、何かを言っているようで何も言っていない