技術的負債の解決案について
こんばんは、小谷田です。今日は『技術的負債の解決案について』というお話です。
技術的負債って?
開発をされていない方には耳慣れない言葉かと思います。Wikipediaには下記とあります。
今のコストを下げる方針を取った結果、未来にコストが発生してしまう状態、と言い換えられるかと思います。
未来の不必要なコスト(時間)は避けるべきです。その時間を他のそれこそ未来のためになるような案件に向けるべきだからです。
特に日本は少子化が進んでいます。そんな中余計なことにばかり時間を使ってしまうと生産力が落ちて死活問題にもなりかねません。繰り返しますが未来の不必要なコストは避けるべきです。
技術的負債の原因
同じくWikipediaに下記とあります。※頭の番号は私が振ったものです。
開発に関わる者として耳が痛くなることばかりです😓ただ私の経験から言うと、上記は開発をしていると起こりうる話でもあると思います。100%回避するというのは難しいのではと思います。
なので技術的負債は『起こさないもの』ではなく、『できる限り起こさないようにするべきだが、起こりうること』という方がしっくりきます。
技術的負債の解決案
ここで本題の解決案についてです。私は下記の前提プラス2点だと思います。
前提:基本的に技術的負債を発生させないよう最大限取り組む。しかしベストを尽くしても発生してしまった時は、、、
開発中、保守中に関わらず技術的負債に気づいたらチケットに起こすなりして見える化する
常に技術的負債に取り組む工数を確保し取り組む
1はそもそも技術的負債に気付けないという場合もあると思いますがそれは置いておいて、例えば上記原因で言う③はPdMの立場からすると起こりやすいと思います。
案件はビジネス的観点でリリース時期を決めて取り組むことが多く、その中で「これは直したほうがより良い状態になる」という事象が発生する、または発見することは多々あります。
べき論で言うと直した方が良いに決まっています。ただし、それらを全て対応するとリリースが遅れてしまうとなった場合、ケースバイケースではありますが、リリースによるユーザーさんへの価値提供・ビジネスインパクトと、未来の負債を比べ『これは対応しなくてもユーザーさんに影響はなく、リリースによる価値提供、ビジネスインパクトが大きい』という場合、その事象の対応は一旦置いておくという判断をすることがあります。やはり価値提供はしたい。
そうした時に、それを見える化しておかないと後で対応できなくなります。私の場合はチケットに起こしてバックログ(開発する候補の案件)に残します。原因③以外の事象も気づいた時に見える化するべきです。ここの見える化を行えるかがポイントです。
2については1のところで見える化した技術的負債を認識して常に取り組む工数(時間)を確保して取り組むようにする、と言うことです。
技術的負債はできる限り避けるけれども起こりうる、なので常にそれを想定して取り組みましょうねと言うことです。
バックログがあれば対応できます。対応を想定して目標に入れたり、工数を予め確保して取り組めば負債を減らしていけます。また、意外と案件と案件の隙間はあったりするので、その時間を技術的負債に充てるということはできると思います。
この前提プラス2を続けていけば、技術的負債を減らしていけるのではと思います。
さらに重要なこと
上記を実践できる『仕組み』が必要だと思います。マンパワーでは限界があるので組織的に自然と取り組むようになる仕組みが必要です。
その仕組みをいかにして構築できるかがポイントだと思います。ここをどうやるかが腕の見せ所です。私も頑張ります。
以上『技術的負債の解決案について』でした。