魔法の言葉『運用でカバー』=思考停止

エンジニア

業務運用に影響を与えずにシステム改修は大変なのは分かるけど…

最近、こんな会話を耳にしました。
(ユーザー)「今、この機能が登録と削除しか考慮してないから、内容を変更すると削除してから新規登録しないといけないんだよね。これだと履歴が消えちゃうから、エンドユーザ様からクレームに近い改善要望が結構きてるんだよ。良い感じで変更機能を追加できないかしら」
(ベンダー)「変更機能を追加するには○人月必要なので、追加で○百万円の費用発生と期間が○ヶ月必要です。人員を追加できないので、他の機能開発をストップしてこちらを優先させますか?」
(ユーザー)「え?!高いなぁ。他の機能開発をストップされると困るし、運用でカバーするから良いよ」
(ベンダー)「では、運用で対処をお願いします」

これです!!システム開発の伝家の宝刀『運用でカバー』

運用でカバーってどうカバーするんですか!?履歴が消えちゃうというシステム仕様に対し、運用保守側での対応やエンドユーザ様に何をお願いするんですか?内製で履歴移行プログラムでも作るんですかね?まさかデータの変動を監視して人手で履歴を移させるとか?

『運用でカバー』の一言で内容を丸投げされる側の立場に立つと、こんな反発をしたくなってしまいます。目先のコスト削減を最優先で考えるあまりに、運用で対処する方針にした場合、運用保守側のランニングコストや内製で対応する人員の作業負荷が増えるなど、見えにくいコストが増えてしまいベンダー開発の方が結果的に安くなっていたのでは?と思う場面に遭遇します。
『運用でカバー』は問題を先送りにしているだけで何も解決しようとする意思がありません。せめて、どういった運用でいけそうなのかを素案ぐらいは出してから発言してほしいですよね。
また、コスト最優先の考え方はとても危険であり、年金機構でもトラブルとなったニュースが最近ありましたね。

SAY企画、日本年金機構が中国業者への無断再委託で処分(東京商工リサーチ)

請負側が契約内容を違反して再委託してしまったことが直接的な原因ですが、発注側がなぜこの会社を選択した理由として、『見積もりが一番安いから』という1点のみを考慮した結果だそうです。発注側は必ず複数のベンダー会社に相見積を取り、価格競争させて見積額が一番安い会社に決定するというのは、企業だけでなく私生活でも引越しや保険等にも同様の行動を取るほど、当たり前の行動を取っています。

しかし、価格面だけで決定するというのはあまりにもハイリスクな考え方ではないでしょうか。価格が安いというのは必ず理由があります。資材が安い、人員の教育費を削減している、サービス面が中途半端でアフターケアは別料金、さらに再委託しており請負会社が空洞化している等、様々な理由がありますが、意思決定する際にこのような面も調査して決定している会社は意外と少ないのではないでしょうか。一番見積額が低い会社に決定し、さらに見積内容を交渉して価格を下げ、高品質なシステムを要求するというのはあまりにも厚顔無恥なユーザであり、丸投げしかできない歪んだビジネスを形成している一因となっていると思われます。

何をやるにも費用は発生。だからサービスを先に考えて機能を取捨選択することが大事

私はベンダーの立場もユーザーの立場も経験しましたが、まず先に実装したい機能が先に検討されていて、この機能を使ってどんなサービスをしていくのかが見えていないことが多々ありました。現在はほぼ全ての企業活動がシステム化されており、オンプレミスなレガシーシステムからクラウドに乗り換えている等、保守開発やマイグレーションの案件が数多くあります。このような案件では現サービスについて語られることが少ないため、現在の機能をどうカスタマイズしていくのか?という機能主軸な開発一辺倒になってします。

この思考に陥ると業務内容やサービスのあり方をそもそも考える機会がないため、要件どおり、現行どおりの開発となり、変更が考慮されていない機能が生まれてしまうのではないでしょうか。ユーザ側からすると限られた予算の中で少しでも安く案件開発をこなしたいというものが根底にあるため、サービス設計を見直すというアプローチは面倒ですし、費用がかかってしまいます。余計な費用はかけられない事情は分かりますが、サービス設計をおろそかにした開発は必ずサービスインした後に火を吹き、鎮火するまでに長い期間を要します。さらに開発してもほとんど実行されない機能まで出てきて、無駄な資産が形成されていきます。無駄な開発をしても誰も幸せにならないですよね?

システム開発をする前にどんなサービスを提供するのか、運用イメージを付けてからシステムで実装する機能を考えませんか?無駄なコストをかけたくないなら、必要のない開発は実施しないという強い意思でシンプルなシステム構築を検討しましょう。システム化が必要なものには、十分な予算を割り当てて運用面を考慮しながら開発をしていきましょう。予算が無いなら、フェーズ開発で期間をセパレートしながら順次開発していくの有です。ただし、サービス内容は先に決めておくことが大前提です。

何のため、誰のために価値を提供するか

先述の会話で、ユーザーが一番大事に考えていたのは自分の都合であり、事なかれ主義を貫きます。資金のやりくりに大変な企業が追加予算を確保することが困難なのは理解できますし、余計な波風は立たせたくない気持ちも分かります。ただ、あまりにも運用対処という言葉で思考停止しすぎではないでしょうか。自分が提供しているサービスが、誰のため、何のために価値を提供して、見返りとして報酬をもらっているのか、再考して頂き、アクションをとってもらいたいものです。