見出し画像

Web系エンジニアって生涯食べていけるの?どんな仕事?

【2024年5月追記】
本記事は2020年に執筆した古い記事です。コロナ流行に伴うリモートワークの普及、残業時間の抑制推進やSNS発達によるブラック企業の淘汰、新技術の登場や技術の移り変わり、ソースコードを生成するAIの誕生など様々な要因から、本記事の内容は形骸化されつつありますので、あくまでも古い読み物としてご認識ください。

2024年時点では、市場価値のあるITエンジニアは「エンジニア実務経験5年以上」となります。昔は2,3年もやればフリーランスで食べていけましたが、今は厳しいです。この理由を個人的に感じる点としていくつかあげます。

  • ブラック企業淘汰により離職率が低下し、経験年数5年以上のエンジニアが市場に増えた

  • 企業目線でいうと、リモートワークが一般的になったことにより、地方在住の高スキルエンジニアを低単価で雇う方がコスパが良くなった(=首都圏近郊に住むエンジニアの競合優位性がフル出勤できることくらいしかない)

  • ワークライフバランスの考え方や男性の育休参加推進等の情勢から、IT業界も待遇が改善した事により離職率が低下し、エンジニアがあふれてきた

  • YouTuberが増えたり昔よりも無料でエンジニアの勉強ができる教材がネットにあふれた事により、初心者の参入障壁が低くなった

  • ITスクール量産から未経験スタートしたエンジニア達が一定レベルのスキルを得た

  • 新技術の登場や技術の移り変わりが早いため、業界経験の長いものを外部調達することで、地力が高いがゆえの問題解決力を期待している

このあたりが要因としてあるのかなと個人的には考えております。Web系エンジニアとして生涯食べていけるのかという観点でいうと、できると思います。ですが、AIがソースコードを生み出しているので、より勉強しなければならなくなったとか、より高いコミュニケーション能力や非認知能力が求められるとか、他のエンジニアと比較して自分が優れている(=競合優位性がある)状況をつくらないと生き残れない可能性が高くなってきたなと感じます。

以上、追記でした。



株式会社ファンチップのWeb系エンジニアnshiraです。noteでWeb系エンジニアである自分の思考のアウトプットをすることで、より多くの人と価値観を共有・情報交換していければと思ってはじめてみました。あわよくば、一緒に働くWeb系エンジニア・デザイナー・グラフィッカーが見つかると嬉しいです。



本稿の概要

本稿では、主に「Web系エンジニアに興味はあるけど具体的にどんな事してるの?」「Web系エンジニアって食べていけるの?」といった層を対象に、Web系エンジニアである僕が知っていること・感じていることなどを共有します。専門用語が多いかもしれませんが、わからないワードがあればググってみてください。Web系エンジニア業界や界隈のことを知識として少しでも知って貰えれば良いな、といった感じで書いています。また、新型コロナでリモートワークが注目されていて、Web系エンジニアはホットな職業なので、興味を持った人がいたらぜひWeb系エンジニアになることをおすすめします。

少しでもいいなと思ったら、スキ♡ボタンをお願いします!加筆や記事投稿のモチベーションアップに繋がります。


【求人情報】
PHPエンジニア・Webデザイナー・フロントエンドエンジニアを募集中です。一緒に自社サービスを開発しませんか?

Web系エンジニアとは?

そもそも「Web系エンジニア」って何?という話ですが、これは定義が曖昧ですが、Webシステムを開発する技術者を指すと思っています。Webデザイナーはまた別ジャンルだと思っていて、この辺を含む場合には「Web系クリエイター」とか言ったりするのかなと思っています。

Web系エンジニアの職業や肩書としては「プログラマー」「システムエンジニア」「フロントエンドエンジニア」「フルスタックエンジニア」などがWeb系エンジニアの親カテゴリになるのかなと思います。

Web系エンジニアの僕の場合は、PHPを用いてWebシステム開発をしていて、HTML・CSSなどフロントエンド開発も行う事ができ、Webシステムを公開するためのサーバー構築やネットワーク構築なども行う事ができるため、フルスタックエンジニアになるのかなと思います。

ただ、このフルスタックエンジニアの定義もかなり曖昧だと思います。サーバーエンジニアやネットワークエンジニアなどそれに特化したものもあり、どの程度のスキルレベルに達したらフルスタックエンジニアと言って良いのかなども未定義だと思われますので、そのへんは雰囲気で使っているのが現状だと思います。個人的な感覚だと、「ゼロからWebシステムの開発できて、公開・運用まで行う実務経験が2年以上」くらいでフルスタックエンジニアと言っても良いかなと思っています。

ここからは、10年以上IT業界にいるWeb系エンジニアの僕の経験を主にお話させて頂きます。ほぼ主観なので誤った事もあるかもしれませんがご容赦ください。

なぜやるのか?

なぜWeb系エンジニアをやるのか。それは、「楽しいから」です。プログラマーになるためには、いろんなプログラミング言語があります。私もC言語、C++、VisualBasic、C#、Perl、PHPなど様々なプログラミング言語を使った事があります。その中でも、「PHPを使ったWebシステム開発」が一番おもしろいです。

理由は、Web系エンジニアはアウトプットがすぐにできて目に見えるからです。C言語やJavaなど、主に業務系で使われるプログラミング言語は、ほとんどが大人数で大規模なシステムを作っています。何十人と関わる人がいて、数年間の開発期間があったりして、その中で自分が作るのはごく一部であることが多く、歯車感が強いです。更には、スマホの電波の基地局に入っているシステムなどの業務系開発に当たると、完成したものが目に見えにくいもので達成感が少ないです。

それに比べてWeb系エンジニアが作るWebサービスは、小さい規模から可能です。簡単なものだと、一人で1週間で作ったりするものから、大きいもので4人体制で1年くらいの幅です。しかも、自分で作ったものに触れます。エンドユーザー(利用者)の反応も見れます。

更にはPHPであればWeb系エンジニアになるための学習コストが低いです。1〜3ヶ月独学するだけで就業することが可能です。しかも、PHPでできたシステムはWebサービスの中で一番多く、ネットでの情報も多いのもWeb系エンジニアをおすすめする理由です。Web系開発言語には他にもRuby
、Python、Javaなどがありますが、個人的にはPHPをおすすめします。

ただし、Web系エンジニアとして一人前(フリーランスとして活躍できる)レベルになるには2,3年はかかると考えてください。「3ヶ月であなたもフリーランスとしてリモートワーク♪」みたいな謳い文句がありますが、不可能ではありませんが、質が低くて客からクレームが来る可能性が高いです。せいぜい、クラウドワークスで1ヶ月で10〜20万円の案件を受注してワープアするのが関の山です。Web系エンジニアとして早く成長するためには、技術力がある人と共に働くのが一番の近道です。

どこでどんなことをするの?

Web系エンジニアには、主に下記のような就業スタイルがあります。

(A)システム開発会社の会社員として、会社内で仕事をする
 (A-1)所属会社のオリジナルのサービスを開発する
 (A-2)所属会社が顧客から受注したサービスを開発する

(B)システム開発会社の会社員として、顧客の会社に常駐して仕事をする
 (B-1)顧客の会社のオリジナルのサービスを開発する
 (B-2)顧客の会社の顧客のサービスを開発する

(C)フリーランスとして、家で仕事をする
 (C-1)自分で営業して獲得した顧客のサービスを開発する(クラウドワークス、ランサーズなどを含む)
 (C-2)営業会社と提携して顧客を見つけて貰い、顧客の会社に常駐して開発する

ここでは詳細は語りませんが、おすすめは「(A-1)所属会社のオリジナルのサービスを開発する」です。

どんな仕事なの?

Web系エンジニアとは、Webシステムを開発する人です。Webシステムとは、インターネットを通してアクセスできるサービスのことで、この「note」もWeb系エンジニアが作ったWebサービスになります。

Web系エンジニアによる開発は、自分が新規でゼロから開発する場合と、顧客の要望をゼロから実現する場合で必要な工程が異なります。ここでは、ITに詳しくない顧客からWebサービス開発を依頼されたときに、Web系エンジニアがどんな仕事をするのかを紹介します。言われた事をただやるだけの仕事ではなく、顧客の要望を実現するシステムエンジニアとしての立ち回りの話です。


わかりやすいように、もしゼロから「note(のようなもの)」を作る場合、どんな仕事をする必要があるのかを考えてみます。

・ヒアリング
顧客は何かしらの問題を抱えていて、それを「Webシステム」で解決したいと考えています。顧客は、人が持つ知識を幅広く共有するためには書籍を発行するという高いハードルのものがメインであると気付きました。そこで、「みんなが持っている知識を、簡単に安価で販売できるWebサービスを作りたい」と思ったようです。

・要件定義
Web系エンジニアは、この要望を実現するために何が必要なのかを考えます。Webサービスを作るためには、「何のプログラミング言語を使うのか」「データベースは何を使うのか」「テストはどうするのか」「チーム体制はどうするのか」「開発手法はどうするのか」「サーバーはどうするのか」「運用はどうするのか」「どういう仕様にするのか」など様々なことを決める必要があります。
ここでは、下記のように決めることにします。

プログラミング言語:PHP
データベース:Aurora(Amazon RDS)※≒MySQL
テスト:テスト項目をExcelで箇条書きして手動でブラウザテスト
チーム:Web系エンジニア1名、Webデザイナー1名
開発手法:アジャイル開発(簡潔に言うと、仕様を最初に全て決めずに、都度話し合って良い感じにしていこうという方法論)
サーバー:AWS(Amazon Web Service)のEC2を2台、ALB1台、RDS2台、ElastiCache1台。Webサーバーはnginxを使用。
運用:AWSのCloudWatchでステータスチェックして保守。運用費用として月額100万円を貰うこととし、バグ修正や機能追加等はその金額で行う。

仕様:会員登録機能が有り、マイページで自己紹介を設定でき、ノートを書くときに自動で下書きが保存され、ノートの無料・有料での公開が可能。

・顧客との認識合わせ
ヒアリングと要件定義は、顧客と開発会社の認識が一致するまで何度も行います。必要に応じて、モックと言われる実際に触れるテスト版のWebページ(HTMLのみで作ったりする)を用意して顧客に紹介して、実際に触ってもらいます。

・開発環境のサーバーを用意する
このあたりで開発環境のサーバーを用意します。多くの流れは、Web系エンジニアが自分のPCで開発・動作チェックを行い、問題が無かったものをGitにコミットし、開発サーバーでGitのソースをアップデートするという流れで開発しています。自分ひとりで開発していたらローカル環境だけでも構いませんが、仕事では大抵誰かとやったり顧客に見せたりすることになるのでサーバーが必要になります。

サーバーには各種ミドルウェアのインストールが必要です。PHP、MySQL、composer、nginxあたりを入れる事になるでしょう。そして、サービスのドメインも取得する必要が出てきます。取得したドメインに紐づく設定をnginxにしていきます。また、nginxには様々なセキュリティ設定があるので設定していきます。

・データベース設計
仕様が固まったら、データベース設計を行います。必要に応じてテーブル定義書を作成します。しかし、実装していたら「あっ、あれも必要だ」ということもよくあるので、アジャイル開発の場合、この段階で完璧なものを作る必要はありません。
「会員情報を保存するテーブル」「ノートの情報を保存するテーブル」「ノートの下書きを保存するテーブル」などがデータベースに必要になります。これらの詳細な定義や、インデックスなどパフォーマンスチューニングとか諸々必要なものはありますが、ここでは割愛します。

・実装
実際にWebシステムを作って行きます。PHPの多くの場合にはフレームワークと呼ばれるものをベースに作ります。有名なものは「Laravel」「CakePHP」「Symfony」「Codeigniter」などがあります。これらを使うと、データベースとの接続やデータ取得・更新・削除処理を簡単に実装できたり、脆弱性が少ないシステムを簡単に作れたりといった利点があります。

・顧客との認識合わせ
ある程度、サービスが動くようになったら定期的に顧客に触って貰います。使用感や方向性のズレが無いかを確認します。また、デザイナーの方は、UI/UXが適切かをチェックします。案外、初めて触ってみると操作がわからないというケースがあったりします。

・テスト
いよいよ開発が一旦完了しました。そこで、テストを実施します。テスト仕様書などは作らないケースもありますが、個人的には簡単なものでも作ることをおすすめします。できれば、顧客にもテストをしてもらってOKを貰います。万が一バグがあったときにも、顧客と共にテストして確認したことが後ほど生きる事もあるからです。

・脆弱性試験
開発したWebサービスに脆弱性が無いか試験を実施します。社外のツールを使う事もありますが、たいていは自力でチェックする事になると思います。XSSやCSRFでググってテストしていく事になります。また、有識者にソースコードレビューをしてもらい、リスクとなり得る箇所が無いかも確認します。

・負荷試験
Webサービスがどれくらいの負荷に耐えられるのかテストします。これはJmeterなどのツールを使う事が多いかと思います。会員登録→ノート作成→公開などの一連の処理をシナリオとして登録して、秒間○回実行する、などの負荷試験を実施します。だいたい、どこかしらにボトルネックがあって遅かったりします。この辺で時間がかかるかどうかは、完全に実装者の経験に依存してきます。

・パフォーマンスチューニング
テストや負荷試験で見つかった、処理が遅い箇所をチューニングしていきます。処理ロジックが遅いケースもありますが、データベース関連のボトルネックが多いです。データベースに適切にインデックスを貼ったり、不要なJOINを無くしたり、不要なDBコネクションをしないようにしたりします。必要に応じて、フレームワークレベルの改修を行います。

・本番環境のサーバーを用意する
サービスを公開するための本番環境用のサーバーを用意します。途中で作っても要件が変わったりお金の無駄だったりするので、リリース直前で用意することが多い印象です。

・サービスリリース
おめでとうございます。いよいよ、サービスリリースです。しかし、ここからが本当の地獄かもしれません。なぜなら、絶対にバグがあるからです。

なぜなら、絶対にバグがあるからです。

バグというものは、あるんですよ。だって、人間だもの。テスト駆動開発とか、エンジニアの経験年数とか、クロスチェック・トリプルチェックとかもバグを少なくするための方法論であって、ゼロにすることはほぼ不可能です。もしバグが出ていないなら、まだバグが見つかっていないだけです。

バグが出たら、速やかに報告・連絡・相談しましょう。そして、すぐに直しましょう。失敗を怒られることはほとんどありません。怒られるときは、隠し事をしたときか、不誠実や不義理な行動をしたときです。意外にも、誠実に謝る能力、というのは難しかったりします。

・保守、運用
Webサービスは、サービスリリースがスタートです。ここからは、Webサービスを停止させないで稼働させ続ける「保守」が必要になります。また、バグが発生したら速やかに修正し、機能を改善する「運用」も必要になります。

保守は、AWSを使っているのであればかなり楽だと思います。基本的には、CloudWatchで死活監視を行い、負荷が高くなったり停止したらアラートメールを出す感じになります。

運用においては、顧客との話し合いを継続的に行い、必要な機能追加を行っていきます。また、エンドユーザーからの要望により機能の修正や追加を行う事もあります。

エンドユーザーの利用動向をログなどから把握し、必要に応じて顧客に改善案を提案することも重要です。こうした動きができるかどうかで、ただのエンジニアなのか、優秀なビジネスパーソンなのかが分かれてきます。

Web系エンジニアのキャリアパスはどうなってるの?

はい、とても重要なところです。実は、Web系エンジニアは比較的短命です。なぜなら、40歳以降はWeb系エンジニアとして客先で仕事をすることが難しくなるからです。

Web業界は20,30代が中心です。プロデューサーが20代などしょっちゅうです。一緒に働くプロデューサー、プランナー、デザイナー、ディレクター、セールスの人たちの中に40歳オーバーのおじさんが入ったらどうなりますか?周りの若い子は遠慮してしまいますし、感性も違います。いくら若作りしていても、顧客の人たちが気を使ってしまうんです。

というか、そもそも客先常駐の場合には、案件情報のレベルで年齢制限がかかっている事が多いです。技術力や人間力以前に、年齢だけでNGなんです。これが一般の採用なら年齢で弾くのはNGなのですが、客先常駐のパートナー社員という形だとそういうのも平気でできてしまうのです。これは悲しい現実であり、30代なかばになる僕にとっても他人事ではありません。

なので、40歳以降になると上述の「どこでどんなことをするの?」で書いている客先常駐の選択肢が難しくなってしまいます。ある程度の規模でプロジェクトリーダーを任されるような案件であれば40歳以降もありますが、やはり数は少ないしタイミングが合わないと出てきません。客先常駐がメインの会社だと、仕事が決まっていない間は社内で待機となり、その間は「売上ゼロで給料だけ出ている」状態となります。

もともとプログラマーは「45歳定年説」とか「50歳定年説」とか色々言われていました。これは、技術進化が早くて常に新しい技術を習得しなければならない業界なので、歳を取るとその流れについていけない、というのもあります。これはある程度当てはまると思いますが、個人的には45歳以降もWeb系エンジニアとして活躍できると思います。プログラミングのスペシャリストとして熟練すれば、65歳まで戦えると思いますし、58歳くらいなら実際に見たこともあります。ただ、本当に少ないです。

・40歳以降も生き残るためにはどうすればいいのか
では、Web系エンジニアが40歳以降も生き残るためにはどうすれば良いのか。大筋としては、設計方面に重きをおいて業務に携わることです。顧客からの「ヒアリング」「要件定義」の部分を重点的に携わっていき、実装の部分は他の人に任せます。このパターンのキャリアパスを設けている会社がほとんどではないでしょうか?いわゆる、プロジェクトマネージャー・プロジェクトリーダーのポジションです。コミュニケーション能力必須です。

ですが、当然、狭き門です。なぜなら、下に何人かいてのリーダーだからです。全員がリーダーにはなれないのです。
Web系エンジニアのその他のキャリアパスとしては、以下のようなものがあります。

・教育者になる
会社に入ってくるエンジニアの教育を担当する仕事です。こちらもリーダーと同じく、狭き門です。コミュニケーション能力必須です。

・ITコンサルタントになる
システムエンジニアとしてのヒアリング・要件定義の能力を活かし、顧客の課題を解決するITコンサルタントとなる道もあります。提案ベースでの動きで、高いコミュニケーション能力と課題解決能力が必須です。

・圧倒的な技術力を持つ真のプロフェッショナルエンジニアとなる
もう誰も寄せ付けない。技術力なら誰にも負けない。どんな問題でも解決する。プロフェッショナルオブプロフェッショナルWeb系エンジニア。この人がいれば、どんなシステムも作れる頼れる存在です。コミュニケーション能力は無くても問題ありません。
しかし、技術力とビジネス力(お金を生み出す能力)の成長は比例しないため、その点は注意が必要です。

おすすめのWeb系エンジニアのキャリアパス(65歳対応版)

僕が考えた最強のWeb系エンジニアのキャリアパスです。とてもシンプルです。

22歳〜30歳:エンジニアになる
30歳〜35歳:フルスタックエンジニアになる
35歳〜45歳:ビジネス力(サービスの収益化)、マネジメント力を伸ばす
45歳〜65歳:マネジメント、技術研究、サービスプロトタイプ量産、経営者

こんなイメージです。
シンプルに、自分の給料以上を生み出す人は生き続ける、ということです。

マネジメント方面で生き残れる資質がある人はそちらへ。教育方面の人はそちらへ。コミュニケーションモンスターは顧客との対応へ。技術が好きな人・経営したい人はビジネスの創出者、サービスプロトタイプ量産へ。

45歳から今までの経験をフル導入してサービスを量産します。ある程度伸びると思ったものは、積極的にメンバーをアサインして注力します。伸びてきたら、他の会社との資本提携を見据えます。他の会社と合弁会社を作り、経営者として参画して貰います。そういう、キャリアパスを取れるようにするのです。

ことの始まりは、Webサービスのプロトタイプです。ビジネスモデルが重要です。また、それに対する熱意が重要です。これを実現できるエンジニアへの育成に力を入れることが、会社経営におけるエンジニア65歳定年の実現への道だと考えています。

僕が上述でおすすめした「所属会社のオリジナルのサービスを開発する」理由はこれです。

『新規自社サービス開発に携わり、収益化する』

45歳までにこの経験をどれだけ積めるかが、Web系エンジニアとして生涯活躍するために最重要であると、僕は考えています。
そして、その実現方法は、ベンチャー企業に入社するか起業をおすすめします。

会社員としてお金を貰いながら技術力を蓄え、経験を蓄えます。ある程度の経験を積んだら、一人でWebサービスが作れるようになっているはずです。そしたら自分で作って収益化にチャレンジしてみてください。頭を動かして、知恵を働かせて、考え続けてください。そうすることで、ただのエンジニアから、ビジネスパーソンへの道が拓けると確信しています。

また、全員を救うことは難しいです。コミュニケーション能力が低い人もいます。でも、そうした人たちにも「社内投資」という概念を導入することで救えると考えています。自分に能力が無いと思っていても、能力がある人に投資をすればそれは問題ではないのです。

簡潔に言うと、自分の利益を社内に貯蓄できて、その金額を社内の他の人やプロジェクトに投資することができるようにします。投資先が利益を生み出したら、その一部を配当として受け取る事ができるようにします。そうすることで、自身の給与を生み出す事ができる仕組みを会社につくるのです。

ただ、言うのは簡単ですが、実現はとても難しいです。こんなの、机上の空論です。

ということで、僕は体現するために動きはじめました。
面白い会社を一緒につくりませんか?

【求人情報】
PHPエンジニア・Webデザイナー・フロントエンドエンジニアを募集中です。一緒に自社サービスを開発しませんか?

Web系エンジニアの年収

Web系エンジニアの年収は、みなさん気になるのではないでしょうか。案件情報として確実なデータが存在する、Web系エンジニアの客先常駐についての年収をご紹介します。40歳以降は客先常駐は難しいと書きましたが、逆を言えば40歳以下は客先常駐はめちゃくちゃしやすいです。どの現場も、20,30代のWeb系エンジニアが足りていません。

ズバリ、自社の社員を客先常駐させるIT企業に勤めていた経験のある僕が、経験と実績に基づくWeb系エンジニアの年収を感覚値でお答えします。

【条件】
・PHPエンジニアで、経験年数3年で一人称で開発、5年でフルスタックエンジニアという想定です

【フリーランスの場合】
Web系エンジニアの経験年数
1年:0-45万円(0-540万円、税込み594万円)※スキル不足で需要無し
2年:45-55万円(540-660万円、税込み726万円)
3年:65万円(780万円、税込み858万円)
4年:70万円(840万円、税込み924万円)
5年:75万円(900万円、税込み990万円)
5〜10年:80万円(960万円、税込み1056万円)
10年以上:85万円(1020万円、税込み1122万円)
※リーダー経験有りで+10万〜20万円

会社員の場合には、だいたい上記の60%が自分の額面になると考えてください。「えっ!?40%も会社に取られるの!?」と思うかもしれませんが、仕事が無くても給料が貰えたり、厚生年金を半分会社が払ってくれたり、有給休暇があったり、雇用保険の恩恵があったり、会社の福利厚生があったり、40歳以降のキャリアパスの選択肢が豊富だったりという利点が会社員にはあるため、年収だけを見ずに俯瞰して考えるのが肝要です。

未経験でこれからエンジニアを目指すという方は、独学で1〜3ヶ月ほど勉強してポートフォリオになるWebサービスを作って、それを持ってIT企業へ就職するのがおすすめです。最低でも2,3年は働いて実務経験を得てからフリーランスになるかを検討するのが良いと思います。しかし、上述の通り、フリーランスは40歳以降のキャリアパスが難しいですので、よく考えて決めてください。個人的には、フリーランスと起業がおすすめですが、多くの人にとっては会社員の方が良いと思います。

Web系エンジニアの費用は「単価」と言われる

客先常駐をメインとした会社にいたことがある人にとってはとても身近だと思いますが、Web系エンジニアの費用は「単価」と言われます。これはなぜかというと、客先常駐におけるWeb系エンジニアは会計上「商品」となるからです。請求書を確認するとより顕著な場合が多いです。

(例)
鈴木一郎 数量:1 単価:800,000円 税込み:880,000円

実際に請求書でこのような記載がされています。
「俺はモノじゃない!人だぞ!」と憤る方もいると思います。
はい、個人的にも同意です。これはIT業界の悪しき商習慣によるものであると思います。濁して「単金」って言う人もいますが、まだマシかもしれません。

しかし、忘れないでください。客先常駐での就業スタイルはあくまでも「時給での働き」です。ということは、限界があるのです。あなたがWeb系エンジニアとして客先常駐で会社員をしながら年収1000万円を超える事はほぼ不可能ということになります。

なので、高収入を狙うのであったり、大きなボーナスや退職金を得るためには、一人あたりの売上が2000万以上も狙えるような事業に携わる必要があります。

「売上 − 経費 ≒ あなたの給料」

このシンプルな計算式は、会社員をしていると何故か見落としてしまうこともあります。

年収を伸ばすために必要なことは、「売上を伸ばすこと」「出た利益を還元してくれる組織に属すること」が重要です。

IT企業における事業の主な種類

システム開発会社では、大きく分けて3つの事業スタイルがあります。

(1)客先常駐(SES・準委任契約)
エンジニアが所属している会社に出社するのではなく、顧客の会社へ「パートナー社員」として出社するのがこちらになります。感覚値として、全体の60%くらいの人はこの客先常駐のスタイルで仕事をしていると思います。システムエンジニアリングサービス(SES)と呼ばれています。

SES契約は準委任契約になり、Web系エンジニアは1ヶ月間役務を提供することでその対価としてお金を貰えます。契約内容は、1ヶ月あたり140〜180時間働く、単金は80万円、納品物は勤務表(タイムカード)といった内容です。

顧客と所属会社は、基本契約書、個別契約書(準委任契約書)、秘密保持契約書を締結し、所属する社員(正社員含む)を顧客の会社へ常駐させます。もしくは、派遣法に基づき、派遣契約により社員(正社員含む)を顧客のもとへ派遣します。IT業界の契約周りは色々とグレーやブラックだったりしますが、全てを正しくするとIT業界全体が壊れてしまうのでは、というくらいに変な契約がはびこっている状態です。派遣される側のWeb系エンジニアからしたらほぼ実害は無いので、あまり気にする必要は無いです。

これからWeb系エンジニアをやる方は、高い確率でSESをすることになると思います。僕は事業としてSESをやる気はありませんが、SESには反対していません。なぜなら、技術を提供することで、ローリスクで安定したお金を得る事ができ、同時に学べる点も多いからです。しかし、上述のキャリアパスに書いたように、SESだけをずっとやっていると40歳以降に詰む可能性がありますので、学ぶ姿勢で働くような意識は必要です。

SESを主としている会社は、社員の40歳以降のキャリアを考えられているのか疑問です。自分のキャリアは自分でしっかりと考えましょう。そして、会社の中に40歳以降のエンジニアがどれくらいいるのか、何をしているのかは入社する前に確認するようにしましょう。20,30代が派遣されているだけのSES会社しか入社できない状況であれば、スキルを身に着けたら転職するかフリーランスになることをおすすめします。経験年数2,3年のエンジニアの転職は引く手あまたです。

(2)受託業務(請負契約)

次にあるのは受託業務です。所属会社が顧客から仕事を受注し、社内で開発をするパターンです。感覚値では、全体の20%くらいでしょうか。これは請負契約となり、始めに成果物を定義し、指定された期日までに成果物を納品することを目的とした契約内容です。

SESの場合は「役務を提供する」事が目的でしたが、受託業務は「成果物を指定期日までに納品する」事が目的です。目的を達成できない場合、契約違反となり、最悪の場合には損害賠償を請求されることになります。

つまり、受託業務を主としている会社は炎上リスクが高くなります。小さい会社であるほど、炎上する可能性は高いです。更には、実績を作るために安い金額で受注している場合もあるため、エンジニアは疲弊したのに売上が少ない、という事にもなりかねません。

しかし、受託業務はSESとは違って成果物の納品です。時給ではなく成果給なので、年収を高める事は可能になります。大手の会社ほど競合他社よりも優位性を持っているケースが多いため、受注金額を高くする事ができる可能性が高くなります。また、カヤックのように強みが特出しているようなところは、受託業務における見積額も殿様でいけるので、より高い利益を出せる可能性が高くなります。

大きい会社がやっている受託業務は有り、小さい会社がやっている受託業務は無し。これが個人的な感覚になります。

(3)自社サービス

その会社オリジナルのサービスを運営している会社です。全体の20%くらいでしょうか。ここが一番良いです。自社のサービスの開発なので、まず納期がありません。厳密に言えば機会損失とかあるので納期はあるにはあるのですが、受託業務のように納期に必死になるようなケースは少ないです。

また、自社のサービスなので、サービスの改善案などを積極的に提案することができますし、採用された場合にすぐに実装するなどのスピード感もあります。自分が実装した内容が、エンドユーザーの「便利になって嬉しい」という反応で返ってきたりして、とてもやりがいがあります。

しかし、自社サービスをメインにしている会社に就職するのは難易度が高めです。SESや受託よりも人気があるため、ある程度の経験値を持ったWeb系エンジニアが中途採用で応募してくるためです。

まとめ

本稿をなぐり書きしていて校正もほとんどしていないため、ちょっととりとめなくなって来てしまいましたので、この辺でまとめたいと思います。

Q.Web系エンジニアは生涯食べていけるのか?
A.はい、可能です。しかし、自身のキャリアパスを意識しながら、常々学ぶ姿勢を持って仕事に取り組む必要があります。

Q.年収はどれくらいいくの?
A.30代年収600万くらいは普通にいけます。ですが、40歳以降も年収を伸ばすためには、ビジネスパーソンとして成長する必要があります。

Q.Web系エンジニアは未経験でもできるの?
A.はい、1〜3ヶ月の独学でいけます。Webサイトをポートフォリオとして見れる形で面接に持ち込めば、結構な会社から内定が出ると思います。

Q.コロナで大変だけど、Web系エンジニアは大丈夫?
A.大丈夫な場合が多いです。客先常駐でも、リモートに切り替えて何のマイナスも無い人が僕の周りではほとんどです。僕自身も悪影響ゼロです。いざとなればフリーランスや起業という選択肢もあるので、手に職をつけたいと思っている方にはおすすめです。業務系エンジニアとかだと、セキュリティや開発環境などの面でリモート不可だったりもあるので、Web系エンジニアがおすすめです。


とりあえず、こんなところでしょうか。まとまりのない文章ですみません。他にも気になる事があればコメント貰えればと思います。僕に分かる範囲でお答えしたいと思います。

【追記1】

Web系エンジニアやその界隈についてまだまだ語り尽くせていないため、追記します。

下請け構造(商流)について

IT業界の悪しき習慣とも言われる、下請構造について紹介します。そもそも下請構造ってなんぞ?と思う方もいるかもしれませんが、これは商流(しょうりゅう)と言われています。

基本的には、企業は3種類あります。
(A)開発会社
文字通り、業務を受注してシステムを開発する会社です。ここに、開発するWeb系エンジニアが在籍しています。

(B)中間会社
開発会社と顧客会社を繋ぐ中間の会社です。顧客(発注会社)をたくさん持っている、または、顧客をたくさん持っている中間会社をたくさん持っています。

(C)発注会社
システムの開発を発注する会社です。いわゆる顧客です。

契約の流れ
ベストなのは
【A 開発会社】⇔【C 発注会社】
という直接契約です。ですが、開発会社は従業員を抱えているため、受注業務や案件が途切れてしまうと高い人件費を払い続けなければならず、財政状況を悪化させてしまいます。顧客数には限りがあるため、全てを直接契約で途切れずに契約し続けることは難しいです。

次によくあるパターンが、中間会社が入るパターンです。
【A 開発会社】⇔【B 中間会社】⇔【C 発注会社】
という契約です。A⇔Bで契約し、B⇔Cで契約します。この注意点は、A⇔Cは契約しないという点です。あくまでも、AはCの発注品を開発しますが、納品するのは契約上Bになるということです。

また、これが多重構造になる事もよくあります。
【A 開発会社】⇔【B 中間会社1】⇔【B 中間会社2】⇔【B 中間会社3】⇔【C 発注会社】
下請構造が深くなってくると、Aにとってはデメリットばかりになります。直接契約か1社のみ挟む契約が良いです。

下請構造のメリット

下請構造には下記のようなメリットがあります。

・発注側は、システム会社が早く見つかる
・発注側は、中間会社に開発会社のコントロールを委ねる事ができる
・発注側は、子会社・関連会社を中間会社にすることで売上を伸ばせる
・発注側は、開発エンジニアの労働時間を気にしなくて良い(エンジニアが何時間働こうがそれは開発会社の責任)

・受注側は、案件を早く見つけることができる
・受注側は、案件を獲得する営業に人件費をかけなくてすむ
・受注側は、問題を起こして損害賠償になった際に中間会社と痛み分けできる ※契約内容依存
・受注側は、受注側の都合で一方的に案件を切りたい時に、中間会社が多いほどパワープレイしたり有耶無耶にしやすい

下請構造のデメリット

下請構造には下記のようなデメリットがあります。

・発注側は、二社以上の中間会社があると、開発会社への情報伝達に時間がかかる
・発注側は、中間会社が自社の社員をねじ込みたいので「開発会社がもう延長できないそうです」と嘘をついて無理矢理契約を変えてきたりする
・発注側は、開発会社の都合で急に契約更新してくれなくてエンジニアがいなくなることになるリスクがある

・中間会社、受注側は、多重派遣にならないように派遣契約、請負契約の遵守が必要で、リーガルチェックが複雑になりがち。派遣契約は企業資格(資本金2000万等)が必要。

・受注側は、中間会社にピンハネされる(1社あたり下限3万、売上の5%〜15%くらいを抜く事が多いです)
・受注側は、中間会社が多くなると受注額が小さくなる。2社以上は基本的にデメリットしか無いと考えて良い。

ソーシャルゲーム業界について

Web系エンジニアは主なスキルがPHP、Rubyあたりですが、これはソーシャルゲームでもよく使われる技術です。iPhoneアプリを開発する場合はSwiftやObjective-Cが使われますが、そのバックエンドではPHPやRubyが使われているケースが多いのです。そして、ソーシャルゲーム業界はかなり単価が高い傾向があります。

では、ソーシャルゲーム業界はおすすめなのか?個人的には、おすすめしません。ゲーム業界はダメです。自分も経験がありますし、前職のSES会社でソーシャルゲーム案件に参画している社員を何十人と見てきましたが、ほとんどが高稼働でした。目に見えるものが作れるし、触れるゲームってのは良いんですが、作るなら自社で作っているところにして、SESや受託でソーシャルゲームに携わるのはやめた方が良いです。

特にソーシャルゲームは、運用が命です。一日でも早く機能リリースや、一秒でも早いバグ修正が無いと機会損失になります。1日システムが止まると、何百万・何千万の売上がパーになります。

そんな早いスピード感が求められるわけですから、当然エンジニアには「バグが少ないシステムを早く作る圧倒的なスキル」が求められます。でも、そういうハイスペックなエンジニアはだいたいゲーム案件を避けています。なので、参画しているエンジニアは2,3年レベルの人が多く、当然にバグが頻発します。テスト駆動開発でバグが無いように…なんて開発体制を持つソーシャルゲームなんてほとんどなくて、アジャイル開発とは名ばかりのノーガード戦法で突貫工事当たり前の世界です。

ソーシャルゲームの業界を見てれば「詫び石」とか言ってバグの補填をしょっちゅうしていますよね?そういうことです。察してください。個人的にはおすすめしませんが、月間300時間コースに働く事になるため、エンジニアとしての成長速度は早いというメリットはあります。精神と時の部屋で精神を犠牲に修行するという意味では、有りです。

Web系エンジニアって激務で稼働が高いんじゃないの?

これは、携わる業務によります。受託開発なら、営業とプロジェクトマネージャー・リーダー次第で炎上案件に化けます。SESなら入るまでわからないなど運要素はあるにはあります。

ですが、個人的な経験や前職での数百人のSESの勤務時間を見てきた感じ、半分以上は普通に残業0〜20時間程度です。働きすぎると、発注側は180時間を超過した分を1時間あたり1.25倍で料金を上増し請求される契約がほとんどのため、残業しすぎないでくれと言われるパターンが多いからです。

「ゲーム以外の業界」「自社サービスで、BtoBのビジネスをしている」という条件であれば、残業が少ないと言っているのであれば本当の可能性が高いと思います。自社サービスであれば、サポート時間は平日10:00〜18:00とか設定できますからね。

最後に

ここまで見て頂き本当にありがとうございます。少しでもいいなと思ったら、スキ♡ボタンで応援してもらえると嬉しいです。

個人的には、Web系エンジニアは楽しいし、生涯食べて行くことができると考えています。

弊社では、自社の新規Webサービス・クラウドサービスの開発担当のWeb系エンジニア・デザイナー・グラフィッカーを募集しています。当面は代表が顧客から受託開発をして安定収益を計上し、社員が当社の自社サービスの開発を担当し、自社サービスの売上比率を高めていく事を目指します。社員にはSESや受託開発をさせずに、当社の自社サービスのみで安定した給与を支払えるようにする事を目指します。

僕は、プログラミングが楽しくてこの業界に入り、Web系エンジニアになりました。この「楽しい」と感じた事が自身の成長の好循環へと繋がったので、この体験を世の中に広げるべく、人の成長に関わるWebサービスを新規自社開発していきます。そのための仲間を募集しています。

成果重視で利益を社員に還元する会社です。副業OK・起業OKなど次世代の生き方ができるようにすることを目標にしています。
一緒に素敵な会社を作りませんか?