業務例外をどこまでシステム化するか
「ココは絶対100万円以下の値しか入れられないようにして」「支払後に支払額を変更するはずがないんだから支払データは変更が入らない仕様にして」なんて要件を取り入れて作ったのに、「今期からは100万円以上の金額を入れたくなった」とか「為替変動があったからこの支払済データの支払額を変更したい」なんて要望が後々入ってきたりする。
「その当時はそういう仕様が正解だった」とか、「今回だけは特別」とか、理由は様々で、その理由自体が間違っているわけではないのだと思う。
ただ、システム化したもの、プログラムによって制御しているもの、というのは、「やっぱ変えたい」とか「今回だけちょこっと例外を許して欲しい」といった、人間ならできる「柔軟な対応」というのができない。パソコン、システムというのは結局のところ「人間が一度決めて命令したことを繰り返すことしかできない」と思うべきで、「空気を読んで毎回やることを変える」ということは、今のところ早々簡単にできることではないのだ。
とはいえ相手は人間で、システムのために自分の行動や業務を合わせにいくなんて工夫はしないのが普通 (いや、プログラマならそういうことって平気でできるんだけど、パソコンできない人って恐ろしいぐらいその感覚がないのよ)。何が業務仕様で、何が業務例外で、その業務例外には「特例で OK とするケース」が発生しうるのかしないのか。そのあたりの見極めと、システムでどこまで対応するか、どこまで顧客に諦めてもらうかを考えてもらう必要がある。客は金を払うので妥協なんてしない一方、自分の業務への理解も案外低く、それをシステム化するということはどういうことか (= 自分が手作業でやっていたときの「柔軟さ」がある種再現されないということ) を理解していない。
自分が担当しているシステムの一つは、一応「システム」というものを理解している人たちが、勘定を管理するためのシステムだったりするのだが、それでもこの人達は「やっぱり今回だけこうしたい」といったことを言い出したり、「自分が Submit ボタンを押す前に何度か変更をかけていた金額のうち、3つ手前の金額の情報を復元できないか」なんて依頼がきたりする。根本的にシステムができることというのを理解していないし、理解する気もない様子。
それに対してうちの上司は「じゃあ今回だけ支払済データに UPDATE 文流して金額情報変えちゃいましょう」なんつってデータパッチしてみたり「パッチしたせいで連携システム側のデータ取り込みが失敗した」とか言われたら「じゃあ取り込みデータだけ手運用で別に入れ直しましょう」とか無茶したりする。俗に言う「運用でカバー」しかせず、システム要件と現在の要望とが合っていないことを何とかしようとか、顧客業務を整理させようとか、システム側をなんとかしようとは絶対にしないので、下っ端のこちらは毎度毎度意味不明で成果のない仕事をさせられている。
この直属の上司をすっ飛ばして更に上の上司を巻き込んで文句を言ったりしたけど、組織全体が腐敗しているし、客も選べないままアホ相手に時間を搾取されるので、僕は全てを諦めることにした。
僕は物事を何とかしようとしている人と仕事したいし、自分が協力するなら「自分でも何とかしたいんだけど手伝ってくれないか」という姿勢の相手に手を差し伸べたいと思う。「イイカンジにしておいて」なんて依頼の仕方を本気でするような適当な人間なんか不幸になっていればいいのだ。