AES-PDM:明細表取り出し口のLED表示異常
読者の皆さん始めまして。入社10年目のソフト担当(A)です。
専門学校卒業後、株式会社暁電機製作所へ新卒入社し、現在はチャージ機関連のソフト開発を行っております。
今回は、以前に発生させてしまった問題[AES-PDM:明細表取り出し口のLED表示異常]の内容とその後の取り組みについて、紹介いたします。
AES-PDMとは?
問題内容
AES-PDMにて、利用者がチャージ後レシートを受け取る際に、たまにLEDが赤色点滅になり、「エラー」と勘違いしてしまう事象が発生しました。
※LEDの赤色点滅は対応するデバイスのエラーを表示しております。
発生原因
アプリ起動時にプリンタのみエラーを無視するというイリーガル(例外的)な処理を行っておりました。なぜならば、チャージ機起動時に毎回ロゴデータをプリンタに送信しないとロゴデータが印字出来ないためです。ただし、そのロゴデータをプリンタに送信し続けるため、送信している間はプリンタから応答がなく通信異常となります。
そのエラーを無視している時間に、[エラーであればLEDを赤点滅させる処理(エラーリセット処理)]を追加したため、本来であればエラーを無視するタイミングでLEDの表示判断処理が行われておりました。
そのため、本来同じ動作をするはずの、プリンタエラーとプリンタLEDが、アプリ起動時の一部のタイミングで異なる動作をするようになっておりました。
※問題発生時には、フローチャートの赤色の通りに処理が行われておりました。
(フローチャート:問題発生時)
また、社内検証時では、プリンタロゴのデータが現場のロゴデータより小さかったため、[LED表示:プリンタエラー]の条件前にロゴデータの送信が完了し、どちらも正常[LED:消灯/画面表示:Top画面]となっておりました。
処置内容
アプリ起動時には、ロゴデータのダウンロード中にはプリンタ通信異常になり、プリンタのエラーを無視する必要があるため、エラーリセット処理に関してもアプリ起動時にはプリンタLEDの制御を行わないように修正しました。
簡単に申し上げると「プリンタエラーに対応してプリンタLEDが表示されるように修正した」形となります。
余談ですが、この修正したソフトを現場にて更新するために、普段使用しない高速道路を片道約3時間半かけて移動し、とても辛かったことをよく覚えています。
再発防止策
<発生原因対策>
次回ソフト修正時から「問題部分以外に影響が発生するような修正を行っていないかを確認する。(修正内容に対して、影響範囲がどれだけあるかを明確にする)」ようにいたしました。
それを実現する為に、ソフト設計書に「問題内容」「原因」「修正目的(何を修正するのか)」「修正内容(どのように修正するのか)」を記載し、「修正目的」と「修正内容」にずれや不要な修正が行われていないことを確認します。(修正内容をソフト有識者や先輩方に確認していただき、修正内容に問題がないことを再確認するといった形となります。)
<流出原因対策>
ノウハウチェックリストに「ロゴデータや画像ファイルなどに変更があった際にも、動作確認ができているか」という項目を追加致しました。
※今回の問題では、ロゴサイズが小さいと発生せず、ロゴサイズが大きなものの場合にのみ発生したため、最大サイズのロゴを用意し検証時に確認するようにしました。
(ノウハウチェックリスト抜粋)
有効性確認
<ノウハウチェックリストの有効性確認>
量産のように同じ製品での確認が困難であるため、過去5年分の市場障害件数からの確認となります。
※ノウハウチェックリスト稼働は2018年04月頃からとなります。
51期(2018年04月以降)に発生したソフトの障害件数は「6件(内市場障害:3件)」あり、その内1件は、ノウハウチェックリストの確認事項の1つを例外事項として捉えたため、発生したものとなります。
52期(2020年02月まで)に発生したソフト市場障害は「14件(内市場障害:4件)」で、ノウハウチェックリストに記載されている不具合は発生しておりません。
ノウハウチェックリストの使用に関して、ソフト設計DR時に確認を行い、個人のみで「非該当(記載されている項目の対応は不要・行わない)」の判断を行わないようにしております。
そのため、ノウハウチェックリスト使用後からの問題の発生件数が減少傾向にあるため、このノウハウチェックリストの運用は有効であると考えます。
このような形で、問題を発生させてしまったとしても、その情報を資料にまとめ次の開発時に確認することにより、より良い製品を市場に投入できるように日々取り組んでおります。