新・闘わないプログラマ No.34

プログラマと徹夜


プログラマに徹夜はつきものです。
仕事でプログラム開発をしていると、当然のことながら「期限」とか「納期」というものがあるわけですが、なぜか、これより前にプログラムが出来上がっている、ということは絶対に無いんですね。これは普遍の真理です(と、断言させていただきます(^^;))
だいたい、期限の直前になっても、ぜ〜んぜんプログラムが完成していなくて、というのが、一般的な光景です。そうするとどうなるか、と言うと、当然のことながら、プログラマは休日返上はおろか、寝ないで働いたりするわけです。でも、こう書くと、プログラマってまじめで勤勉な人間なんだな、と誤解する人もいるかも知れませんが、そんなことはありません。要するに、今までサボっていたツケを払っているだけなんですから。

私自身のことを言えば、あんまり徹夜をしたことはありません。今まで10数年働いてきて、せいぜい数10日くらいだと思います。ほら、私の場合、いつもきちんとスケジュールを立てて仕事しているから、期限の直前になって慌てることも無いし(嘘)、それに有能だから時間かけなくてもできちゃうし(大嘘)
私の場合、徹夜するとすれば、トラブルと言って、稼動を開始したシステムの不具合を調査・修復の作業のの方が多かったです。もともと、あんまりプログラムを作ったこと無いですし。そんなわけで、私が徹夜するときって、突発的なんですね。「今日は早く帰ろう」とか思っていると、××というシステムの動きがおかしいから調べて欲しい、とか言われて・・・・そのままずるずると朝まで(^^;)

人間には、体内時計というものがありますので、普段寝ている時間になると自然と眠くなるわけです。しかも、前の日の朝から20時間近くもの間プログラムのソースとにらめっこしていたりすると、当然疲れも溜まってきます。一番辛いのが明け方頃です。「徹夜」と言っても、だからこの時間帯は2〜3時間くらい仮眠を取ったりすることも多いですね。効率は全然上がりませんし、それどころか、余計なバグを入れてしまったりして、いいこと無いですから。
もちろん「仮眠」と言っても、仮眠室なるいいものがあることは希ですから、そこいら辺にゴロ寝することが多いです。私も、本当にいろんな所で「仮眠」したことがあります。自分の職場で椅子を並べて、とか、マシン室の床(ここは空調で寒かった)とか。
高層ビルの窓の枠(何と説明したらいいか・・・出窓のようになっている)に寝たときには、目を覚ましたら、顔が窓の方を向いて、空中から下界を見下ろすような感じになっていて、一瞬状況が把握できず(そんなところで寝ていたことを覚えていない)、「あわわわわ」と言ってしまったりしました。
あと、メーカーの工場で、うちが発注したシステムのテストをやっていたときには、とても終わりそうもないので夜遅くまでやっていたら、警備員に見つかって、追い出されそうになったのを、一見帰る振りして、隠れて建物の隅の方で仮眠したこともありました。だって、深夜に追い出されても、周りは山の中で、行くところも無いし・・・でも、工場の警備員って恐いです、おなじ仕事でも、オフィス街のビルの警備員とは人種がちがうのでは、とか思ってしまいました。「これでも、一応こっちは客なんだけどなぁ」まぁ、こんなこと言っても通じませんけど。
で、仮眠に一番いいのが応接セットのソファーです。あの3人掛けの長いやつ。でも、これは競争率が高くて(狙っている奴が沢山いる)確保するのが難しいです。で、禁じ手は役員室のソファーです(役員が出社する前に退散しなければいけない)が、これも何度かお世話になりました。一度、危ういところで秘書に起こされたことも(^^;)

しかし、体内時計は正直なもので、明け方の辛い数時間を過ぎて朝になると、不思議なことに眠気が無くなってくるんですね、寝てないはずなのに。そうすると、昼間は普段どおり仕事をこなすことができます。
じゃあ、これを永遠に続けていくことができるか、と言えば、当然それは無理ですよね。私も、2日連続が最長です。こんときは大変だった。月曜日から稼動開始するシステムがあったのですが、金曜日の朝に通常どおり出勤して、最後の動作確認をやっていたのですが、そこで重大な障害が発見されてしまいました。八方手を尽くして、原因を追いつめて行って、なんとか修復したのが日曜日の夜、やっとのことで月曜日のカットオーバーに間に合わせましたが、その間一睡もせず(;_;) ある役員が「これが月曜日動かなかったら、○億円の損害だ」とかギャーギャーわめくし、みんな「おとなしくしてろよ。お前がわめいたって原因が分かるわけじゃないんだから」と思いながら、やっていました。まぁ、その役員、そのあとみんなから無視されましたけどね、当然と言えば当然。

プログラマが徹夜をする原因は、当然プログラムが出来ていないことにあるわけですけど、だいたい、プログラムを作っているというよりは、プログラムのバグに悩まされている、という場合の方が多い(というか、ほとんどそう)ですね。
時刻も深夜になってきて、プログラマもバグが見つからなくてイライラしてきます。どう見ても自分のプログラムには間違いは無い(自分で作ったプログラムって、自分で見直しても間違いに気づかないものなんですね)、そうなると、他人を疑い出します。よほど小さいシステムでも無ければ、一人でプログラムを全部作ると言うことは希で、普通は、複数の人間で手分けして作るわけです。で、ある人が作ったプログラムは、他の人の作ったプログラムと協調して動いたりするわけです。
そうするとですね、イライラしている件のプログラマは、他人のプログラムを疑い出すわけですね。「自分のプログラムにはもう絶対にバグは無い。あいつのプログラムのあの辺がおかしい」とか言い出すわけです。そのうち、「このコンパイラにはバグがある」だの「OSの動きがおかしい」だの、挙げ句の果てに「私は、この機械で使われているCPUのバグを発見した、自分のプログラムがうまく動かないのはそのせいだ」だの(^^;)
私も、徹夜に付き合って、そういうプログラマの面倒を見ていたことも多々あるのですが、だいたいソースを眺めると、あーだこーだ言ったそいつのプログラムにバグがあることがほとんどですね。たとえばC言語で「このポインタ、初期化しないで参照しているけど、いいの?」とか「こういう使い方するなら、char は unsigned char にしなくちゃ。この環境では char は signed だから、これじゃうまく動かないよ」とか「この if (a = 0) って本当に正しいの? if (a == 0) じゃなくて」とか。要するに、しょーもないミスなんですが、徹夜でぼーっとしている頭には、そういうのが発見できなくなってしまっているんですね。

私はもうトシですので、徹夜は出来れば避けたいなぁ・・・なんて考えています。
若い頃はね、残業手当はいっぱい入るし、そんな忙しい時期にはお金使っている暇が無いから、お金が貯まる貯まる(^^) 世に言う「残業成金」というやつですね。

[前へ] [次へ]

[Home] [戻る]


mailto:lepton@amy.hi-ho.ne.jp