モヒカンメモ

髪色が定期的に変わることに定評のある(比較的)若者Webエンジニアの備忘録

使われていない機能を積極的に消すべき理由

(プロダクト開発の文脈で) 使われていない機能は百害あって一理なしなので積極的に消すべきだと考えている。

使われていない機能は消すべき慈悲はない

とある日の某氏に降り掛かった悲しい出来事

消すべき理由1: プロダクトにおける "コア" の部分がハッキリする

たくさん機能があると何がコアなのか分かりづらくなる。「色々できることは分かったけど、何が強み(売り)なの?」という質問に答えにくくなる。

機能が減ればコアな部分が明確になる。コアが明確になると説明しやすくなる。説明しやすくなると営業しやすくなる。UIもシンプルになってお客さんにとっても使いやすいものになる。サポートにかかるコストも減る。開発者もどこを重点的に守る必要があるか分かる。

消すべき理由2: 機能の数は開発コストに直結する

売れることがバレれば競合はどんどん増えるし、時代が変われば求められているものが変わる。一度システムを作ればそれをずっと提供し続けられるわけではない。

機能が増えるとシステムの複雑度があがる。複雑度が上がるとシステム全体を理解しづらくなり、開発コスト(変更コスト)があがる。拡張をどんどん続けているサービスでは1年前は7日で作れたものが今では1ヶ月かかるとかはザラ。そのままにすると開発者はいなくなる。

余談としては設計を見直すことで複雑度を下げるというアプローチもある。それも大事だけど、使われていないものを消すほうがリスクが低いし手っ取り早い。

もったいない気持ちとの戦い

ある機能も一度はコストをかけて作られたもの。それを捨てようとしたら "もったいない" と思うのはごく自然なこと。

でも、使われていないということは価値を生んでいないということ。そして使われていない機能を消すべき理由に対して逆説的に、 機能は存在しているだけでコストが発生していると言える。

"価値を生んでいないのにコストが発生するもの"、捨てたくありませんか?