自業自得デッドライン


 7月24日(月)。

 「・・・え?・・・何これ・・・?」

 なんじゃこのコード体系は?知らんぞ、こんなフィールド、それもプライマリーキーが新設されてるなんて。聞いたことないぞ。A4の紙切れ一枚を目前に顔面蒼白になるワタクシ。

 状況から説明しませう。

 とあるシステムのコーディング作業の為に、Oracleからデータ引っ張ってきてVisual Basicで表示する・・・という一言で終わると言ってしまえばそれまでのプログラムをぷちぷちと作っておりました。元のプログラムは既にあって、機能拡張を加えてバージョンアップさせる、というのが今回のオシゴトでございます。期限は2週間後。

 ちょっと本数は多めかな、でも技術的な点では既にサンプルプログラムとかの提供受けてるし、できないなんてことはないよな、そんな(言ってしまえばいい加減な)判断から、今までの進捗では「問題なしでーす。大丈夫でーす」とノーテンキに口走っておりました。

 それがこんなことになってしまうとは・・・。頭真っ白なままリーダーさんにご相談。あのぉ、マジっすかこの仕様変更?

「マジ。言わなかったっけ?」

 言ってないし聞いてない〜。どっちにしても知らないよこんなん〜。

「でも今回の開始時にはこうやるってほら、概要にも載せてるよ。ほら」

 これって、2週間前に回覧された資料ですよね・・・・・・ほんとだ〜。書いてある〜。がっくし。

 う〜〜〜〜〜。仕方ないからやりますけど。これ入ってくる時点で正直な話、2週間後にアップできる可能性、ゼロに近いです。無理です期日くれないと。

「うーんそうなの?とりあえずは今週一杯やってみて進捗状況報告してください。それ見て期限後ろに伸ばすなりヘルプ要員つけるなり、考えますよ。」

 うーいお願いします〜。ボー然としつつ自席に戻る私。

 この日から、怒濤のような過労の日々が始まるのでありました。

 7月25日(火)。

 ディスプレイを前にして、キーボードには指一本触れずに考え込む私。

 どうやってこの山場乗り切るか。考えてるのはこれ一本。

 今回の仕様変更によって、これまでは指一本触れる必要のなかったメインロジックも全部書き換えなきゃいけません。このメインロジック部分は他の人が作成したものだから、どれをどこまで修正するかを調べる必要があり、かつそれを実行しなきゃならない。その上、本来の予定であった私の作成部分も終わらせなきゃなりません。頭の中でタイムテーブルを作っては壊し壊しては作りを繰り返します。

 はっきりいってこんなもん、力技でやってもできっこない。つーかこれ力技でやるヤツはバカ。いかにしてラクするか、いかにして力抜くか・・・・・・・。

 ・・・・・・・・・・ぐぅ。

 寝るなっ。

 7月26日(水)。

 ぱこぱこぱこぱこ。ぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこぱこ、あーカット&ペーストってラク。

 じゃなくって。

 昨日寝ながら(だから寝るなよ>オレ)考えた作業工程はこう。まずは、今回の仕様変更は「なかったこと」として一度頭から忘れ、本来の作業であったDBアクセス部分の実コーディングを進める。それが完了した時点で、改めて今回の仕様変更部分修正に着手する、と。

 え、んじゃ結局力技だって?ノンノンノン、考えたよ、策は。結局DBアクセス部分に関しては、基本的にベタコーディングになってしまうんですよ。やってることも所詮は条件与えてぶん投げて結果ひっこぬく、の繰り返し。

 だったら。力技そのものを省略してしまおうと。INとOUTの項目指定したら、PL/SQL(今回これ使うんです)のソースとそれを呼び出すVB該当部分のソース一括吐き出しするPerlスクリプト作って。つまり上のぱこぱこ連打はソースを作るためのソースを全力で作ってる所だったのよ。

 つー訳で。・・・・行ってこいやぁ関数一括吐き出し作成!!

 7月27日(木)。

 ・・・・・・・とうまくいけばよかったんだけど、ねぇ。はぁぁ。

 いや、確かに関数カット&ペーストすること考えたらずっとラクよ。潜在バグ生み出すリスクも抑えられるし。でもさぁ、ちょくちょくとあるんだ、通常のロジックとは若干ながらにイレギュラーな動きする関数が。

 それに対応してたら、昨日も一昨日も帰るの10時だよ。あちゃー。

 どうも私ってどこかで詰めが甘いんだよなぁ。どっかでボロが出る。これで今まで散々泣いてるのに。また今回も繰り返して。あー自分のヘボさ加減にヘドが出る〜。

 ・・・・・・・やべ。そうこう言ってたら目眩が起こってきた。すんません、今日は早く帰って寝ます・・・・・・。

 7月28日(金)。

 今日も10時半まで居座って、なんとかDBアクセス部分のコーディングを終わらせる。結局Perlで書き切れなかった部分は改めて手で書いてエラー出しての書き直して、で終わらせました。

 げっそり。

 それにしても、こんなのただの八つ当たりに過ぎないかもしれないけど、PL/SQLってデバッグ環境弱すぎ。エラーメッセージと実際のコーディングミス内容が全然一致してないから、細かーいエラーとかになると結局目視でコーディングしなきゃいけない。これだけでトータル何時間損したことか。もちっとまともなもん出してくれ〜>Oracle。

 深夜過ぎにすき屋の牛丼かっ食らって、家に着いたら倒れるように寝込む。というか倒れた。

 7月30日(日)

 ・・・・・・あぁ、もう日曜日の夜か。

 結局土曜日は一日ベッドの上からはい上がることすらできませんでした。日曜日の昼間も使って寝倒して、やっと体力戻ってきたかな、という感じです。

 やっぱこうゆうのがある度に思うんですけど、つくづく私って長時間労働ができない体質ですね。ちょっと度が過ぎるだけでも、途端に体にガタがきちゃう。こうゆうのって努力とか気合とか、そんなレベルで解決できる代物じゃないんですよ。下戸がどんなに頑張っても飲めないのと一緒。

 そうゆう事を考えないから、今になっても過労死とかが後絶たないんだろうな。身をもって知るって感じですよ。

 さて・・・明日からまた戦場か。寝よ。

 7月31日(月)。

 っつー訳で。本来ならば今週一杯で終わらせる作業を先週で終えたぞ、と。本当だったら今週1週間有給もらって寝て過ごしたい所なんですけど。仕方ない、やってしまいませう。

 今回の肝になるのは間違いない、仕様変更箇所への修正作業。という訳で、本来ならば自分がいじるつもりのなかった(つーか見て見ぬ振りをしていた)メインを含めての構成を改めて眺めてみます。

 ・・・・・・勘弁してくれよこれ・・・・・・。

 なんだよぉ1関数1500行overってよ〜。グローバル変数も使いまくりだし、何よりも既にこれ、どっか1カ所代えたら全範囲に影響及びかねないじゃんか・・・・これに機能追加しなきゃいけないの・・・。

 月曜の昼間から泣きそうな顔してる私。つーか心の中では号泣。

作成者の名誉の為に書いておきますが、決して作りがこうなっちゃってるのは本人の「腕」によるものではないので念のため。詳しくはここでは書きませんが、こうなっちゃうんだろーなー、とソース全貌把握するにつれ同情してしまいました。よくもまぁ今まで動いてたもんだよすごいよ。

 これじゃあどこに修正入れるか確定させるだけで1ヶ月位かかってもおかしくないな。今週も夕飯は外かぁ。

 とほほほほ。

 8月1日(火)。

 月始め。派遣の身分のため、月始めには勤怠だの業務報告書だのといろいろと会社に提出しなければなりません(私は写経タイムと呼んでおります)。という訳で先月の残業時間とかを計算しておったのですが。

 ・・・・・え?あんだけ働いて、たったの40時間・・・・・?

 確かに7月の始めの方は(腰痛だったこともあるが)ほぼ毎日定時帰りでしたよ。でも、どう計算しても、私の先月の残業時間は40時間。

 マジ?あんだけ働いてたのに?

 よく笑いを取ろうと「先月残業150時間いっちゃったよ〜しんどかったねぇさすがに」とか言う人よくいますけど。で、こうゆう人は次の月も平気で150時間とか働いてるんですけど。

 何食べたらそんなに働けるんですか?どっからその体力は出てくるんですか?どうやって体力回復させてるんですか?

 世の中には不思議な事っていっぱいあるのね。大人の世界ってコワイです。

 そんな事を思いつつ本日も10時半。やべ。早くもちょっと目眩。

 8月2日(水)。

 進捗のためのミーティング。やっぱりどうやっても今週中になんかできっこない。でもかといってヘルプ要員もらったって教えてる時間が勿体ない、と素直に吐き散らし(?)、開発期間の1週間延長ゲットに成功。

 つーかあれだ。延長もらった期間全部使っても、それでもできるかどうか微妙ですわ。「土日返上」「お盆返上」といった単語が頭の中をよぎります。

 既に私の状態(主に健康)を把握してるためか、「ヤバかったら言ってね」「無理はしないでね」との御言葉を頂戴しました。大丈夫です。ダメだと思った時点でバッくれます。

 相変わらずソースの方は、おっかなびっくりと超ロングコードの解体&整形を続けています。つーか10行変えたら動かなくなる可能性を秘めたソースをいじるのは、研修医が初めてメスで人体切る気分に似てますね。どんなたとえだ。人体と違ってアンドゥができるのが唯一の救い。そうじゃねぇだろ。

 8月3日(木)。

 くたっ。今日も帰宅11時。そろそろ飽きてきたな遅い遅いと繰り返すのも。

 結局仕様変更の方は一度長文関数を切り分けた後にIN-OUTを改めて確定させてから、変更部分を作り直す、という方法を採りました。そりゃあそうだよな。検索キーが全部変わる訳ですから。実質的には新しくアプリ作るに等しい作業量。既に前バージョンの影形が残らないほどにコーディングスタイルが一変しています。これでちったぁ後の修正とかもラクになるだろ。

 それはそうと。本当だったら今にもベッドに倒れ込みたい所をガマンしてパソコンの電源をON。実はこの数日間、家のパソコンの電源が入らないという、今までを考えれば信じられないような生活ペースでした。頭クラクラになりながら目的のメールを送信。

 せっかくパソコンに座ったのだから、としばしWeb漁り。すると知り合いの掲示板にこんなメッセージが。

「4連泊に突入しました〜。風呂入りたいです〜(T_T)。」

 私には絶対に真似できぬ〜(T_T)。

 8月4日(金)。

 なんとか土日だけでも休みたい・・・・・もはや本能とも言うべき「逃げ根性」で仕事を進めます。結局一区切りつけたのは終電近くになってしまいました。

 まだできてないんだけどさぁ。今の体力ゲージで土日働くなんて無理ですすんませんごめんなさいかんべんしてください。誰に謝ってんだオレは。

 誰かに首根っこつかまれているような感覚を振り払いながら、無理矢理オフィスを後にします。

 8月5日(土)。

 一日寝倒す・・・・・・訳にもいかないんだ。夕方(夕方かよ)むくりとベッドから抜けだし、身支度整えお出かけ。

 今日はねぇ、数年ぶりにガッコの連れ連中と飲み会なんすよ。「ちょっと見ない間に太ったねぇ」「ほっとけ」「まだ結婚しないの?」「だからほっとけって」とお約束を組み込みつつひたすら雑談。

 最近仕事忙しいんだよぉ。毎日10時とか11時とかで。しんどいんだよぉとネタを振ってみると、「何を言っておるか」「オレなんか1時2時当たり前だぞ」「オレも」「甘いぞアンタは」と非難囂々の嵐。ここにもいやがったか、過労労働平気な輩。ストレートに聞いてみよう。何故にそこまでできる。

「うーん、いつの間にか」「慣れだよね」「うん、というか慣れちゃったね」「何も考えてないよね」そんなもんかい。

 まぁ実はこんなことどーでもよかったりする。残業して金稼ごうが、定時で帰って時間作ろうが、そんなこた本人が決めること。今はただ、会話の渦に巻き込まれてしまいませう。

 8月6日(日)。

 今後こそ一日寝倒す。

 うーん。体はラクになったのはいいけど。昨日と違って、どこか1日無駄にしたような気がする・・・・・・。

 まぁいいや、難しいこと考えたくない、寝よ・・・・・・。

 8月7日(月)。

 つー訳で頭ボーッとしたまま再び職場に。

 進む戻るを繰り返したままボケーッとキーボード叩いてたら、いつのまにか作業部分のコーディングが完了してしまいました。

 ・・・・・はっ。これが噂に聞くこびとさん?

 あまりのあっけなさに一抹の不安を感じつつ、久々に8時に帰宅、そのまま2週間振りにプールでじゃばじゃばと溺れる。

 このまま収束してくれればいいんだけどなぁ・・・・大丈夫かなぁ・・・・ぶくぶくぶく・・・・。

 8月8日(火)。

 あーんこびとさん〜。動いてくれないじゃないですかこれ〜って誰に文句言ってるのか>オレ。

 昨日無意識に出来てたコード部分は結局間違いだらけだったことが発覚し、一日かけて修正するハメに。うーん、まだまだこびとさん召還能力低いなぁ。こびとさん召還マスターともなれば、すべての作業をこびとさんに任せてしまって自分は寝てしまうという離れ技も可能という噂を聞いたが・・・ってそうじゃねーだろ。

 しかしまぁ、今回の作業って全体を通じて「はまらんでもええ穴に自分から勝手に突っ込んでる」感じだったなぁ。全体を見渡そう見渡そうと思ってたら前方1m前の落とし穴に気付かずにズボッ、ってな感じだったです。

 この辺が自分の性格でもあり、限界でもあり、なのかな。そもそも今回こうやって残業続きになってしまったこと自体、己の能力限界を掴めてなかったってことですしね。

 まぁ今後はイヤでもこうならんように対策と予防考えなきゃなぁ。1年中こんなんだったら、絶対体持ちませんわ。

 さて、と。今度こそコーディング完了・・・・・あとは明日。

 8月9日(水)。

 ・・・・・・やべ。もう午後9時だ。

 単体テスト本格的に開始してわずか10分でバグが発覚、デバッグに出戻りしたのですが。

 このバグの原因がまったくわかんねぇ。

 VB触ってる方は身に覚えのある方もいらっしゃるかもしれませんが、インタプリタで動かした時には何の問題もなく正常起動するのに、コンパイルしてEXE起動した瞬間に、クラッシュするんです。

 せっかくここまで来たのによぉ、またこれかよぉ。いい加減に勘弁してくだせぇよぇ神様〜。

 1行ごとにデバッグログ出力させて、よーやく「落ちる場所」は特定できたんですけど、「落ちる原因」がさっぱりわからない。

 なんで?メモリ潰した?それともPL/SQLとの絡み?

 作り直すには・・・・・この規模を作り直すなんてはっきり言って無理。このバグ潰さなきゃ先にも進めないし・・・・・。

 周りを頼るにも手がかりは得られず。モニタにらみつけること数時間。

「すいませーん、もう戸締まりするんでそろそろ・・・」

 あ、すいませんわざわざ。タイムリミットかぁ。明日、解決するのかなぁ・・・。ちっともわかんねぇ。仕方ない、帰ろう。

 気分最悪。

 8月10日(木)。

 ・・・・・・・・・・・・・・・・。

 ・・・・・・・・・・・・・・・ん?

 ・・・・・・・・・・・・・・・・。

 わかった〜〜〜〜〜〜〜〜〜!!!そうゆう事かい!!!

 職場で思わず絶叫。こっち振り返る皆さん。あ、いやいや、お騒がせしました。

 こんなことなんだろうなぁと予想はしていたけど、やっぱり単純なことでしたな。

 結局これが理由だったのよ。

 With CV_SetTime
  If .PointA = 0 then
    Exit Function
  End If
 End With

 とWithステートメント中で、対象Functionそのものを抜けたりすると、コンパイルオプションによってはEnd Withが成立せずに落ちてしまうんですよ。これ、インタプリタのエラーチェックでは出てきません。あくまで実行時じゃないと落ちないんですな(これ、記憶が確かならVB4の場合は実行時にもエラーにならず正常に処理してくれたはず)。

 これ見つけるまで5時間近くWeb漁り続けたよ(こんだけ時間かかったのは1ページの表示速度が亀のように遅いのが原因なんですけどね)。あーーーー、こんなもんのために1日以上潰したんかい!!胸くそ悪いーーーー。

 結局仰せの通りにWithを外し、リコンパイルしたら、何事も無かったかのように動き出してくれました。

 はー。やっとこさここまで来たー。精根尽き果てたよー。

 あー、なんか今回の一連を象徴するようなつまづきだなー。始めからわかってればなー。そもそもこんな苦労することなんか無かったんだよなー。リスクヘッジできてないよ。ダメだぁこんなんじゃ。

 もーヤです。つかれました。かえりますさよならーーー。

 8月11日(金)。

 結局、その後もバグとかは出たんですが、いずれもわかりやすいレベルのものだったので速攻で潰しました。スケジュールの問題もなんとかクリアし、次の段階に渡すことができそうです。

 よってなんとかお盆休み確定〜。よかったよ〜。

 しかしまぁ今回もものすごい様々な出来事が矢のように降り注いできた、という感じですか。こんだけ文章量重ねても、まだ半分も書ききれないな、というのが正直な所だったりしますし。

 確かに、こうゆう経験が更に人間を伸ばす、という考え方もできるのかもしれません。

 でもさ。やっぱ、最小限の力でやることやって、定時にはとっとと帰って惰眠する。これに勝るものはないな、と強く思った次第でございます。倒れちゃったら何にもならない訳ですしね。やっぱ苦労なんか売ってでもしたくないし。苦労したくないから様々な予防線を張る訳だし。オシゴトは潰すもんであって、潰されるもんじゃないですわーね。

 さてと。んじゃ今日はさっくり定時で帰りまーす。お盆は必死に寝倒しまーす。

 

 おつかれー。


新着別 分類別
Index