機能の追加と削除について考える

機能の追加と削除について考える

こんにちは。

Webサービスやソフトウェアを運用、保守していると新しい機能の追加や使われなくなったものなどを削除することがあると思います。

私自身、スタートアップ企業で開発を行っているため、通常の企業と比べると人数も少なく、追加から削除までのサイクルが非常に早いと感じます。

そこで、今回はその早いサイクルの中で感じた機能の追加と削除について考えてみたいと思います。

新規機能の追加の観点

運用保守の経験がない人の場合、削除より追加の方が難しいと思うかもしれません。

もちろん、追加する機能にもよるのですが、難しいテクノロジーを使わないようなものの場合、機能追加はそれほど難しいことではありません。

システムが複雑になれば影響する範囲を確認したり、思わぬ部分が壊れるのを防ぐためテストの時間が長くなったりはしますがそれも時間がかかるというだけで難しいことはないと思っています。

特にシステムが大きくなれば人員も増えることが通常のプロジェクトでは多いですし、頭数を増やし、テストの目が増えることでこの辺りは十分カバーできると考えています。

そのため、特に新規機能についてはそれほど難しいことではないと思います。

一方で、既存の機能の修正については新規のようには行かないことが多いと思います。

既存の機能の修正や拡張は他の部分へ影響することが多いです。

そのため安易に触ると壊れることがあり、十分な考慮とテスト時間の確保が大切になると思います。

既存機能の削除の観点

では次に、既存の機能の削除について考えてみたいと思います。

既存の機能を削除するのはシステム的には他への影響範囲の確認だけですむことが多いと思います。

一方、例えばビジネスとして提供しているサービスである場合、既存機能を削除することはビジネス的な影響が大きいことがあります。

例えばWebサービスでは、その機能が実際に使われていないのか、使われているけど反応が悪いのか、反応は悪くないが今後のことを考えて削除するのか。など削除をする理由によっても影響が変わってきます。

また、一般的に機能の削除はなかなかされない傾向があると感じています。

悪影響がないと感じていればリスクをおかして機能を削除するメリットが少ないと感じることも少なくないと思いますし、ビジネス的にはなかなかやりたくないところだと思います。

また、機能を削除するとなると何かしらの理由が必要となります。

その理由を得るために機能のパフォーマンス測定や効果の測定など評価を行う必要が出てくると思います。

特に、機能追加と機能の改修または削除の大きな違いはここにあると思います。

評価の観点

先述したとおり、機能の追加と改修または削除の大きな違いは評価がプロセスに絡んでくるかどうかだと思います。

しっかりと根拠を持って機能の追加をする場合、分析や既存機能の評価を軸に検討することが理想的だとは思いますが、実際では機能の追加の全てにおいてこのようなプロセスをとっていることは少ないのではないでしょうか。

他のサービスにもあるから追加する。これが刺さりそうとアイディアや仮説レベルでとりあえずリリースして試してみるなど、ライトな感じで機能を追加することも多いと感じます。

一方で、機能の改修または削除においては既存の機能の評価を軸に行うことがほとんどだと思います。

評価をした上で「こうしたほうが良いから修正しよう」「あまり使われていない割に保守コストが大きいから削除しよう」というような理由が生まれてくると思います。

そして、機能追加に重点を置いているケースほど、この評価が疎かになっていると思います。

また、個人的には機能を追加していくより評価をして改修するまたは削除すると言った方が難易度が高いことだと思います。

最後に

今回は機能の追加と削除について考えてみました。

言語化が難しいですが、簡潔にまとめると、システムを開発していくと機能の追加にフォーカスして、「追加、追加」のような状態に陥ることが多々あると感じます。

一方で、追加された機能について評価を行わないとその機能の改善(改修)や撤退(削除)が上手にできません。

評価は実際やってみると様々な観点からシステムを見る必要があるため求められるものは多いです。

しかし、評価を定期的に行うことは大切なことであり、システムを成長させていく上でも必要不可欠なものだと感じています。

時間を作ってでもやっていきたいところですね。