「カットオーバー(システムが稼働を開始する日)の前日は、不安で夜も寝られない」と語るITエンジニアは多い。カットオーバーは、これまで構築してきたシステムが初めて本番で稼働する日なので、大概はトラブルが噴出してその対応に追われることになるからだ。

 だが、これはすべてのプロジェクトに当てはまる話ではない。たとえカットオーバー前日であっても、開発チームのメンバーの誰もがぐっすりと寝つけるプロジェクトもある。例えば、日本情報システム・ユーザー協会(JUAS)の細川泰秀氏(エグゼクティブ・フェロー)が、ITベンダーで統括マネジャーを務めていたときに担当したプロジェクトである。

 カットオーバーでトラブルが噴出しないようにするには、原因となるトラブルをシステムの稼働前までにすべて洗い出し、改修しておけばいい。つまり、テスト段階で徹底的に不具合を洗い出しておくということだ。

 このこと自体は、多くのITエンジニアが認識している。「テスト仕様書を作成して必ずレビューする」「二重にテストを実施して作業の漏れを防ぐ」などの対策で、何とかして不具合を徹底的に洗い出そうとするプロジェクトもある。それでも、カットオーバー時のトラブルが減らないというのが実情だ。

 実は細川氏も、いくつかの対策を講じていた。その中で最も効果が大きかったのは、「本番環境と同じデータを使って、単体テストを実施すること」だった。

コンバージョンミスが原因の半数

 本番環境では、旧システムからコンバージョン(変換)したデータを利用する。細川氏は、カットオーバーで発生するトラブルの原因を分析。トラブルの半数が、「旧システムのデータが正しくコンバージョンされていないことに起因する」ことを突き止めた。

 言い換えれば、コンバージョンのミスさえ解消しておけば、カットオーバーで発生する不具合の半分を減らせるということである。このコンバージョンのミスを見つけやすくするため、テスト対象の範囲が最小となる単体テストのフェーズから、コンバージョン済みのデータを使うことを考えた。

 ただし、単体テストで本番環境と同じデータを使えるようにするには、コンバージョンの作業を単体テストまでに終わらせておく必要がある。これまで細川氏が手掛けていたプロジェクトでは、コンバージョンはカットオーバー直前までに終わらせることが一般的だった。しかも、機密情報の漏洩を防ぐ目的から、コンバージョンはユーザー側の担当者が実施するケースが多い。こうしたケースでは、開発の初期段階からユーザー側の担当者に大きな負担を強いることになる。

 細川氏は、本番環境と同じデータを使った単体テストの必要性や、それによって得られる開発効率や品質の向上などを、ユーザー側の担当者に丁寧に説明することで理解を得た。そして、「稼働日は全員で定時に帰宅しよう」という目標を立て、プロジェクトを推進したのである。