ITサービスを提供している場合、新機能をローンチ(リリース)するということは頻繁に発生します。その際、大きな機能追加にかぎらず、小さな改修においても既存で提供している機能が使えなくなったり、サービスが停止してしまったりしないように注意して作業を行わなければいけません。
本記事では、新機能をローンチする場合など、既存のシステムに何らかの変更を加える際に注意したいポイントを整理して紹介したいと思います。IT業界での経験が長い人であれば基本的なことも多いと思いますが、まだ経験が浅い人であってもわかるようポイントをお伝えできればと思います。特に、新人や若手のSEの方には、是非とも身につけておいてほしい内容でもあります。
また、本記事の内容は主にサービスやSIの開発/ローンチに焦点を当てて記載していますが、パッケージや組み込みソフトの開発に関しても同様の考え方が適用できる場面は多いです。
新機能ローンチ時の作業品質を向上するための7つの方法
1.確認ポイントと想定結果を用意する
作業によって変更される部分と、変更されない部分を事前にチェックし、想定結果を用意しておきましょう。例えば、システムのパラメータ値を変更するという対応であれば変更されたあとのパラメータ値を想定結果として用意しておき、それと突き合わせを行います。さらに、変更されていない部分についても想定結果を用意して、同様に「変更されていないこと」を確認しましょう。
例えば、上記のケースであればリリース前後で、対象パラメータの出力結果をdiffコマンドで確認する、などの方法が考えられます。
2.手順書を作り事前レビューを行う
作業手順を誤ったり、作業内容に抜け漏れが発生しないよう、手順書を準備して関係者で読み合わせ(レビュー)を行いましょう。
単純な作業なら良いですが、特に複数の変更を行う場合などは一つ一つの手順書という形で俯瞰して見ることで作業感の整合性をチェックすることが出来ます。
3.リハーサルを行う
作業内容が複雑な場合や、これまで実施したことがないような作業の場合、テスト用の環境でリハーサルを行うことも有効です。小さな作業の漏れやコマンドの記載誤りなどは、机上で見つけるのは難しいためです。
リハーサルを行うことで、作業手順そのものの品質が向上するだけでなく、実際の作業時にスムーズに作業を行うことができるようになり、リリース作業のスピードアップにもつながります。
リハーサルはリリース作業時に作業する人と同じ人が実施することが、作業習熟の観点で効果的です。
[adsense]
4.複眼で作業する
システム変更作業は必ず、2人以上で作業を行い、実行コマンドをチェックしながら進めていきましょう。特に、削除/更新作業は手が滑って想定外の部分まで変更してしまうということがあるため、複数人の目でチェックしながら行うことが非常に重要です。
古今東西、システムの重要なファイルを纏めて削除してしまったり、DBの重要なテーブルをtruncateしてしまったりという事例は枚挙に暇がありませんが、それらの多くは手が滑って打鍵されたものです。
5.作業前のバックアップを取得する
万一、ローンチ後にシステムに不具合が発生した際に、作業をなかったコトにできるように、事前のバックアップは必ず取得しておきましょう。
「変更前にはバックアップを取る」ことは、リリース作業に限らず、SEの基本的なスキル(と言うか習慣)として身につけておきましょう。
6.作業ログを保全する
あとからどんな作業を行ったか追跡できるよう、作業ログは必ず保全しておきましょう。一部だけでなく、すべてのログを残しておくことがポイントです。例えばteratermであれば、ログイン時点でログの出力設定を行い、ログアウトまでの操作ログを残しておきましょう。
何かトラブルが発生した場合に追跡するだけでなく、作業が正しく完了したことを証明するための資料としても利用する場合があります。
7.システムの重要箇所は一律で前後比較を行う
システム変更の作業により、想定外の部分が変更されていたり問題が発生していないことをチェックするためには、システムの前後比較を行うことが有効です。その結果、変更を行った箇所だけが前後で差分として出てくれば、想定通りに変更作業が終わり、他の部分には影響を及ぼしていないことがわかります。
システム全体の前後比較を行うことは難しいため、観点を絞って、コアな設定ファイルの内容や、DBのテーブル内容など重要な部分を事前に定めておき、どんな作業の場合も一律で前後差分を比較するようにすると、作業品質が高まります。
パラメータなどのStaticな情報だけでなく、実行中のプロセスの状態などが作業前後で変わっていないかという点も重要なポイントです。作業のためにシステムを再起動したときに、もともと稼働していた機能を立ち上げ忘れて使えない、などといった自体を防ぐことが出来ます。
本記事で取り上げたような観点で準備を行うことで、既存のサービスに対して変更を加える際の作業品質を向上させ、ミスの無い運営を行うことができます。
また、重要なポイントは、これらのチェックを行うことでかかるコストと、ユーザが求めている品質レベルのすり合わせを行うことです。多少のミスが有ったとしても素早く低コストで新機能をローンチしていきたいシステムもあれば、失敗が許されない基幹システムもあるからです。
コスト度外視で品質を上げれば良いというわけではないため、作業品質を高める引き出しを持った上で、適切な品質レベルを選択できるようになりましょう。
コメントを残す