paiza開発日誌

IT/Webエンジニア向け総合求人・学習サービス「paiza」(https://paiza.jp ギノ株式会社)の開発者が開発の事、プログラミングネタ、ITエンジニアの転職などについて書いています。

SIer村を出て自社サービスに行った、若いエンジニアの末路

f:id:paiza:20180125131030j:plain
Photo by Gael Varoquaux
高村です。

paiza(ギノ)に入社してからもうすぐ2年、今は開発チームのリーダーをしています。新卒でITエンジニアとして働き出してからは、10年弱ぐらいですね。

前職は大手SIerだったのですが、退職時は上司からびっくりするほど引き止められて、「ここでやっていけないならどこへ行っても同じ」「ここを退職して転職なんかしたら苦労するぞ」みたいなことを言われました。大企業だとありがちなことですよね。

実際そういったことを言われて、「転職に興味はあるけど、踏み出すのが不安になってきた…」と思っている人は、結構いるんじゃないでしょうか。

だから今回は、SIer村を辞めて出ていった自分が、なぜ出ていったのか・その後どうなったのか、また実体験から感じた「いい転職のためにやった方がいいこと」についてを書きます。

■私の簡単な経歴

経歴:大学(情報系)→メーカー系の大手SIerで8年ほど勤務→paiza(ギノ)に来て2年弱

■ざっくり学生時代の話

子供の頃からゲームが好きだったので、「ゲームとか作れる人になったら楽しそうだなー」という軽い気持ちで情報系の大学に進みました。実は、大学行くまではプログラミングのプの字も知らないどころか、パソコンすら持ってなかったです(よく情報系に進んだな…)。授業は全然わかんないし、周りは「C言語でハローワールドも出せないのが許されるのは小学生までだよねー」みたいな人ばっかりだし、これはやばいところに来てしまったと思いました。

それでもバイトしてPC買ったり、必死で勉強したりして、それなりの知識が身についてくると「プログラミング楽しい~!」と実感できるようになったので、そのままソフトウエアエンジニアとして就職することにしました。

■新卒で入社したSIer時代

就活中に「受託系の仕事は残業が多かったりして過酷なところが多い」とは聞いていたんですが、

  • 一生そこにいるわけでもないし、厳しい環境だからこその学びもあるだろうし、どうせ苦労するなら若いうちのほうがよかろう
  • 上流工程しかやってない会社だと、プログラミングできなさそうだからやだ

と思って、大手メーカー系の子会社に入社しました。

研修やテスター業務などを経て、2年目ぐらいから数人の開発チームを取りまとめるマネジメント業務も担うようになっていきました。

SIerに入ってよかったこと

やはり最初は、全然知らない領域にトライできて、新しい知識を身につけられるのがものすごく楽しかったですし、勉強になりました。

大学時代はあまり使っていなかったJavaでの開発、Web系のフレームワーク、テストの方法論、インフラ周りなどなど……は、実務を通して初めて触れた領域です。1~2年目ぐらいまでは、本当に毎日何らかの学びがあったし、その頃に身につけた知識は今の仕事でも活きていると思います。

私は割と「やったことない仕事はやってみたい」と思うほうなんですが、自分から「やってみたい」と言えばやらせてもらえる会社だったのもよかったと思います。

2・3年目になってできる仕事が増えてくると、炎上プロジェクトの助っ人に行くのも楽しかったですね。(私は自ら炎上プロジェクトを手伝いに行くのが好きだったんですけど、そういう性癖があるわけではなく、勉強になると思っていたからです。どんなプロジェクトがあったかなどの詳細は、こちらの記事に書いてあります)
paiza.hatenablog.com


ただ、転職サイト自体は多分2・3年目の時から登録だけはしていました。前述の通り「ずっとここにいるわけではなかろう(≒ここを抜け出しても食っていける人材になっておかねば)」と思っていたので。すぐに転職はしないにしても、「世の中には他にどんな会社があるのか」「世の中的にはどんなエンジニアに需要があるのか」を知りたかったというのもあります。

SIerでしんどかったこと・課題を感じていたこと

で、最初は割と楽しく働いていたんですが、4年目ぐらいからしんどいなあと思うことが少しずつ増えていきました。

◇最初から残業ありきのプロジェクト

途中で何か問題が起きてしまって残業が必要になってくるケースは仕方ないとしても、最初から残業ありきのスケジュールで組まざるを得ないプロジェクトが続くとつらいですよね。実際、前職では社員が残業しまくらないと利益が出ないような契約が横行していました。

上には「何でこんな契約すんねん」と不満が募るし、下には「残業ありきでごめんね…(しかも炎上したらさらに残業が増える…)」という気持ちになるけど、会社がそんな体質で、同様のプロジェクトしか回ってこない状態だと、もう自分一人の力ではどうにも改善できない…。

また、エンジニアに時間労働が求められすぎている環境で、例えば周りの十分の一の時間で開発できる優秀な人は十分の一の給料しかもらえず、余分に時間をかけないと作れない人は余分に残業代がもらえる、みたいな状態もおかしいのでは?と感じていました。

◇メンバーがプロジェクトごとに変わる

これも受託開発をしていると仕方ないのですが、協力会社の人と一緒に仕事するケースが多くて、メンバーがプロジェクトごとにころころ変わっちゃうんですよね。

学生の時も家庭教師のバイトとかしていて、人に教えるのは割と好きな方
ほうだったんですが、それでも「数か月でいなくなる人に、このシステムについてどこまで教えたらいいんだろう…」「どうせすぐいなくなっちゃうんだから、教えなくてもいいかな…」「自分が細かいところまで指示を出して動いてもらったほうがいいのかな…」と悶々としてしまう場面がよくありました。

◇学びがどんどん薄くなっていく

4年目ぐらいからはどんどん新たな学びがなくなっていって、毎日同じことやってるな…と感じていました。

任されるのは同じサービスのプロジェクトだし、使う技術も同じだし、会社には開発じゃなくてマネジメントする側に回れと言われるし。

◇マネジメントに転向するよう洗脳される

マネジメント自体が嫌ではなかったんですけど、やっぱり自分はプログラミングがしたかったんですよね。

自分としては「こいつにマネジメントだけをやらせておくのはもったいない」と思われるようにがんばってきたつもりだったんですけど、会社的にはプログラミングをやめてマネジメントに回るキャリアパスしかなく……だんだん「もうそろそろ転職したほうがいいかな…」と思うようになっていきました。

◇お客さんが絶対

途中から発注側の担当者が変わったプロジェクトがあったんですが、その担当者が全然融通を利かせてくれない人で、めちゃくちゃ困りました。

それまでは、例えば「スケジュールと金額的なことを考えて、この機能は来期に回しませんか」みたいな交渉や調整も比較的やりやすかったんですが、担当者が変わってからは最初に決めた要件を決めた通りに進めるのが絶対、みたいな感じになってしまって、本当にやりづらかったです。

お客さんが絶対になってしまうと、作る側にしわ寄せが来てしまう……この辺から、受託開発の限界を感じるようになっていきました。

■転機は突然に訪れた

そうこうしているうちに忙しいプロジェクトが続き、帯状疱疹になってぶっ倒れてしまい、本気で転職することに決めました。

「ここに居続けて体を壊したら元も子もないなあ、そろそろほかの企業の面接を受けてみるか」と思い、軽い気持ちでpaizaからいくつかの企業に応募したのですが、一社目に受けたpaiza(ギノ)の選考がスムーズに進み、そのまま内定&入社してしまいました。

だから面接対策をすごくがんばったとかそういう経験はないのですが(そういう話を期待してた人がいたらすみません…)振り返ってみると、普段から自分の将来やキャリアのために考えていたこと・やっていたことが評価されて選考を通過できたのかな?という気がします。

SIer村を出た自分は今どうなったのか

結果として、私は転職をして本当によかったなと思っています。

誰でもそうだと思いますが、転職に対して全く不安がなかったわけではありません。でも、私の中では転職に対する不安よりも、前職に居続けるほうが不安でした。

最初にも言いましたが、退職時は長期にわたって引き止められました。上司から、前職の会社がいかにすばらしいか…具体的に言うと「大手ゆえのプロジェクトの規模の大きさ」「大手ゆえの安定性」などを語られたのですが、全然響いてきませんでした。

もちろんスタートアップである現職は、前職と比べれば安定性には欠けます。ただ、それでも響かなかったのは、私が「そもそも会社に安定性を求めるほうが間違っている」と思っていたからです。

今や大手の家電メーカーでも簡単に傾きますし、いろいろな会社が急に倒産したり記者会見したりしていますよね。永続的な安定が保障されている会社なんてこの世に存在しません。

本当に安定を求めるなら、自分のスキルレベルを上げて、複数の企業からほしがられる(≒一社の経営状況ごときに左右されない)エンジニアになるべきでは」というのは、当時から思っていました。

実際、前職では大きな受託案件(Java中心)だったのに対し、現職は小規模スタートアップの自社サービス(Ruby中心)と、違う開発分野に飛び込んだことで、自分のできる領域を広げられて、すごく楽しいし満足しています。もちろん今後も、もっとできることを増やしたり深めたりしたいです。

縁起でもないですが、明日paiza(ギノ)が潰れて放り出されても、すぐにどこが拾ってくれる(…というか、行き先をこちらから選べる)レベル感のスキルセットを身につけられているとは思うので、今後のキャリアについても不安はそんなにありません。

◆転職後、何をやっているか

現在はpaiza新卒paizaラーニングにおける開発チームのリーダーをしています。ロジックサマナーなどのオンラインイベント系の開発もしています。

そして、もう一人別の開発チームのリーダーと、エンジニア全体のリーダーであるチーフエンジニアと一緒に、エンジニアの採用選考業務も担当しています。

◆現職のよいところ

◇開発にスピード感と柔軟性がある

できたモノはすぐにリリースして、ユーザーの反応を見ながら「ここは変えよう」みたいなことが柔軟にできる環境に来て、転職前に考えていた「もっとスピード感のある開発がしたい」という希望は叶ったと思います。

スケジュールも、きちんとモノさえできれば融通が利きます。前職にいた頃に結婚して子供も産まれていたんですが、「今日は子供を保育園に送っていくから遅く出社したい・迎えに行くから早く帰りたい」みたいな調整もしやすくなりました。

あとは機能追加やツールの導入など、新しいモノを作ろう・取り入れようとなった時に、承認する上司も導入を受け入れる開発チームも「いいよ、やってみよう」と言ってくれるので、すぐに実践できるようになりました(もちろん大前提として、ちゃんとした理由や検証は必要です)。

受託開発において仕方ない部分ではありますが、前職は何事も「お客さんが決める」だったので、これは大きな違いかなと思います。今は開発チームやサービスの規模的にも、全体を見渡せる規模でテンポよく開発を進められます。

ただ、前職は「ここまで作れば一旦終わり」だったのに対し、現職では改善し続けながら自分たちで数値を追わなければならないので、プレッシャーの種類は変わったなと思います。

◇周りの技術レベルの平均値が上がった

…と言うと前職の同僚に対して偉そうで申し訳ないし、もちろん前職でもめちゃくちゃレベル高い人はいたんですが、やっぱり平均値は今のほうが高いと思う…。

現職では、みんな得意分野はありつつも、総合力の高い人が多いなと感じます。私が目指すジェネラリスト寄りな人が多いのかなと思っていて、勉強になりますね。

だからと言って、みんな既に全ジャンルで80点取れてる人ばっかりかというと、そうでもない…。と言うとこれも今の同僚に失礼な感じになってしまいますが、みんなまだ伸びしろがあって知識欲も強いので、切磋琢磨できて、情報の共有とかもしやすい環境だなと思います。同世代(20代後半~30代前半)も多いし。

◆現職に対する課題感

現職に何も課題や問題がないかというと、もちろんそんなことはありません。

余談ですが、「前職がSIerなんですけど、残業多いし、仕事の裁量は小さいし、お客さんとの調整が多くて嫌なんですよね!自社サービスを作っている会社ならそれが全部解決できていいですよねー!」みたいな感じで、転職に夢を見ている人は、エンジニアに限らず本当に多いです。でも、この世に100%自分の理想通りの会社なんて存在しません。さらに言えば、課題をまったく抱えていない会社というのも存在しません。

だから転職で大切なのは、「この仕事ではこの部分が大変そう」と把握した上で、「それでも頑張っていけそう」と思える転職先を選ぶことだと思います。

◇全部自分たちで決めないといけない

前述もしましたが、導入するツールや作る機能・実施する企画などについて、自分たちで考えて決められるんですけど、それは裏を返せば「誰かが決めてくれるわけではない」ということです。選択や決断が必要な時って、自分たちでものすごく調査したり検証したりしないといけないですし、それでもわからなくて悩んだりします。

これは今後の自分のキャリアについても同じことが言えます。前職みたいに明確なキャリアプランが用意されているわけではないですから、今後どんなエンジニアになりたいのかは自分で考えて行動していかなければなりません。

◇意外と負の遺産がある

これはスタートアップあるあるかもしれませんが、初期の古いコードをどうリファクタリングしていくか、というのが目下の課題になっています…。

◇エンジニアが足りない

自分が採用に関わり出して、本当に感じている課題です…。(興味のある方はぜひ応募してくださいね…弊社の求人情報はこちら!

人が足りないと、paizaとしてやりたいことも少しずつしか進められないので、引き続きエンジニアの採用活動を頑張っていく所存です。

また、人を増やすと社員一人一人の状況が見えづらくなってしまう弊害はどうしても起こりがちなので、エンジニアの採用担当&チームリーダーをやっている立場としては、ただ採用して人を増やすだけではなく、開発チームの体制も整えていかないとなぁ…と思っています。

■いい転職をするためにやっておいたほうがいいこと

自分は結果的によい転職ができたと思っているので、何をしていたからいい転職ができたのか、これから同じようなキャリアを目指す人が、どういう準備をすればいいのかを、自分の経験からまとめてみました。

◆自分の将来やキャリアを在職中から考えておく

正直言うと、大学を卒業するくらいまでは「将来はスペシャリスト系のエンジニアになりたい(キリッ」と思っていました。

ただ、本気でスペシャリストになろうと思ったら、ものすごくレベルの高い人たちと、ものすごく少ない椅子を奪い合わないといけないんですよね。社会に出たらそれを痛感して、すぐに「自分は何かを極めたスペシャリストにはなれないだろうな」と思いました。

そして、「何でも屋的なエンジニアのほうがどこの企業でも需要がありそうだから、そっちを目指そう」と早めに切り替えたんです。

一つの分野を極めたスペシャリストは本当に素晴らしいんですけど、その分野の開発を行っている企業にしか需要はありませんよね。その技術が廃れてしまったら、需要がなくなってしまうかもしれないし、さっきも言いましたが椅子は少ないし……自分がその中で勝ちあがっていくのは、難易度が高すぎる。

また、「スペシャリストだけではビジネスは回っていかない」というのも実感していました。一般的な開発業務に携わっていると、スペシャリストの手を借りたいというよりも、あらゆる分野で60~80点ぐらいが取れるジェネラリスト的な人の手を借りたいと思う場面のほうが多いと思います。実際、paizaに掲載されている求人でも、そういったエンジニアはものすごく需要があります。

だったら、自分は一つの分野で120点取れる人よりも、いろいろな分野で60~80点ぐらいを取れて、どこでも食っていける人になろうと思いました。

◆足りないところを埋めるためにやったこと

当然ですが、何でも屋になりたいなら何でもできるようにならないといけません。そのために、普段から「今の自分には何が足りないのか」を意識していました。

足りない部分は自分で勉強して埋める必要がありますが、勉強だけでなく実務を通しても

  • このプロジェクトで自分がどんな仕事をしてきたか
  • その仕事にはどんな意味があったのか、チーム・プロジェクト・会社にとって何の役に立ったのか
  • この仕事で何を得たのか、それは次にどんな場面で活かせるのか

といったことは、常に言語化していました。

普段からこれら言語化しておいたおかげで、これまでの職務経歴・前職で苦労したこと・今後やりたい仕事などなど、面接でよく聞かれがちな質問にもスムーズに答えられた気がします。

あと、常に要点を明確にしておけば、長々と喋らなくて済む…という利点があります。私はそんなに喋るのが得意ではないので、長く喋らずに済ますために、なるべく何でも「つまり○○ってことです、以上!」って言えるようにしておきたかったんですよね。「自分は喋りが足りない」と把握していたので、足りない部分を埋めるためにはどうするか→要点を掴んでおく…という対策に至ったわけです。

◆企業選びについて

前職で、受託開発だと

  • 要件定義や詳細設計といったプロセスを踏まなければならない
  • 契約によって手を出せる範囲が限定されてしまう
  • そのシステムに初めて触れる人も含め、いろいろな人が集まって作らなければならない

といった制限があるせいで、開発スピードがどうしても遅くなってしまうなと感じていました。

この遅さを解決するにはどうすべきかというと、やっぱりお客さんが自社でエンジニアを抱えて作るしかない。というわけで、次は自社サービスを作っている企業に転職しようと思っていました。

◆技術的な取り組みについて

技術的な取り組み(転職前に勉強しといたこととか)に関しては、以前にこちらの記事に書きましたので、興味のある方はごらんください。
paiza.hatenablog.com

転職前に不安があったとすれば、一番は「技術的についていけるか」ということでしたが、それを払拭するために、入社前から上の記事で書いた勉強などに取り組んでいました。

自分が行きたい分野の技術やツールに触れておくこと(それがわからない場合は、まずどんな技術が使われているのかなどを知るとか、ひとまずいろいろやってみるとか)が大事かと思います。


もし「このまま現職にいていいのだろうか」と考えている方がいたら、上記のようなことを意識しておくといいと思います。本気で転職しようと思い立ったときにあわてて始めているようだと、転職活動は苦労するでしょう。

■まとめ

今回書いたのは私個人の経験に基づく話で、当然ですがどんなエンジニアにも当てはまるわけではありません。

ただ、転職したいという希望があるのに、転職経験もないような上司や先輩から「ここでやっていけないならどこへ行っても同じ」「ここを退職して転職なんかしたら苦労するぞ」などと言われて不安になってしまった若い人たちに「いや全然そんなことはないんだぜ」と言いたくて、この記事を書きました。

もちろん自分のキャリアをよくよく考えた上で、今の会社にいようと思ってとどまるのもよい選択だと思います。何がやりたいのか、どんな会社が合っているかというのは、本当に人によってさまざまですから。ただ、「ここでやっていけないなら~」とか言ってくる人の話に惑わされずに、自分がどうなりたいかを考えるのが重要なんだと思います。

あと、漠然とした不安や悩みがある人は、何がそんなに不安なのかを具体的に言語化してみたほうがいいですね。

例えば技術的についていけるか不安なら、どんな技術を使っているか、エンジニアが普段どんな仕事をしているのか面接で聞いてみたり、使われている技術を自分で勉強してみたりすればいいわけですし、金銭的な不安…は、提示額の折り合いがつかないならそんな企業には行かなければいいだけですし。漠然と悩むよりは、具体的に言語化したほうが、解決策に近づけますよ。

昔の自分みたいな境遇で悩んでいる人にとって、少しでも参考になる話があったなら幸いです。




paiza転職は、転職時のミスマッチをなくし、エンジニアがより技術面にフォーカスしたやりがいある仕事を探せる転職サービスです。プログラミングスキルチェック(コーディングのテスト)を受けて、スコアが一定基準を超えれば、書類選考なしで複数の会社へ応募ができます。

詳しくはこちら
paiza転職


まずはスキルチェックだけ、という使い方もできます。すぐには転職を考えていない方でも、自分のプログラミングスキルを客観的に知ることができますので、興味がある方はぜひ一度ご覧ください。

詳しくはこちら
paizaのスキルチェック