15年前のプログラマ

はじめてのJava

15年前、私は異業種からプログラマに転職した。最初の会社は特定派遣専門の会社で、自社のオフィスに行ったのは面接の時だけであった。この時、同じ時期にもう一つの会社から内定をもらっていたのだが、そちらの業務内容はサポートセンターであった。サポートセンターの方が給料が良かったように思うが、今考えると、そちらに行かなくて本当に良かったと思う。

派遣先の会社は、SI2次請けで、最初の仕事はJavaAPIドキュメントの作成だった。研修なんてなかったので、標準APIのドキュメントを参考に、見よう見まねで作成していたのだが、本当に自分のような素人が作成していていいのだろうか、と思いながら作業していた。後にわかったことだが、そもそもAPIドキュメントなんて誰も信用しておらず、APIの本当の仕様を知りたければソースを読む、というのが実態であった。

一ヶ月ぐらい後で、Javaのプログラム作成を行うことになった。未経験であるがゆえに、当然わからないことだらけなので、他の人にいろいろ質問しにいくのだが、そこでわかったのは会社でJavaのプログラムを作った人が誰もおらず、皆C/C++プログラマである、ということであった。Javaがある程度使い物になったきて、これからはJavaだ、Write once,run anywhereだ!と叫ばれていた時代であった。今考えれば理解できるが、当時はじゃあなんでC/C++で作らないんだ?と思っていた。

周りにJavaを知っている人間がいなかったので、入門書を見ながらJavaを覚えていった。C/C++プログラマからも、再帰呼出しや自動変数とヒープ変数の違い、クラスとインスタンスについて教えて貰った。C/C++でどうやるか教えてもらって、それをJavaでどうやるかを考えるような進め方だったので、共用体とかマクロとか結構困った。後に、C/C++でもプログラムを書くようになるのだが、シンタックスシュガーが多いので、正直あまり好きではない。一人で作るのならいいのだけど、複数人で作るようなものだと、各個人でスタイルが異なるので、プログラムを読み通すのが大変だった。今時のプログラマなら、コーディング規約は?命名規約は?と思うかもしれないが、昔はそんなことはどうでも良かったのだ。

プロジェクト

働き始めて半年くらい過ぎた頃、とあるプロジェクトに参画することとなった。当時はわからなかったけど、それまでの半年は、要件定義やら基本設計を行っていた時期で、自分はプロトタイプ的なものを作っていたのだった。「プロトタイプ的なものを作っていた」というとかっこよく聞こえるかもしれないが、要は「JavaというのはC/C++に比べて誰でもできるものらしい」「じゃあ素人に覚えさせてどうなるか見てみよう」ということだったのだろうと思う。素人にやらせて、どうにもならなかったらどうするつもりだったのかと思うが、まぁなんとかするのだろう。

プロジェクトが始まった。私の担当工程は、詳細設計、コーディング、単体テスト結合テストであった。プロジェクトは炎上した。今考えると、うまく行かなかった原因は2つであったと思う。

1つは、独自のフレームワークの設計がまずかったことだ。そのフレームワークは、細かく部品化した業務ロジックをJavaで作成し、フローの設定をXMLで記述する、というものであったが、何か問題があったときに、Javaのコーディングがおかしいのか、XMLがおかしいのかすぐにはわからなかった。また、そのような作りである以上、オブジェクト指向ではなく手続的(今時の言葉で言えばトランザクションスクリプト)に徹するべきだが、実装の業務ロジッククラスを作るのに、やたらに複雑な継承ツリーを要求されるのもダメな点であった。今でも「独自のフレームワーク(いわゆるオレオレフレームワーク)」なんてダメだと思っている。ある程度実績のあるOSSフレームワーク上に、薄いラッパを噛まして使うか、そのまま使うのがいいだろう。あのフレーワーク設計者は今どうしているのだろう。

もう1つは、コーディング、単体テストの半分くらいを、中国のオフショアとしていたことだ。日本側は詳細設計書を作って中国に送り込み、上がってきたモジュールを結合テストで受け入れる、という流れだったのだが、ちゃんとしたモジュールを上げてもらうためには、コーディングと1:1になるような詳細設計書を作らなければならず、そんなもの作るくらいなら日本側でコーディングした方がマシだったのだ。オフショアが悪いとは思わないけど、やるなら上流側から依頼するか、本当に単純作業を依頼するか(エビデンススクリーンショットを取るとか)にするべきだと思う。今は、オフショアを使った開発からは離れてしまったけど、現在でもオフショアってコストメリットあるんですかね?

そんなわけで、終電より初電の時間の方が馴染みがある生活を続けているうちに、私は働きはじめて1年になった。なんやかんやがあって、私は派遣先の会社に転職することとなった。「なんやかんや」の部分をもう少し具体的に書くべきなのだろうけど、余り具体的に書くと特定されかねないのと、まぁ「なんやかんや」としか言いようがない事情があるため、このくらいしか書けない。まぁ、IT業界にいる人なら、わかってくれるんじゃないでしょうか?

特定派遣専門の会社って、業界の問題点であると各所で論じられているが、私にとっては、全くの未経験から業界への道を開いてくれた存在として、意味のないものではなかったと思う。ただ、そういった会社で働く場合でも、最長でも3年にしておいた方がよいだろう。後に、そういった会社で長くやっている人を何人かみてきたけど、正直なところ、一般的な社会人として生きていくのは無理だろうな、と思う人ばかりであった。この辺り、具体例は別の投稿で書いてみたいと思う。