「エンジニア必見!! ~バージョン管理の落とし穴~」
「出荷実績のある製品で発生」
ソフトウェアバージョンの誤りが発生した製品は、出荷実績もあり手順が確立した製品での出来事でした。
また、ソフトウェアのインストール作業も間違いなく最新バージョンで実施しており、手順も順守されていました。
本件は幸いにも設置作業中に発覚し運用前に防ぐことが出来ましたが、
何故ソフトウェアバージョンに誤りが発生したのか、解説します。
「標準仕様ソフトウェアの仕組み」
ソフトウェアバージョンを管理するにあたり頭を悩ませるのが、“特定顧客向けソフトバージョン”(一般仕様以外のユーザー個別バージョン)の存在です。
一般仕様のソフトウェアでアップデートが発生すると、特定顧客向けソフトバージョンにも反映する必要があり管理が煩雑化します。
この問題を解決するために、同一製品で複数のソフトウェアバージョンが存在する場合には、それらを一本化した標準仕様のソフトウェアを構築することとしました。
異なる向け先であっても設定値を変更するだけで切り替えが出来、複数のソフトウェアバージョンを管理しなくても良い仕組みです。
ソフトウェアバージョンの誤りが発生したのは、この「標準仕様」を使用した製品でした。
「発生していた特定顧客向けソフトバージョン」
標準仕様の最新バージョンは「4.3.0.8」でしたが、
問題が発生した製品にインストールされたバージョンは「4.3.0.10」でした。
確認した結果、過去に標準仕様では対応出来ない改修が必要な向け先があり、新たに特定顧客向けソフトバージョンが作成されていました。
標準仕様ソフトウェアの構築により一本化されたはずが、一本化出来ないものがあったのです。
この特定顧客向けソフトバージョンの管理方法に問題がありました。
「見直せていなかった管理方法」
標準仕様に一本化したバージョン管理を行っていたため、
手順上は最新バージョンのソフトウェアを導入する手順だけになっておりました。
特定顧客向けソフトバージョンが作成された当時は関係者の記憶にも新しく、向け先ごとの最新バージョンを選択することが可能でした。
しかしながら期間が空き、標準仕様の出荷比率が多い状態では特定顧客向けソフトバージョンの存在が薄れ、複数のソフトウェアバージョンが存在する事の意味が曖昧になっていました。
特定顧客向けソフトバージョンが作成された時点で、適切な管理が必要な状態が発生していたのです。
「適切な管理体制」
特定顧客向けソフトバージョンの対策として、ソフトウェアバージョン一覧表を作成しました。
また、出荷時にバージョン確認手順も追加しました。(以下は一覧表のサンプルです)
向け先ごとにバージョンを記載することで、適切なソフトウェアバージョンを導入します。
特定顧客向けソフトバージョンが作成された場合は資料を更新することで、管理を行っています。
「バージョン管理の難しさ」
標準仕様の方針自体は問題ありませんが、例外が発生した場合の対処に問題がありました。
特定顧客向けソフトバージョンが作成された当時は覚えていても、時間が経つと忘れてしまうのが人間です。
担当者が変わっても数年前の製品であっても、正しいソフトウェアバージョンで出荷できる管理体制の構築が必要となります。
また、ソフトウェアバージョンの間違いはどの製品でも起こりうる問題であり、適切な管理と周知に取り組んで参ります。