技術的負債を減らすことを正当化する

概要

開発者の人と話をしたときに、技術的な負債が多い部署で働くのは辛いから、技術的負債を減らすことを 部署の目標にしてほしいとの話があった。しかし、技術的な負債を減らすことは、非開発者からは理解をされづらい。 非開発者の人からすると、負債が見えないため負債を負い続けても新機能を追加している方がビジネス価値が高く感じられるからである。 こういったときに、技術的負債を減らすことを意味を正しく説明をすることで受けいれてもらえる。 本当かどうかは別にして正当そうな話をできれば納得してもらえる。その方法について紹介する。

実装コストが下がる

実装コストが下がることは、企画職の人に有効である。企画の人はできるだけ早く実装してくれる方が仕事がしやすい。 そのため、技術的負債を負うことは今後の実装コストが上がることについて説明する。 「今回の機能を3週で作ってくれとのことですが、3週で作ると今後ここに関する機能を追加するときの 工数が倍になります。5週で作るとそうはなりません。今後一切ここに機能を追加しないなら良いですが、 そうで無かったとき大変ですが良いですか?」のようにする。

しかし、この場合、企画の人が短期的な売り上げの上昇などを望んでいる場合には、効果が発揮されないこともある。 なぜなら、4週間後の状況を比較すると、3週間で作ってもらうと1週間運用しているのでその分利益が出ている。 しかし、5週間で作ってもらうと利益どころか機能すらできておらず、作りかけの部品だけになるからである。

事故が減る

事故が減ることは、営業職の人に有効である。営業は事故が発生すると客先から責められるし、顧客との関係が悪くなる。 そのため、技術的負債を負うことは今後の事故が増えることについて説明する。 「今回の対応を3週で作ってくれとのことですが、3週で作ると今後ここに何か追加が発生したときに、 事故の率が倍になります。5週で作るとそうはなりません。今後一切ここに機能を追加しないなら良いですが、 そうで無かったとき大変ですが良いですか?」のようにする。

開発者の離職率を下げる

開発者の離職率を下げることは人事関係をやっているマネジメントに有効である。人が辞めると新しい人を雇わないといけないし、 新し人が仕事に慣れるまでのコストも必要である。 「今回の機能を3週で作ってくれとのことですが、3週で作ると今後ここに機能を追加するときに 開発者は非常に大きい労力を必要とし辛い作業を仕入られることになります。 これを繰り返すと開発者のやる気を削ぎ、優秀なエンジニアから居なくなると思いますが、それでも良いですか?」のようにする。

まとめ

技術的な負債を勝手に取り除くと仕事が遅いと思われたり印象が良く無いが、 交渉して他の人達に意義を伝えることで大きな評価を得ることに継がるのではないか。 開発者の方にはぜひ実践して頂きたい。