続・Excelで作ったツールを業務運用にのせる場合に考えておくべきこと

前日の続きです。

こういう考えに基づいて、メリットとデメリットを勘案した上で、Excelツールを作って運用にあげたとします。
そうすると得てして起こりがちなのが、
勘案した上で気にしない事にしたデメリットの存在をすっかり忘れてしまう
ということです。
特に、ツールが顧客の手元で運用されており、自分らがそのツールの提供元である場合、この【健忘】こそが我々の真の敵になるのであります。



検討段階でこんな会話がなされたとします。登場人物はベタな感じの
A:SE
B:営業
C:プログラマ
てなイメージで書いてます。

A:「この機能をシステムに追加するとなると工数がかかるから、Excelでマクロ組んで簡単な帳票にしてあげて、それで代替してもらおうか。」
B:「それだと工数そんなかかんないの?」
C:「大筋はOKなんすが、○○部分の仕様だけは、ちょっと面倒ですぜ。ExcelVBAでチマチマ実装しなきゃなんないんで手間がかかるし、その後のメンテが辛そうすね。それがなきゃサクっといけますが。」
A:「○○部分の仕様って、△△部の人だけが必要なんでしょ?だったらそのツールを部署限定にしたらいいよ。その面倒な仕様の部分は××部の範疇だからね」
B:「工数そんなかかんないならいいね。」
お客:「部署限定ね。おっけーその方向でいいよー。」
C:「その仕様ないんだったら超ラクっすね。やったー。」

誰も傷ついていません。みんなが、この案のメリットとデメリットを認識し検討した上で合意し、誰もが納得のいく結論を得る事ができました。めでたしめでたし・・・しかし、ここで健忘してはいけないことがあります。それは、
今回すんなりいったのは、とあるデメリットを「気にしない事にする」という決断があったからこそである
ということです。
上のA,Bとお客さんには、Excelツールにすることで工数を減らせた、という成功体験が残ります。しかし、「Excelでツール作る」と「工数が軽く済んだ」の2つは、直接結びついてはいません。Excelで実装しようとすると色々と苦労しそうな仕様は盛り込まないことにしたから工数が軽く済んだのであり、身もフタもない言い方をすると
Excel工数が軽くなるように作った
というだけのことです。これじゃなんなので少し真面目に言い直すと
何を優先させるべきかの軸が全員で共有できており、その軸に沿ってデメリット側を調整することができた
のが勝因です。

先ほどのツールがしばらく運用された後、そのツールに対して、ぜんぜん違う仕様要求が来たとします。このとき、BやAの頭に「部署限定の話じゃないから大丈夫だろ」とか「もし工数かかるようなら工期を長めにもらえばいいや」というバクゼンとした思い込みがあると・・・ものすごく軽い気持ちでやりまっせーと約束しちゃったりします。前回はちゃんと行っていた、「デメリットとメリットの調整」をすることなしに。
そうするともう、Cの一人負けとなります。
実装自体が大変かもしれないし、実装はなんとかなってもリリースが大変かもしれない、運用が煩雑になって問い合わせが急増するかもしれない...さらに、これら問題を回避する策は存在するけど、それをやってしまうと、さらに次の仕様変更に対する耐性が損なわれるかもしれない...いろんなデメリットが考えられるはずなのに、検討したつもりになっていたとしたら、これは泣けます。
Cの一人負けというのは、結局、回り回ってユーザの不利益にもつながります。出来上がったものが残念な仕上がりになっているわけですから。Cが2、3日徹夜すりゃ解決する話ならいいですけど、エンジニアが2、3日徹夜したら、ユーザは半年とか1年ぐらいは困ることになると思っといた方がいいです。断言。

大変だからやりたくない!そんな仕事取ってくんな!とか言ってるわけではなく、すべては準備とか心構えとかの問題です。
それらは、プロジェクトの初回にはみんな気をつけてやるんですが、いったん喉元過ぎたら忘れられがちなものです。リリース後も継続して心構えをしておく、前に議論していったんの結論が出たことでも、常に忘れずに意識の俎上に載せる、ということがとても重要です。

実現したい仕様によって、工数はかわる、利便性もかわる。仕様の実現レベル感もかわります。システム屋なら誰でも知ってる当たり前の事なんですが、ことExcelでの開発に関しては、その大と小の振れ幅というか、
Excelをフロントエンドにすることによるメリット(と思われているもの)を享受するために支払う『犠牲』のようなものは、想像よりもかなり大きい
ように思います。それは前回に記載したようなExcelによる開発ならではの特性から来ています。そしてまた、
Excelによる開発においては、大のほうの見積もりが甘くなったり、支払われる『犠牲』を過小評価する傾向がある
というように思います。

この車幅感覚のようなものを、少なくとも自分と一緒に仕事してる人たちにはわかっといてほしいと切に願う次第です。