平成初期のシステム開発現場:ホストより過酷な日々
近年、多くの若手エンジニアから「設計だけで実装経験がない」という声を耳にする。これは現代の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は英語に似た文法で大量のレコード処理を行える業務向け言語であり、「“MOVE”, “GOTO”, “PERFORM”だけ知っていればCOBOLはコーディングできる!」と豪語していた同僚がいたな…
修羅場の結末
大量のプログラムを作成して、なんとかリリースには間に合わせた。だが、窓口ではフリーズが頻発し、柱に隠れて受付の様子を見ていた私は、受付担当が鬼のような形相で開発部屋に電話をかけているのを見て、心の中でごめんなさい、とつぶやくのだった。
しかし、こんな現場でもなんとかバグをつぶして、1週間ほどで安定稼働させることができた。途中から私の契約が一次請けからメーカー直に切り替わったのだが、この案件を続けたくなかったので、切りのいいところで去った。理由は、私が若いという理由だけで、メーカーの支払い規定により、最大でも見積の半額しかもらえなかったからだ。しかしメーカーとの直契約は箔付けにはなるのと、安定稼働しないうちに現場を去るのは気分が悪いので、そこまではお付き合いした。今でこそ、同一労働同一賃金が叫ばれているが、当時はそんなことはなかった。
当時、私の時給は8,500円(1990年の為替レートで約73ドル)だった。一方で、2024年の現在では、同様の仕事の時給が約5,000円(33ドル)程度であることが一般的だ。なぜ30年以上の技術進歩とインフレーションを経ても賃金が下がっているのか?この賃金の劇的な差は、日本のIT業界の衰退を象徴している。特にアメリカのような市場では、経験豊富なエンジニアが1時間あたり200ドル以上を稼ぐことが可能だ。一方、日本では「失われた30年」と呼ばれるデフレの時代が賃金や経済活力を蝕み続けている。
先の炎上現場に私がいたのは、わずかひと月半。その間、櫛の歯が抜けるように開発スタッフの半数が辞めていった。体を壊した人も、心が病んだ人もいた。現場のビルがロックされる前に現場を後にして、タクシーから副都心線の工事現場の明かりを眺めながら、何とも言えぬ気持ちで帰宅の途に付いた日々が、今でも記憶に残っている。