【障害記録】No.4:画面の見出し項目が論理項目名と一致していない


自分が体験したシステム障害を紹介してトラウマを抉り返す自虐コーナー
※特定避けるため一部脚色・変更しているが、大体ほぼ実体験。

障害No障害分類No
(自分用)発生分類
アプリ/データ/ミドル/ハード案件名個人的ヤバイ度
(5段階評価)

4 A アプリ 画面の見出し項目が論理項目名と一致していない ★☆☆☆☆

 


 


 

発生日時 2016/07某日 解決日時 2016/07中 発見者 お客さん 対応者 原因者 4年前にその機能を作った人
障害の詳細内容 例えば「データ区分」という論理項目があって、
それの実現値が"01"(正常データ)"02"(警告データ)"99"(異常データ)とかだったとしよう。
一方でよく似てるが別の論理項目「処理区分」というのがあって、
それの実現値が"00"(正常データ)"01"(警告データ)"02"(異常データ)とかだったとしよう。

このとき、
画面で「データ区分」という項目名で値を表示しているのに、
中身が「処理区分」になっていた

というのが一言でいえばこの問題の正体である。
画面に表示している値は物理的には「処理区分」であり、「データ区分」ではない。
言い換えれば裏のデータは「処理区分」としては正しい。
それを表示する側、画面のほうで、その項目を「データ区分」として表示しているからおかしく見える。
要するに画面表示する項目名を「データ区分」から「処理区分」に変えればいい、
というだけの(固定文言の修正だけで済む)案件である。
まさしく全然大したことない。
苦笑すらこぼれそうになるカス案件である。
実際その対応でこの案件は終わったわけであるが…
対応内容・経緯等 最初、この件をお客さんが見つけて連絡してきたときは
「至急ご確認お願いします」といった吐き気を催すタイトルのメールで、
「テーブルの「データ区分」という項目に格納されている値が不正値になっている!」という、
いかにもヤバ気な雰囲気を醸し出す内容だった。
もし本当にそうなら確かにエラいことである。
テーブルに誤った値が格納されている(余談だがSEはこれをよく「データが壊れている」と表現する)ということは、
そのテーブルにデータを書き込む処理の修正はもちろん、
過去誤った値で書き込まれたデータを正しい値に直す作業(データパッチ)も必要で、
もしその誤った値をもとに業務処理されたものがあったとすると、それの影響調査等も必要で、
対応を考えるだけでも計り知れない体力と精神力を消耗する案件である。

マジかよ恐るべき案件が降りかかったぜ……
と思って恐る恐る調査をしてみると、
  1. 対象項目のテーブルの論理名は「処理区分」になっている
  2. 「処理区分」として見ると実現値は仕様通り("00"~"02")
  3. テーブルに書き込む処理も「処理区分」として書き込んでいる
  4. この画面自体4年以上誰も何も触っていない
ということがわかった。

よって
「画面表示の項目名は確かにおかしいけどこれ昔からずーっとこうですよ(^^;」
という回答をするに至った。

背景として、この「テーブル」に、
従来とは別のルートからデータが流入する口(機能)を、その時期新たに開発したので、
このテーブルを参照している画面機能やCSV等を重点的にお客さんが見ていたら発見した、
というのが事の発端にあった。
その「別のルートからデータが流入する口」が、データを壊してしまっているんじゃないのか!
という、疑惑の目をかけられた、ということなのである。
しかしフタを開けてみるとその機能は別に間違っておらず(少なくとも「処理区分」としては正しい仕様で動いていた)、
画面なんて随分前から直してないから昔からずーっとこのまま。
結局↑の回答で落ち着いた。
といいつつ、画面表示の項目標題がおかしい(実態と乖離している)のは事実なので、
まあ、固定文言の変更だけなら、ぱぱっとやっちゃいますか、という感じで、
とっとと画面修正してリリースして終了となった。

4年前この画面機能を作った人は俺ではないのだがw、
まあ、その人が単純に項目名の設計を誤ったというだけの単純ミスなのだろう。
この画面機能には、4年以上前の初期開発の頃から存在していた既存機能に、
良く似た画面機能が合って、そっちは確かに「データ区分」なので、
それを真似たか流用したかでミスってしまったのだろうと予想している。
(特にお客さんには言わなかったが)
反省点・あとがき 今回の件は画面の固定文言修正で幕を閉じたわけだが、
実は「データ区分」で表示するのが仕様上・業務的には本来あるべき姿で、値としても「データ区分」であるべき
というのが裏の真実にあったのだと想像すると、この件は結構闇が深い。
もっとも4年以上、実質「処理区分」で業務が回っていた以上は問題なかったのだろう(もしくは使ってないか)が、
本当に最初の初期の構想に、「データ区分」を表示することによる情報提供の姿があったのだと仮定すると、
我々(開発者)もお客さんもエンドユーザも誰も気づかないまま4年以上の時が無駄に経過した、
というのには切なさを感じずにはいられない。
今となっては4年前の本当の真実は誰にもわからないが、
こうした指摘があったことを受けて、その背景を想像すると、
裏に秘めた「何か」にちょっとした思いを馳せることがある。