業務アプリねぇ

システム開発というとほぼ100%業務アプリが絡んできます。
今回は業務アプリについて書いてみたいと思います。

業務アプリについては社会人になってからほぼ10年間は
悩まされ続けています。その経験則から問合せを乱暴に
くくると90%は下記の2点に集約できちゃったりします。
 1:エラーチェック
 2:値の自動セット


*残り10%の内半分は、パフォーマンスで半分はGUIの問題だったりする。

「エラーチェック」と「値の自動セット」書けば非常に簡単だが
実際はかなり厄介だし根深いです。

まずは「エラーチェック」から、いっちゃいます。
エラーチェックというとまあ思い浮かぶのは以下のようなものでしょう。
「数値でないところに数値を入れれなくする。」
「全角文字列しか入らないようにチェックする。」
「休業日をチェックしてその日を入力できなくする。」
しかしながら、チェックをしてもらうと困るというのでチェック処理が
盛り込まれない場合が多々存在する。
(多くは仕様を決めるのが面倒なので考えないというパターンだが・・・)
で、何でも入力できたりして、トラブルになったりします。
大概は「'」とか「空白」や「全角文字」および「改行」が該当する。
さらに悪いことに、問題が発生するのは「バッチ処理」が多い。
バッチなので当然のようにエラーで止まる!!!!
エラーデータをログに記録してスキップして継続処理するということをせずに
朝までずっと停止していて、エンドユーザ側に知らされるのが運用上、取り返しの
つかない締切の10分前とかいう恐ろしい事態を招いてしまうのです。
なので「エラーチェック」は最低でもシステムがおかしくならない程度のは
盛り込んだ方がいいでしょう。
(何でこの文字が入らないとかいう苦情が来ますが、システムトラブルよりはましです。)
顧客要件によりますが、特に指定がなければバッチ処理をする場合は
エラースキップモードを組み込まないと心臓に悪い時間を過ごさなければなりません。

続いて「値の自動セット」です。
これは日本人のお得意の細かいところまでよく気の付くシステムに必須の
機能ですが、システム側の人から言わせると諸悪の根源です。
簡単な例なら
「土曜、日曜日は営業日としてカウントせずに金曜日から次の営業日を求めて
商品到着予定日に値をセットする。」といった様な業務特有のやつです。
まあ、この程度なら私の足りない頭でも何とかなるんですが。これに2つ3つ
ひねりが入るともはや無理です。ややこしい業務ルールになると、必ずバグが
出ています。(バグというより仕様の指示漏れやね・・・。)
何で「値の自動セット」がややこしいの簡単やんという人がいますが、落とし穴が
一杯あるのです。どういう背景でルール化されたのかをきちんと説明できる人が
いなくて惰性で続けられてきた独自ルールと、闇のルールがごたまぜになって
もはや誰も説明できない状況になってしまっているのです。
そして関係者は仕様を把握できていないので、次々と全てがバグ扱いにされて
しまうのです。そして不毛な作業に開発者のモチベーションは低下していくのです。

なぜだか愚痴ですかと言われそうですが、業務アプリの90%を抑えたければ
「エラーチェック」と「値の自動セット」を徹底的に洗い出すしかありません。
必ずシンプル化できるのでルールをきちんと洗い出すのです。そしてそのルールを
アルゴリズムにして、実際に動かしてみてお客さんの所に確認に持っていくのが
一番いいのです。とはいえ予算上の制約があるよという場合もあります。その際は
「どこまでのトラブルであれば事後修正」でも問題ないかをきちんと合意しておく
必要があるでしょう。むろんエラーチェックロジックや自動セットロジックは
綺麗に外出しにしておかないと泣きそうなことになりますが・・・・。
参考までに、過去の経験から導き出した一覧表を付けておきます。
ご意見あればコメントよろしくお願いします。

コメント

このブログの人気の投稿

証券外務員1種勉強(計算式暗記用メモ)

GASでGoogleDriveのサブフォルダとファイル一覧を出力する

マクロ経済学(IS-LM分析)