私、普段はシステム開発のプロジェクトマネージャっていう仕事をしています。マネージャっていってもまぁ、雑用係のようなものです。
たいていの場合、開発の案件をメンバーと協力して進めていくのが仕事です。
こういう仕事をしていると、たまーにトラブルに見舞われることがあります。
今日はお客様への進捗報告のために夕方から客先に出てその後直帰というパターンで行こうと思っていました。
そんなとき、同じチームのKさんが「ちょっとまずいことになっているみたいです。。。」と言ってきました。
彼はチームは同じですが、プロジェクトは異なっており、近々開始予定のプロジェクトの準備をしているようでした。
今日は、上司が不在なので何かあったのかな?と思い話を聞いてみることに。
「あのぉ、大変申し訳ないのですが、やっちゃったかもしれません。。」
「ん?やっちゃったってどうしたの?」
「どうやら、ねじまき堂さんのプロジェクトの開発DBを壊したかもしれないんです。。」
「うげっ、それマジ?」
彼の話を聞いてみると、彼がこれから使用する予定のパッケージ製品のパッチプログラムを誤って私のプロジェクトで使用している開発中のDBにやってしまったらしいのです。
うーん、、、まずいな。
油断したぜ。。。
ソースとドキュメントはバックアップしていたけど、DBはやってなかったわ。。
しかし、一縷の望みを託して、開発チームのSさんに確認してみるとやっぱりやっていないとの事。
さらにまずいのは、この会社のメンバーはどうやらGUIを使用したツールでDBのスキーマを変更しているようなので、スクリプトとかないかもしれないということ。
前の会社ではスクリプトを使用するのがもう当然のような感じだったのだけど、この会社ではその習慣はないようだ。
まぁ、どちらがいいとか悪いとかは置いておいて、状況を把握しなくては。。
メンバーへのヒアリングの結果、以下のような状態であることがなんとなくわかってきた。
・更新してしまったのは、DBのテーブル、ストアドプロシージャ、一部のデータ
・どの範囲を更新したのかは情報がなく、流したスクリプトを解析するしかないが、数が多い
で、まずは何を対象としてしまったのかを調査してもらうことに。
さらにうちのチームで手を加えていた箇所を調査。
パッケージの初期状態のオブジェクトを取得し、上記情報を並べることにしてもらった。
で、結果として以下のグループに分類してもらうことを指示。
・パッケージに含まれていて、どちらも手を加えていないもの
・パッケージに含まれておらず、今回のミスで追加してしまったもの
・パッケージに含まれていて、今回のミスで更新してしまったもの
・パッケージに含まれていて、開発で更新しているもの
・パッケージに含まれていて、開発で更新しているものを今回のミスでさらに更新してしまったもの
ここまでくると対応は結構わかりやすくで、
→これは、そのまんまでOK
→これはドロップ対象
→更新前のパッケージからソースを拾ってきて元に戻す
・パッケージに含まれていて、開発で更新しているものを今回のミスでさらに更新してしまったもの
→開発ソースから元に戻す
という風にしてねと指示を出しておいた。
まぁ、こう書いちゃうと当たり前のことをしているだけなんだけど、みんな動転しちゃったり、ちょこっとだけ調べて手を抜いたり、誤った判断をしてしまったりするんですよねぇ。
なので、当たり前のことを当たり前に処理するように指示する必要があるわけです。
まぁ、本日のところはどうにか回復できたようですが、そもそもあわてないですむように定期的なバックアップは取得しなくちゃなと改めて思ったのと、リスクは予期できないところからくるなぁと思いましたねぇ。
それにしても、やっちゃったKさんは相当凹んでいるだろうなぁ。。。
コメント