バブルの頃、僕はブラック会社で働いた(11)

初めから読む

一人で7人分の仕事をするの?

これでわかったことは、この仕事は富士通の通信システムで、1システムあたり数十億円もするそうだ。この開発はFCSが設計を担当していて、プログラミングからテストまでをM社に外注していた。M社はこれをO社に丸投げ。さらにO社がこの会社に丸投げと言う多重下請け構造だった。つまり、M社が元請けでO社が一次請け、この会社が二次請けということ。しかも、この案件が会社が受注した初めての受託業務なんだって。

会社に戻ってから、僕は嬉しくて一緒にFCSを訪問した社員の皆さんに声をかけた。

「一緒に仕事をするんですね。」

ところが、返ってきた返事は想定外だった。

「いや、俺たちはしないよ。だってCOBOLしかできないから。C言語わからないし。」

ええええ?やっぱり一人でするのーーー?!無理だよ!

この仕事は建前上、8人ですることになっているので、会社にいた社員を担当にでっちあげる作戦だったんだよ。僕はやっぱり7人分の仕事をしなきゃいけないんだ。信じられない。この仕掛けを僕が理解するにはまだ時間が必要だった。

DOSで開発するから

少しずつ仕事にも会社にも慣れた。初めて使ったSX/Gにもunixにも慣れてきた。オプションシートの使い方もわかってきた。だけど武本さんは相変わらずMS-DOS + Lattice-C で仕事をしていた。そんな僕でも理解できたことというか、仕事に対して一つの確信が芽生えてきた。もともとは僕もでプログラミングをしていたから、武本さんの開発環境のこともわかっている。

武本さんの作っているプログラムはSX/Gでは動かない。

武本さんは、自分が使ったことがないunixもオプションシートも覚えたくなかったんだ。だから僕に押し付けて自分は慣れた環境で仕事を進めたかったんだと思う。自分が担当するのは画面ではなくてデータ変換だけだから問題ないと武本さんは思ったんだ。僕がMS-DOSで開発したプログラムはSX/Gでは仕様通りに動作しないって指摘したので、武中さんと言い争いになった。

ビッグエンディアンとリトルエンディアン

難しい話じゃない。OSが違うのもあるけど、CPUが違うんだ。PC-9801シリーズはインテルの16bit 8086系だけどSX/GのCPUはモトローラの32bit 68020だ、ビット数だけでなくエンディアンも違う。インテルはリトルエンディアン、モトローラはビッグエンディアン。データ並び、つまりバイトオーダーが異なるんだ。

0x12345678はBig Endianではメモリ上に 12 34 56 78 と配置される。
Little Endianではメモリ上に 78 56 34 12 と配置される。

余談だけど、これ覚えにくいよね。そもそも語源がガリバー旅行記だから。

数値を卵の形と並べてみるとわかりやすいよね。実際にはバイトオーダーが 1→4がビッグエンディアン、4→1がリトルエンディアンだけどね。まあ同じだよね。ガリバー旅行記の小人の国で戦争の理由が「ゆで卵を剥くとき、大きいほう(big endian)からか小さいほう(little endian)からのどちらが正しいか。」というものだったことに由来してるんだって。

結局、それまで何か月か知らないけど、武中さんが作ったプログラムは無駄になった。社長はこうなった理由を武中さんに何度も聴いていた。叱られるのかな?と思って話を聴いていたら、社長は武中さんが誤った環境で仕事をして無駄になったのは、元請けの管理に問題があるからだとゴネてお金を取りたいようだった。プログラムを全部印刷させたりしていたから。

結局、どうなったのか、お金の話は僕にはわからなかった。ただ、この後から武中さんはしぶしぶSX/G-150で仕事をするようになった。

(10)← →(12)