技術的負債との戦いにおいて重要なこと
はじめに
この投稿はコミュニケーション Advent Calendar 2017の12月22日分の投稿になります。
会社でマニュアルを書くために導入したSphinxがまるまる技術的負債になり、素のHTMLで書き直されるという悲しい状態になっているヨーシャことIosif Takakuraです。
今回は技術的負債との戦いにおいて重要なことについて書きました。
そもそも、このコミュニケーション Advent Calendar 2017に投稿しているということで重要なことがコミュニケーションであろうことは予想がつくと思われます。
技術的負債とコミュニケーション
なぜ技術的負債は後回しにされがちなのか
では、以下のスライドをご覧ください。
このスライドで挙げたように、技術的負債はお金が絡み、しかも一人ではなんともならないものです。
さらにやっかいなことに、エンドユーザーには技術的負債を解消する価値が見えづらいのです。
そうなってくると、エンドユーザーにとって技術的負債の解消は後回しになってしまうのです。
技術的負債を解消することは長期的に考えてプラスである
実際は技術的負債を解消することにより、システムへの機能追加や不具合対応がしやすくなるため、長期的に考えればエンドユーザーにとってもよいことがあるのです。
しかし、人間は長期の利益より短期の利益を優先する習性があるようで、対処すれば少しプラスになり、大きなマイナスを負うことが避けられる技術的負債の解消より目先の機能追加に走ってしまいます。
そうなってくると、技術的には正しい話であっても、顧客の利益につながらないと判断されてしまいます。
技術的負債を解消するには説得が必要である
そのためには、チーム内だけではなく、なるべく多くのステークホルダーに、今のままでは問題だらけだということを理解してもらわないといけないわけです。
そこで、もっとも重要なのが当然ながらコミュニケーションスキルです。
それも、相手の利益につながることをうまく説明しなければいけません。
そこで、重要なのは「数字」と「お金」でうまく可視化するということが必要になります。
「現状維持=不利益」で、「技術的負債の解消=(長期的には)利益」ということを訴えましょう。
訴えるとすれば、以下のポイントです。
- 技術的負債を放置すると機能追加や改修に時間がかかるようになる
- Workaround Oriented Programmingが流行る
- 技術的負債を放置するとエンジニアの技術レベルが向上しない
- 「正しい」対処方法が学べない
- 技術的負債を放置するとエンジニアのモチベーションが下がる
- 「もっと楽になる方法」を使えないのはエンジニアにとってストレス
- ここを放置すると「できるエンジニア」から離職するスパイラルになる
最後に
何事も説得力が大事です。