公開日:
更新日:
16 min read
技術文化史平成初期のシステム開発現場~消費される若手エンジニアたち~

近年、多くの若手エンジニアから「設計だけで実装経験がない」という声を耳にします。 これは現代のIT業界が抱える大きな課題の一つです。
実装は大事です。
日本では「コーダー」と「プログラマー」を同列に扱い、プログラマーを低く見る風潮が昔からありました。 単価が低いからプログラマーは経験2年まで、経験3年目からはSEで、なんて時代でした。 それはそれでおかしいのですが、私は幸いにも別の道を歩み、世界中の素晴らしいプログラマーと仕事をする機会を得ました。 真の天才とも会いました。
私の経験が、実装への道を模索する若いエンジニアの方々への一助となれば幸いです。
過酷な現場の思い出
私はコンサルティングから運用まで経験してきました。 今でいう、フルサイクルエンジニアでフルスタックエンジニアです。 DevOpsも経験しています。 ですが、もちろん最初はプログラミングです。
時代は昭和から平成に移る頃、「24時間戦えますか!?」なんてCMが堂々と流れている時代でしたから、数々の修羅場を経験することができました。
どれくらいの修羅場か?
一例を挙げます。これはバブルが弾けた頃の話です。 臨時の応援に呼ばれた大企業の常駐先で、一緒に作業していたスタッフとの衝撃的な会話を今でも覚えています。
「齋藤さん、僕、今日でこの仕事辞めるんですよ。お世話になりました」
「え、そうなんですか?」
「はい、体調が悪くて、検査したら内臓の数値が悪いから、仕事をすぐに辞めろと医者から警告されまして…」
彼は色白で背が高く、今でいう「イケメン」でした。確か北欧とのクォーターだったかと。彼は続けました。
「実は僕、この仕事をする前、ホストやってたんですよ」
「え、そうなの?」
「だけど、この仕事、ホストよりきついです…」
シャンパンを浴びるように飲んで体を張るホスト業よりも、きついシステム開発現場って、一体どんな状況なのか?
契約関係とシステム構成
契約の流れ
システム概要
貧弱な開発環境
この案件は開発環境が貧弱すぎて、開発業務が非常に非効率でした。 コンパイルできるPCが人数分ないために、古いPCで打ち込んだプログラムを開発用のノートPCにフロッピーでコピーして、 コンパイル~リンク(makeですね)していました。 当時は「ビルド」や「デプロイ」なんて言葉はありませんでした。いや、Turbo-CではBuildと言っていたかな…。 いずれにしろ、あまりにひどいので、私は買ったばかりのEPSONのPC-486(デスクトップ)とカラーモニタ(ブラウン管)を、会社から現場に持ち込んで作業しました。
不可解な開発環境
現場で最も理解に苦しんだのは、システムを設計しながらデバッグしていたことです。 当時はアジャイルという言葉すら存在しない時代。
エンジニアが雑な仕様書を作成し、それをプログラムしてすぐに結合テスト。 まあエラーの嵐です。レビューもくそもありません。そもそも誰が全体の仕様を把握しているのか?
「○○さんがね、ちょこちょこってデモ版を作成して、それを相手に見せたら、先方がこれでいいよ、こいつをちゃちゃっといじればすぐにリリースできるでしょう! とか言い出して、そのまま、なし崩し的に開発が始まって、人手が足らなくて私たちが投入されて、でもCとか書いたことないからわからなくて、 入門書を読みながらプログラムを書いてるけど、全然できなくて…」
なんじゃ、そりゃあ?
不可解なチーム構成と開発言語
このシステムはMS-DOS上でMS-Cを使って端末を開発していましたが、プログラマーのほとんどがCOBOLしか書けませんでした。 なぜこの開発陣でシステムが作られていたのか? その驚愕の理由は、一次請けの社長が「C言語もCOBOLも頭文字が同じだから似たようなものだろう」と言い放ち、 COBOLの若手プログラマーをこの案件に割り当てたためでした。
C言語とCOBOL
メモリを直接操作できるC言語と、ビジネスロジックに特化したCOBOLでは、その性質は大きく異なります。
C言語
メモリを直接操作できるポインタと構造体を使って効率的なプログラムが書ける低レベル言語。 昔から、ポインタが理解できなくて挫折する者が多数派であり、ポインタの壁を越えた猛者だけが駆使できるチートな言語。
// メモリ操作の例
int *ptr = malloc(sizeof(int));
*ptr = 42;
printf("Memory at %p contains %d\n", ptr, *ptr);
free(ptr);
COBOL
ビジネスデータ処理に特化し、英語に似た文法で大量のレコード処理を行える業務向け言語。 「“MOVE”, “GOTO”, “PERFORM”だけ知っていればCOBOLはコーディングできる!」と豪語していた同僚がいたな…
IDENTIFICATION DIVISION.
PROGRAM-ID. SALES-REPORT.
WORKING-STORAGE SECTION.
01 TOTAL-SALES PIC 9(8)V99.
PROCEDURE DIVISION.
PERFORM UNTIL END-OF-FILE
READ SALES-FILE
ADD SALE-AMOUNT TO TOTAL-SALES
END-PERFORM.
修羅場はどうなった?
大量のプログラムを作成して、なんとかリリースには間に合わせました。 ですが、窓口ではフリーズが頻発し、柱に隠れて受付の様子を見ていた私は、 受付担当が鬼のような形相で開発部屋に電話をかけているのを見て、心の中でごめんなさい、とつぶやくのでした。
しかし、こんな現場でもなんとかバグをつぶして、1週間ほどで安定稼働させることができました。 途中から私の契約が一次請けからメーカー直に切り替わったのですが、この案件を続けたくなかったので、 切りのいいところで去りました。 理由は、私が若いという理由だけで、メーカーの支払い規定により、最大でも見積の半額しかもらえなかったからです。 しかしメーカーとの直契約は箔付けにはなるのと、安定稼働しないうちに現場を去るのは気分が悪いので、そこまではお付き合いしました。 今でこそ、同一労働同一賃金が叫ばれていますが、当時はそんなことはありませんでした。
日本のIT業界の衰退を象徴する給与事情
当時、私の時給は8,500円(1990年の為替レートで約73ドル)でした。 一方で、2024年の現在では、同様の仕事の時給が約5,000円(33ドル)程度であることが一般的です。
なぜ30年以上の技術進歩とインフレーションを経ても賃金が下がっているのか? この賃金の劇的な差は、日本のIT業界の衰退を象徴しています。 特にアメリカのような市場では、経験豊富なエンジニアが1時間あたり200ドル以上を稼ぐことが可能です。 一方、日本では「失われた30年」と呼ばれるデフレの時代が賃金や経済活力を蝕み続けています。
第1次AIブームとProlog
ところで、Prologという言語をご存じでしょうか? 1980年代の最初のAIブームでもてはやされた言語です。 論理と推論のルールを定義することでプログラムを組み立てる宣言型言語です。 結論を導き出すAI的な処理が得意とされました。
% 家族関係を定義し、祖父母を導き出す
parent(john, mary).
parent(mary, bob).
grandparent(X, Z) :- parent(X, Y), parent(Y, Z).
% "john is bob's grandparent?" という質問に自動で答えられる
メダカマーク:-が特徴で、ルールをプログラムするのですが、 私ごときの「にわか」ではprologの実力を理解できず、 こんな言語がとても現実的だとは思えませんでした。 でも「ルールを記述する」という概念は、後々、仕事で役に立つのでした。
脳筋の経営陣
1988年の秋、某企業の新社屋お披露目会に連れていかれたときのことです。 どや顔で話す社長だか会長だかの挨拶もまた私には衝撃的でした。
「これからはPrologの時代です! Prologを使えばCOBOLの10分の1でプログラムが書けます! うちはシステム開発をすべてPrologで行います!」
COBOLの10分の1でコーディングできるからって、全社Prologにする…はあ???
エンジニアを消費して肥大したベンダー会社
- COBOLの10倍生産性がいいから、すべてPrologで開発する
- COBOLもCも頭文字が同じだから似たようなものだ
このような単純思考があまりにも脳筋というか、短絡的というか、人権無視というか… プログラマーやSEは人間であって、商品や使い捨ての道具ではありません。
当時、いや、今でもそうですが、ソフトウェアベンダーの経営陣は営業上がりが大勢であり、 ベンダーという名の派遣業というか、人身売買会社であり、売上のためなら何でもします。 それが営業の神髄ですが、そのツケは確実に開発陣に回り、めぐりめぐって今の日本に返ってきているように思います。
先の話した炎上現場に私がいたのは、わずかひと月半。 その間、櫛の歯が抜けるように開発スタッフの半数が辞めていきました。 体を壊した人も、心が病んだ人もいました。 現場のビルがロックされる前に現場を後にして、タクシーから副都心線の工事現場の明かりを眺めながら、 何とも言えぬ気持ちで帰宅の途に付いた日々が、今でも記憶に残っています。 こうして大勢の若者を心身を踏みつぶし、消費して、大きく育った会社がどれほどあることか。
今なら「社畜」と呼ばれる人材を、当時は「企業戦士」と呼んでいました。 ブラックが当たり前だったから、ブラック企業なんて呼び名はありませんでした。 そこで生き抜いた人材こそが優秀な人財なのです。 そういう認識を持った人たちが、今の50代以上です。 かつての私も、その一人でした。
BIGモーターに代表されるように、平成の成功体験が染みついた人たちは、 令和の今でも変わらず昭和のやり方を続けてきたと言えないでしょうか?
これが実質的な労働生産人口を減少させ、今の日本を作ってしまった一因だとは言えないでしょうか?
某企業の社長だか会長がステージで得意げに言いました。
「わが社は毎年400人を採用しています!」
でも、この会社は社員数が10年間変わらないんだよな。 先輩がボソッとつぶやいていました。