見出し画像

雑草エンジニア回想録➁スパゲティと退職

1997年4月、大学を中退してIT業界の社員10数名程度の零細企業に就職してから1年を経過していた。

1番最初の現場とエンドユーザー、取引先などの関係者は人間性が溢れる素晴らしい方々だった。それでも、先の見えない不安と頑張っても自分及び自社に繁栄がもたらされないイメージに2年目の契約依頼を辞退した。

それから、社長が見つけてきた現場は、大手SIer企業の医療系の案件だった。当時は、業界の評判というのは分からなかったのですが、ブラックで有名な企業だった。

SIerというのは、エンドユーザーのシステム開発において、高品質・高付加価値・高い保守性を提供した上で、社員や会社組織に関係するシステム開発における知識や経験そして新しい技術を学習していき、組織の総合的なスキルを向上させる必要がある。

只、そのSIerは利益ばかりを追及した上でプロパー社員を碌に教育せずに、低スキル・低い論理性で上流工程の要件定義や設計を行い、下流工程の開発などは2次受け企業や派遣されたエンジニアに丸投げする事が多かった。

そのため、多くのプロジェクトは火を噴く事が多く、プロジェクトの安定感が無く、SIerのプロパーやパートナーのエンジニアが肉体的・精神的に追い詰められる事が多かった。

そんなことなどを業界1年生の自分には理解できることなく、従事した。
そして、当時の開発環境は以下だった。

  • オープン系C/S

  • WindowsNT

  • Windows95

  • VC++

  • DB2

構成としては、前案件と似たような構成なのでシステム開発の全容は把握しやすかったのですが、VC++とDB2の癖が強かった。
C++は、C言語の拡張言語としておりオブジェクト指向のパラダイムをした言語だった。C++は、C言語を最低3年以上経験しているエンジニアは、理解のし易い言語だろうが、C言語の習熟もままならない者が触れるとかなりの高確率でコケるだろう。

2024年現在では、未経験者は人工知能分野やWeb分野で活動できるPythonから始めると良いだろう。もしくは、何れ無くなるだろうと10年以上前から言われても、大型案件が市場に出回っているJavaでも良いだろう。


着任早々、軽く説明を受けると新規発足プロジェクトではなく、既にリリースされているアプリケーションであり、利用しているエンドユーザーであるお医者さんの要望に応じて、機能改修や機能拡張をする要件だった。

そして、前任者が開発していたPCとデスクをそのまま渡された。そのため、インストールを伴う開発環境の構築などは一切要らずにそのまま開発資産と向き合う事となった。

明けた瞬間に直ぐに危機感を覚えた。

そこには、似たような機能、似たような画面構成なのに、コピペされた大量のコードが記載されていた。

所謂、スパゲティコードだ。

検索をして患者の基本情報を表示するために複数のリストを1つの画面に表示する機能だった。それに対して、画面の初期処理、コンポーネントのイベント、SQLの発行、DB接続、項目に関する内容と1ソースファイルに共通化も部品化も一切できていない巨大な1つのソースファイルが目の前に存在した。

プログラムというのは、同じロジックは2度定義しないが鉄則です。機能的に分割して、機能の役割に応じたクラスに分割した上で呼び出し方法と与えるパラメーターさえ知っていれば、中のソースコードの詳細を知らなくても1、2行の記述で機能を利用できるようにするのがとても大切です。

どう考えても、私の拙いプログラム経験でも拒絶反応が起きた。


更に、VC++でWindowsAPIをコールしていたり、中途半端にC言語の作法が混在している点も非常に私を悩ませた。

着任初日で、現場で起きているヤバさ加減を社長に報告した。
どう考えても、工数のアンマッチ、人材のアンマッチが起きている。
その上で、現在の自分の実力では立ち行かないので、御免なさいで引き上げるなどの対応を考えて欲しいと訴えた。

30年前でも今でもそうですが、案件のアンマッチはよくある事だ。

システムを管理しているSIerも人の出入りには慣れているものの、SIer側として一番厳しいのは中途半端に予算だけを食われて、成果が中途半端だと残る者が苦労する。

そのため、着任初日に現場の様子を理解した上で、御免なさいするのは悪い事でない。着任に必要な前工数である営業担当者による打合せ・見積・日程調整などの工数や新しい業者を探す工数は係ってしまうが。
それでも、予算だけ食って何も前進しないよりは遥かに良い。

私は、30年前も今でもこのアンマッチによる双方幸せになれない案件は大嫌いです。案件自体から負のオーラが漂っているし、携わる者全てを不幸にしてしまう。その上で、一番損をするのはシステムを利用するエンドユーザーにも迷惑をかける。


着任2日目、自分のこの案件に着任した理由が分かってしまった。

デスクについて、吐き気と目まいのする巨大なスパゲティを目の前に、戦意喪失しかかっている自分でも1つ1つ丁寧にやっていけば、このスパゲティの牙城を崩せるだろうと諦めずに作業した。

誰だよ、この糞ソースを初期構築した作者は? (怒!怒!)

ヘッダー部分の作者の名前には、見覚えのある名前が記述されていた。

絶句!!!!

その作者は、弊社の若手社員の名前が記載されていた。
高卒で社長が起業した時に初めて入社した3年目の若手社員だった。
年齢は、私より2歳下だが業界経験は3年目の気の良い青年だった。

この作者の名前を見た瞬間に全てを理解した。
そして、自然と目頭が熱くなりモニターも霞んで見えた。

VC++で保守性が良く共通化の計れるソースコードを生産できるには、センスの良い方で最低3年位の経験はいるだろう。IT業界に私のように夢をみて、零細企業に入社したものの碌な教育もされずに、現場で基礎を叩きこまれる上級者にも出会えずに、業界3年目にしてもコピペベースの大量のスパゲティを製造してしまう。

本人が好き好んでスパゲティを生産したいのでは無い。
知識も経験もない業界3年未満で出会った環境で、協力会社の若手エンジニアを育成又は、ソースコードのレビューさえされてこなかったのだ。
その上で、無理な要件と短い期間で成果ばかりを要求され、相談できる上級エンジニアもおらず、ストレスの日々の中、騙し騙し何となく動くアプリケーションを開発していたのだろう。

1~2歳下の気の良い青年のここ3年間の苦労を感じ取ると感情を抑えきれなかった。

そして、この案件に着任した原因となった1つは、私が2年目の契約を頂いているにも関わらずそれを辞退した事。そして2つ目の理由としては、自社の社員が精神的ストレスから数か月いた現場を辞退した事。

この2つの事象が重なり、SIerから先任者の代替要員として呼ばれたのだろう。良い理由としては、零細企業ながら全社員の中で一番技術に対して貪欲であり、技術をガンガン吸い上げる自分の将来性を期待されていたという事が感じ取れた。悪く言えば、その誰も寄り付きたくないブラック企業のブラック案件の人質となった。


貧乏サラリーマンの中、5千円程度するVC++やWindowsAPI、DB2などの書籍を自腹で購入した。この当時の収入における1万5千円前後の出費は鼻血が出る位痛かったが、その案件に抵抗するためには無抵抗でいるよりはいいだろう。

それでも、VC++という大きな山は、ピカピカの1年生で太刀打ちができる代物ではなかった。

毎週、大量のスパゲティと上級者のいない環境、VC++が想像以上に厄介な代物であることを報告し続けたが、全然状況は良くならなかった。

1年前に夢と希望に溢れて、会社に入社した事や1年目の現場の人達と作業した想い出が走馬灯のように蘇った。そして1997年7月初旬前に私は心がおれた。

自分が判断した事も影響したとはいえ、心身共に持たなかった。
そのため、現場を引き上げる調整ができなければ、退職する旨を報告した。

そして、社長も1年目で身勝手な判断をした社員が、その尻ぬぐいもできずに会社に利益も落とさずにいた青年に疲れたのだろう。自分の退社する決意が固く、現場に謝りを入れ私の退社が認められた。


私は、お金もないスキルもないまともな商流もない、無い無い尽くしの零細企業だったが最高に好きだった。そのような事は、創業年数が浅い零細企業にはつきものだ。

地方出身の気の良い仲間達は、最高の仲間だったし、一緒に歌舞伎町のボッタクリに会って怖い体験を経験した。共に飲み会で会社を大きくする夢を語り合った。本当に気さくでいい奴らばかりだった。

そして、社長も覇気がなく社員を肥えさせる気概も無い方だったが、私のような者とも話を直接聞いてくれたし、社員達全員と半年に1回直接飲みにいっていた。

会社の仲間達と社長の人間味は温かいと感じていた。

それでも、2回目の現場における自分の無力とIT業界におけるピンハネ構造や下請け構造、更に若手を鍛える環境の無さに辟易とした。

心にIT業界で成り上がる熱い炎は、気が付けば消化されており水浸しになっていた。

退職日前に現場にお礼と謝罪をし、退職日に社長と最期の挨拶をした。
そして、翌日に23歳の青年が浪人生以来の無職となった。


この記事が気に入ったらサポートをしてみませんか?