テスト環境をぶっ壊しかけた話

この記事は、Qiita夏祭り企画の、Qiita夏祭り2020_パソナテックカテゴリにある

「テーマページ②:システム開発における過去の失敗と乗り越えた方法について共有しよう!」

です。
(長い)

他の方の記事は、qiita夏祭り2020_パソナテックタグでぜひどうぞ。

え、誰でも通る道じゃないの?

本番環境、テスト環境に限らず環境をぶっ壊す話、結構あると思う(あっちゃいけないでしょ)けど、もちろん私も経験しています(偉くないから。。。)。

昔はよかった(のか?)

こう書くと「あなた幾つ?」となるんですが、汎用機(メインフレームともいう)がシステム開発として普通だった頃からこの業界にいます。
汎用機の頃に新人だったのですが、汎用機を扱うプロジェクトでは、とにかくマシンにコードを載せるだけでもいくつもいくつも手順があり、何重にも人の目が通り、チェック項目もたくさんあり、という状況なので、「この手順を踏めば大丈夫」「コードを担当者に渡せば後は○時にはテスト環境が新しくなってテストができるはず」という環境でした。
このお役分散は、やることが分担されているため、自分のやることが明確でした。
なので、自分の範囲は完璧なのです。

はい、自分の範囲が。

そして、汎用機の場合は、マシンルームがあるので実務的な部分は全て丸投げです。(でした)

それからちょっとして

入社した会社が倒産しました。
バブルに弾け飛んだんです。
転職した業界は同じでしたが、時代は汎用機よりもワークステーション(これすら懐かしい)でしょう、という時代になり、データのやり取りをフロッピーディスク(!)で自分の開発したコードをテスト環境に足で(今はネットですが)持っていってました。
ワークステーションなのに、なぜフロッピーディスクを持っていっていたかというと、開発環境はスタンドアロン(て、わかります?)のPCだったからです。
なので、出来上がったコードはフロッピーディスクに入れて、テスト環境まで持っていきます。
フロッピーディスクに限らず、endコードを書き込むまでに少し時間かかります。

「急いでいた」は言い訳にならない

とあるプロジェクトは結構急かされる環境で、自分の実力不足もあってあわあわしながらコードを書き、「よし、後はフロッピーディスクに保存して、、、」とフロッピーディスクに保存しました。
しかし、先ほども書いたようにendコードを書き込むまで少し時間がかかります。
今のように「終わりました」というようなメッセージが出るわけでもなく、終わると物理的に「かちっ」と音がするので、その後にフロッピーディスクを抜き取ります。
焦っていた私は、「かちっ」の「か、、、」で

終わった!

と思い、すかさずフロッピーディスクを抜いて持って行きました。

もうお分かりですね。

endコードが正常に保存されていない状態でテスト環境のマシンに読み込まれたフロッピーディスク。
テスト環境がみるみるうちに動かなくなる現象を目の当たりにし、さーーー、、、、と音を立てて血の気がひいていきました。

ほんとにやばい時って、ほんとに首が回らないというのを初めて経験しました。

その場で硬くなる私。
フロッピーディスクを受け取ってマシン作業をしていた先輩がすかさず鬼の形相で復旧。

「急いでいたは言い訳にならないぞ!」

ほんとに申し訳ない。。。
本番環境でなくてほんとによかった。。。

とにかく慌てるな

この経験から、「保存」するという作業に神経質になった私。
キーボードのショートカットで保存をする時も、何度も何度も保存してしまいます。
そして、PCの電源を落とす時も気を使うようになり、シャットダウンして黒い画面になった後も3秒くらい待つようになりました。
終電が後5分後だとしても、ここで保存やシャットダウンをしたら、お泊まりコースだし、駅までは7cmヒールでとにかく突っ走ればなんとか間に合う(よくそんなヒールで走ってたな、私)、最後は駅員さんに大声で叫んで一瞬待ってもらおうという気持ちで、とにかく、慌てるな、慌てたら負け(何に?)と呪文のように唱えていました。

今でもとにかく慌てるな

今は、保存していないと開発アプリ側から「保存してないけど、いいの?」と聞いてくれます。
なんて親切。
きっと、いろんな人が私のように(?)失敗を重ねてアプリを便利にしてきたんでしょう。
ありがたいことです。
開発現場は、とにかく時間との戦いです。
でも、慌ててポカミスをしてしまったら、時間がない中積み重ねてきたことが全て崩れますので、ファイルを保存するときに限らず一区切りする時間を作り、見直したり確認する作業は大事です。
防げるミスは、防ぐ努力を。(自戒を込めて)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です