とある新人のブラック就労記 その13
20××年11月末日。
新システム導入前日。
作業は深夜だが、一応(なにが一応なのか分からないけど)午前8時半から勤務をする新人くんと鈴木さん。
システムが導入できる段階だといっても、すべてのバグが修正されているわけではない。
優先度の低いバグ――例えば、機能の名称表示部分で一部だけ要件定義時の古い名前だとか、HTMLの左寄せで統一しているところの1カラムだけ中央寄せになっているとか、『使う上では気にしなければ問題ない』といったバグは後回しにされることがおおい。
もちろん、すぐに直せるのであれば直したいところだけど、一度完成したものを直すにはある程度の手続き的な手順(修正着手報告、完了報告、修正リストの反映、第三者の確認、など)が必要なためどんなに簡単で細かい修正でも一定の時間がとられてしまう。そのため、どうしても優先度が高いものから修正することが多い。
新人くんはデスクにつくと、社内サーバに置かれたバグリストを見つつ、優先度順に修正を開始した。
システムは既に結合テストを終えているため、修正が完了したとしても、その差分ソースは後日のメンテナンス時にリリースされることになっている。
たとえ修正が1ファイルの1文字だけだとしても、例えばカッコの閉じ忘れなどでそのファイルが不具合を起こし、更にはファイル読み込みに失敗したせいでサーバが起動せず、結果システムがダウンする……という可能性もないことはない。だから、安易に修正をシステムに反映することは決して許されない。
残業続きで、かつ時間に追われる生活をずっと送っていたため、ここにきて緊急性のない仕事――やらなければいけない仕事ではあるけれど――がくると、なんとなく身が入らない新人くん。ついつい、ネットサーフィンなどをして時間をつぶす。
『現場に到着しました。これより、担当者と会って打ち合わせをします』
八九寺さんから送られてきた携帯から打ったであろう簡素なメールがプロジェクトのメーリングリストに届いた。鈴木さんのほうを見ると同じタイミングで見たのか、無言で頷いた。
といっても、この連絡を受けても社内待機組は特にやることが無い。
現場の作業員の方……つまりエンドユーザーからシステムへの質問があったとしても、ほとんどは現場に同行したシステム担当者――今回の場合は八九寺さん――が対応するので、よほどのことが無い限り会社に電話がかかってこないからだ。
先日までとは打って変わって暇だった。新人くんはむしろもう仮眠をとりたいと思ったが、社内は当然平常運転で忙しそうに働いている人もいる。さすがにデスクで寝てたらお咎めを食らうので、眠気を我慢して気が乗らないバグ修正をだらだらとやっていた。
――と、新人くんのデスク近くの電話が鳴る。内線だった。外線と内線は音のパターンが違うので一目……というか一聞きで分かる。
新人くんは安心して受話器を取る、と。
『あ、新人くん? 経費の精算作業が終わったから、手が空いたら印鑑もって取りに来てくれるかな?』
桜井さんだった。内容は、以前提出した経費の精算。ネカフェの利用料だ。
新人くんは暇だったのですぐに印鑑を用意し、総務部へ足を運ぶ。
「お疲れ様。はい、これ現金ね。中身確認できたら印鑑お願いね」
桜井さんに促され、金額を確認する。結構な金額だった。万札が1枚……2枚……。少し使いすぎたかとも思ったが、他にもっと凄い金額の人もいるという。こうやって金銭感覚が麻痺していくのかと、なんとなく、経費トラブルを起こす政治家の気持ちが少し理解できた新人くんであった。
「プロジェクト、大変みたいだね。体、壊さないように気を付けてね?」
新人くんは頷き、ぎこちない笑顔を返しながら、無事システムが導入できそうなことを伝えた。
「そうなの? よかったね。社長も期待してるプロジェクトだから、成功したらきっと打ち上げも豪華だよ」
成功。あまり実感のない言葉だったけれど、たしかに、目前まで来ているのは確かだった。
桜井さんと話して少し気がまぎれたおかげか、新人くんはその後はもくもくと作業に没頭することができた。
そして……夜10時。
「よし、やるぞ」
鈴木さんに声をかけられ、専用のデスクに座る。
会社には客先が使う、本番用のシステムが置かれているサーバにリモートでアクセスできる端末が置いてあり、トラブル対応やデータ移行作業、システムリリースなどは基本的にその専用端末が置いてあるデスクを使用することになっている。
運用部の部長クラスになると自宅からのリモート接続を許可されている場合があるが、基本的に新人くん以下開発部メンバーは出社しないと本番システムに触ることができない。そのため、深夜の移行作業も必然的に会社で作業することになる。
もちろん、セキュリティの度合いは客先のコンプライアンス如何で変わるため、客先によっては自宅作業禁止、専用端末のみ、その専用端末も客先が用意したもののみ、といった事もある。
「俺がチェックするから、お前は作業を頼む」
二人体制の場合は、片方が作業チェック表をもとにチェックを担当することが多い。
まずは現行の旧システムが稼働しているサーバにアクセスする。
セッションを確認し、使用しているユーザの確認。0人。
次に、現行システムのデータベースのバックアップ処理を走らせ、移行用データを取得する。これはタスク処理で毎日行っているバックアップ処理を改良して作ったバッチファイルを利用。さすがに全てのデータを取得するとそれだけで2時間も3時間も食ってしまうので、必要なテーブルだけに絞ったバックアップ処理だ。それ以外のデータは基本的に変動が少ないデータなので、事前に移行を済ませてある。
バックアップを取得したら、そのバックアップを利用して新システムのデータベースの移行用一時テーブルにデータを入れ込む。
その後、ストアドプロシージャを利用して移行用一時テーブルから新システムのテーブルに変換しながら流し込む。
そして、新システムのサーバアプリを立ち上げ、実際にブラウザからログインして動作を確認する。
多かれ少なかれ、Webシステムの移行作業はこのようなものだと思われる。
現行システムをしばらく並行して走らせるか、シャットダウンさせるかはプロジェクトによる。今回は後者で、現行システムは利用停止状態にしている。
作業的にはそう多くはないが、どうしてもデータベースの処理は時間がかかるため、チェックが一通り終わったときには時刻は深夜2時を過ぎていた。
しかし、時間はかかったものの鈴木さんの几帳面さのおかげで、特にトラブルもなく順調に終了した。
「……これで全部だな。長谷さんに電話する」
データ移行のエビデンスをメールで送りつつ、おそらく居酒屋にいるであろう長谷さん率いる現場組に一報を入れる。
「……牡蠣が美味いってさ」
新人くんは携帯を叩きつけようとする鈴木さんを必死にとめた。