これはなに?
エンジニアとして働いてきた私がこれまでの経験をまとめたものです。これまで現職含めて3社経験しており、会社単位で記事にしようと思いました。まずは第一弾ということで、新卒入社したSES企業での内容です。
単純に読み物として楽しんでいただければと思いますが、もしIT業界目指している方がいれば少しは参考になるかも(?)
入社するまでの経緯
私は学生時代岡山県に住んでいました。高校ではパソコンを使った勉強がしたくて、情報科があるところを探して入学しました。高校では資格の取得機会が多くあり、それらの勉強をしつつ、中学の頃から取りたいと思っていた情報処理技術者試験の勉強も独自にしていました。学生らしくそれなりに遊んだりもしつつ無事資格も取り、遂に卒業になりました。
私の家はとっても貧乏だったので大学進学は諦めて高卒で就職することにしました。しかし岡山は田舎ですし、なぜか学校に来ている求人から就職しないとダメだったため、ITの開発ができる企業の選択肢が2社しかありませんでした。(今考えたら無茶苦茶なので無視して自分で探しても良かったかもなーと思いますが…。)とりあえず2社を比べて給与が若干マシだった方を選んで面接を受けました。ちなみにこの会社は社員10人ちょいのクッソ零細企業でした。
入社面接
書類は問題無かったので遂に面接になったのです が、会社のオフィスに行った時に最初の違和感がありました。岡山市の中心地にあったのですが、外から見て明らかにオフィスが小さい。こんなとこに少ないとはいえ社員が集まって開発しているのか?と思いました。この違和感の真実は後で明らかになります…。
実際にオフィスに入ると、社長のデスク、事務の人のデスク、応接用のソファー&テーブルぐらいしかありませんでした。応接用のソファーに誘導され、そこで簡単に志望理由やこれまで勉強してきた内容、アピールポイントなんかを質問されて無難に回答していました。ちなみに面接は社長とでした。あとは雑談的な感じで話してましたが、基本的に「めっちゃいい子来てくれたわー!」みたいな反応で嬉しかったです。帰る際に「改めて合否を連絡するけど、もう合格です」的なことを言われました。零細企業とはいえ自分が歓迎されるという体験はテンションが上がるものでした。
3ヶ月間のOJT
そんなこんなで無事入社になり、初めての出勤になりました。最初は会社のオフィス(というか事 務所)に向かい、そこで面倒を見てくれる営業部長のおじちゃんと先輩社員(30前半ぐらい?)に会いました。どうやら私は先輩社員が今参画している外部の会社の開発プロジェクトに加わって、外部の会社のオフィスに常駐しながら3ヶ月間はOJTという形で開発業務を教えてもらうとのことでした。「え、外部の会社に行くの?」とは思いましたが、自社のオフィスから常駐先のオフィスは歩いていける距離だったり、先輩社員もいるということで「まぁいいか、とりあえず頑張ろ」ぐらいの気持ちでした。
今にして振り返るとこれはSES(システムエンジニアリングサービス)という日本のIT業界におけるあるあるな業態ではあるのですが、社会に出たばかりの私は業界の事情なんてほとんど知らなかったので、自分がどういう状況なのかをあまり理解できていないのでした。
常駐先ははっきり言って平和で刺激のないぬる〜い環境でした。地元に長く存在する大手企業のシステム子会社のようで、グループ内や別の委託企業で使う生産管理システムなどの保守・運用、追加開発などをメインにしていました。私の携わった仕事は生産管理システムで新たに追加する画面の開発でした。とくに急いでいないようで期限も明確にはなく、先輩に指示を貰いながら実装してレビューしてもらうのを淡々とやっていました。
使っていた技術は、言語がC#とVB、フレームワークが.NET、バージョン管理がSVNといった具合でした。経験は1ミリも無かったですが、C#は高校で勉強していたJavaにかなり近く、VBも高校で勉強していたVBAと言語的には同じだったのでなんとなくは書けました。一番慣れなかったのはSQLでし た。というのも高校時代にはDBを使った開発なんて全くしていなかったからです。もちろんSQLは勉強していましたし、基本情報処理技術者試験でも問われるので基本は分かっていましたが、いざ実務のSQLクエリがアプリケーション内に組み込まれるという状況になると、「やっべー全然分からん」という状況でした。とりあえず雰囲気で書いて、先輩に「惜しいね…」というお世辞を貰いつつ修正しまくってた覚えがあります。
そこでの業務は要求量がとても少ないので、「自習しといて」という時間も結構ありました。自習と言われてもなに勉強したらいいかよく分からないので、なんとなく既存のコード眺めたり、ネットサーフィンしていました。たまに暇すぎて寝落ちして先輩に半ギレされたりもしつつ、気づいたら3ヶ月が終わっていました。
突然の東京へ単身赴任
3ヶ月が過ぎ、OJTも終わりました。終盤になると営業部長のおじちゃんが次の現場を頑張って探してくれていたようなのですが、いかんせん経験が無いので見つからなかったようです。会社に呼び出されて社長に会うと、「急ですまないけど、東京行ってくれない?」と言われました。どうやらITの仕事の大多数は東京に集中しているので、そっちなら仕事が色々あるとのことです。私はもともと東京出身で10年ほど住んでいたので、「まぁいいか」と承諾しました。(最終的に拒否権があったのかは知らないけど)
そこからはかなりドタバタで、「5日後に東京に引っ越すので荷物まとめてくれ」と言われて慌てて引っ越しの準備をしてました。お金が無さすぎたので出来るだけ荷物を捨てて、全て郵送で送りました。荷物は後から追いつくのでとりあえず最低限の手荷物で直接営業部長のおじさんと東京に向かい、東京で面倒を見てくれるというFさんと会いました。この人もおじさんでしたが、気さくでいい人でした。後で知るのですが、この人は自社の人ではなく、長年仲良くしている別会社の社長でした。
会社が契約してくれた大田区にあるレオパレスに住むことになり、家賃は半分負担となりました。ただこの物件は駅から徒歩1分という好条件で家具・家電付きだったせいか家賃が高く、9万円近くしました。この時の私の給与は額面17万円で手取りは14万円ぐらいだったので、正直半分でもそんなに安くは感じませんでした。お金が無かったので家具・家電付きなのは助かりましたが。
東京での仕事探し
東京についてからはFさんが営業として仕事を探してきてくれて、度々面接をしに行きました。「会社員なのになんで現場探すたびに面接させられるんだよ!」と思いつつ言われるがままやってました。ちなみにこの時は知りませんでしたが業務委託の契約に伴って個別の人を面接(面談)するのは違法らしいです。でもSESの世界では当たり前に行われていますね。ここら辺から業界の闇に気づき始めました。もっと言うと中間に挟まっている会社が履歴書の内容を勝手に盛ったりしてたので、ムカついて正直に「この内容記載間違っちゃてるみたいですーハハハ」と言ったりしてました。
東京に来たはいいものの、やはり経験が無さすぎてなかなか仕事は見つからず、1ヶ月ほど自宅待機で暇でした。勉強するにしても次の仕事でなんの技術使うのかも分からず、高校時代に作ってたゲームのリファクタリングとかしてました。本当は外に遊びに行きたかったですが、マジで金が無さすぎて遊ぶことも出来ませんでした。東京に来てしまったので一緒に遊ぶ友達自体いなかったのですが…。ただ、1ヶ月が経ちそうなあたりでやっと次の現場が決まりました。
東京の初現場
OJTを除くと初現場とも言える東京の初現場は、クレジットカード会社で提携会社向けに提供しているシステムの移行(リプレイス)でした。ここでの契約はかなり歪で、いわゆる多重請負構造でした。視覚化すると下記のような感じでした。
- 発注元
- 1次請負会社A
- 2次請負会社C
- 3次請負会社D
- 3次請負フリーランスα
- 2次請負会社C
- 1次請負会社B
- 2次請負会社E(契約的に挟まっているだけで現場にはいない)
- 3次請負会社F(契約的に挟まっているだけで現場にはいない)
- 4次請負会社G(私の会社)
- 4次請負フリーランスのSさん(私の教育やサポートもしてくれる予定。Fさんの知り合い)
- 3次請負会社F(契約的に挟まっているだけで現場にはいない)
- 2次請負会社E(契約的に挟まっているだけで現場にはいない)
- 1次請負会社A
上にも書かれているフリーランスのSさんとセットという形で参画する形になりました。この方は業界暦は15年ほどのベテランでした。ベテランと新人をセットで常駐させるのはあるあるみたいです。新人だけだと戦力にならないのでお客さんに受け入れてもらえないみたいですね。上記の1次請負会社ごとにチームを分けて体制を組むことになり、2チームで開発を進めることに なりました。
私は既存の画面の移行に向けた修正を行ったり、設計作業に参加したりしました。ちなみに初めての作業しかなくてマジで何も分かりませんでした。とはいえサポート役のSさんがいるので、質問したりサポートしてもらいながらなんとか雰囲気やってました。私はこの時まだ18歳なので、それが新鮮だったらしく常駐先の社員さんにはなぜか気に入られていました。
いきなり体験することになったデスマーチ
最初こそぼちぼち進んでいたプロジェクトですが、1ヶ月過ぎたあたりから怪しい雰囲気が漂い始めました。私のサポート役であったSさんが体調を崩して出勤頻度が少なくなっていたのです。実はこの人は我々のチームのメイン開発要員に位置付けられていました。この時のチーム内のメンバーは下記の通りです。
- プロジェクトマネージャー。開発は出来ないおじさん(1次請負会社)
- ポジションがよく分からない、業界暦は長い開発できないおじさん(1次請負会社)
- 設計・開発を行う3年目の若手(1次請負会社)
- ベテランの技術力を活かして核となる機能の設計・実装をバリバリ進める予定のSさん(4次請負フリーランス)
- 右も左も分からないけど若さによる根性と気合いで頑張る私(4次請負会社)
見ての通り開発できるメンバーは3名で、そのうち2名は経験が浅い(無い)状況でした。3年目の若手は私より経験あるようでしたが、バリバリ開発を推進できるスキルではありませんでした。どうやらこの人のサポートもSさんに期待していたようです。スケジュールは着実に遅延していってましたが、体調の回復を期待していたのか、私ともう一人の若手のカバーに期待していたのか、プロジェクトマネージャーによる迅速なリカバリーは行われませんでした。私はというと自分のタスクも分からないながら進めないといけないうえに、もともとSさんが持ってたタスクも進めることになり、泣きたい気持ちで毎日終電まで作業していました。
このときの私の状況としては、下記のような感じでした。
- 毎日終電帰り
- 途中駅までしか電車が無くて歩いて帰る日もたびたび
- 途中駅で降りたあと深夜にすき家で牛丼を食べることが唯一の癒やし
- 毎日寝不足すぎてコーヒーを飲みまくってたら自分がめっちゃコーヒー臭くなった
- ある日晩ごはんを食べながら寝てしまい、次の日遅刻した
- 高熱が出たけど気合で電車に乗るも、あまりにも無理すぎて途中駅のホームでぶっ倒れる
- もはやハイになって変な感覚になってた
はやくプロジェクトマネージャーになんとかして欲しいと ころですが、SESで開発できる人を入れようにも炎上案件に飛び込んでくれて予算内に収まってくれる都合のいい人が見つからないらしく、全然状況は改善しませんでした。そしてSさんはとうとう全く出勤しなくなりました。やっと人が見つかったと思ったら信じられないぐらい仕事が出来ない人が来てもはや伝説になるなど、笑うしかない状況になっていました。
ちなみに我々のチームではないもう一つのチームは順調に仕事をこなしていました。要因としては、もう一つのチームのプロジェクトマネージャーは開発経験が豊富で、自身が開発の先頭に立ってバリバリ指示を出せる人でした。また、メンバーも開発経験が十分ある社員やフリーランスエンジニアが多めに構成されていて、マネジメントも十分に行われていました。この優秀なプロジェクトマネージャーの方は契約的に全く関係のない私にApacheの設定ファイルの見方や設定方法を教えてくれたり、デバッグのやり方のアドバイスをしてくれたりと親切な方だったのでとても感謝しています。可哀想過ぎて同情されてたのかもしれませんw
夏から始まったプロジェクトでしたが、もはや収集がつかなくなったので、我々のチームは年末で一次請負の会社ごと契約を切られることになりました。結果的に5ヶ月間でした。噂によると一次請負の会社は今後発注元企業との取引NGになったとか…。私としては絶望のデスマーチから解放されたのでとっても嬉しかったです。そして、IT業界で生きていく難しさや、受託開発やSESの負の側面を強く感じました。
ちなみにSさんには個人的にお見舞いに行ったり、LINEで「大丈夫ですかー」と連絡していました。出勤出来ていないときもたまに実装の相談とかさせてもらっていたので、そこはとてもありがたかったです。
このとき求められていた技術要素に関しては、働いているときは正直よくわかっていなかったのですが、今振り返ってみると下記の様な感じでした。このときの私はLinuxも触ったこと無い、ミドルウェアの概念も主要なアプリケーションも知らない、設計とか初めてやった、サーバーの構築とか1ミリも知らない、といった状況でした。誰も教えてくれないので気合と根性で進めてましたが、ちゃんと理解するのはもう少し後のお話。
- 言語
- Perl
- Java
- Shell Script (Bash、Ksh)
- Windows Batch Script
- ミドルウェア
- Apache
- Tomcat
- DB2
- Oracle DB
- OS
- Windows(作業端末)
- Linux/RedHat(サーバー)
- スキル
- Linuxを用いてサーバーを構築、設定する
- 要件をもとにExcelで設計資料を作成、レビューする
- 設計資料をもとにプログラムをコーディングする
- コーディングされたプログラムを手動テストする(Excelにエビデンスぺたぺた)
東京の2番目の現場
炎上案件から抜けた私でしたが、Fさんが激務を心配したのか運用・保守がメインの現場を探してきていました。ここは正直平和でした。たまに遅くまで残業するときもありましたが、基本的には定時帰りだったので、比較的プライベートの時間は多かったです。ただし、運用・保守がメインの業務だったため、開発業務があまり経験出来なくて物足りなかったです。
この現場はリース業などを軸に多角化したグループ企業を束ねる国内大手の企業で、そのシステム子会社に常駐していました。業務としてはグループ企業が使う人事・経理のシステムを保守しており、電話やメールによる問い合わせ対応、システム化出来ていない部分の運用対応、システムの不具合を修正したり、改善課題に対応するための追加開発などを行っていました。
ここも契約が複雑で若干の闇を感じましたが、チームの雰囲気は比較的良好で働きやすかったです。一応今回の体制も下記の通り記載してみました。
- 発注元
- 1次請負会社A
- 2次請負会社B
- 3次請負会社F(契約的に挟まっているだけで現場にはいない)
- 4次請負会社G
- 4次請負会社H(私の会社)
- 3次請負会社F(契約的に挟まっているだけで現場にはいない)
- 2次請負会社C
- 2次請負会社D
- 2次請負会社E
- 2次請負会社B
- 1次請負会社A
そしてチームのメンバーは下記のとおりです。
- プロジェクトマネージャー(2次請負会社B)
- テックリード(1次請負会社A)