はじめに
これからエンジニアになって、開発をやるぞーという方も多いと思います。
そこでこんな疑問が出てくるのではないでしょうか。
現場に出たらそもそも何をするの?ってずっと思ってました。
そのような方が開発現場に入ったらまず何をするのか、どう考えて行動すべきかがわかるような記事を書こうと思いました。自分が参画した現場で共通しているものがあったので、それを書いていきます。
もうすでに4つの現場に入ったことあるので、割と説得力があるかと思います笑
想定
- Web系の開発現場
- エンジニア1,2年目のジュニアエンジニア
Web系の開発現場に入ったことを想定していきます。
ちなみに書いている自分はエンジニアの2年生になる頃です。
オリエンテーション
まずはオリエンテーションが入ります。
自分のPCを使う場合はSlackと連携したり、Teamsで連携したりします。
自分がいた現場はほぼSlackでした。
PCを貸与してもらう場合もあるので、PCの設定などを行なっていきます。
ここで注意して欲しいのが、
現場によって環境やバージョン、ルール、ツールが会社ごとに違います。
スクールや前の現場と環境が違うということは当たり前なので、
スクールで現場の環境を全部揃えるのは不可能です。
環境構築
まずは環境構築です。基本ドキュメントなどオンボーディング資料があるはずです。
ないなら1on1でやるかもしれないです。
もしオンボーディング資料を後から入ってくる人のために提案して作成するといいと思います。GitHubの案内が来て、Dockerを起動して、動作チェックをしてみたいなのは、どこの現場も同じです。GitHubではなく、GitLabやRedmineを使っている現場もあります。Dockerない現場もあると聞いたことはあります。
環境構築は詰まることがあるので質問することになると思います。
その際、質問のやり方は気をつけてください。
以下の記事を参考にしてください。
現場のルール確認
現場のルールやお作法などは確認しておきましょう。
ルールが細かいとこもあれば、全然ないとこもあります。
サービス、システムの確認
サービスの理解は、仕様書の確認や動作確認などをしていく必要があります。
システムの確認はまずコードやアーキテクチャ、テーブルなどを理解していく必要があります。
チームの確認
誰が何を担当しているか、誰に聞けばいいかを把握していく必要があります。
ex)
- リーダーやCTOは忙しいから定例会とか時間を見つけて聞いておこう。(事前に予定を聞いておくといいです)
- この機能はこの人が実装したからこの人に聞くなど実際に作った人に確認を取る
- 先輩がついてくれるなら先輩が誰か把握する(先輩も忙しいので、質問の仕方やタイミングは気をつけましょう)
自分目線ではなく、相手の状況を確認する相手目線でやっていくようにするといいです。
実際は現場のコードは難しいからつい自分目線になっちゃいますけどね。笑
僕も同じです。笑
実装手順
いよいよタスクが来ました‼︎よかったら読んでください‼︎
技術面の対策
最低限CRUDと認証機能は現場に入る前に実装しておいた方がいいです。
チームでの開発の対策
基本的には、コミュニケーションの不足や協調性の有無が多いです。
SESや業務委託で切られる原因として、技術力不足と言われることありますが、
正直内心は協調性やコミュニケーション力の欠如などソフトスキルの原因が多いみたいです。
自己研鑽の方法
自己研鑽のやり方としては、以下の
1.個人開発で検証する(現場で使いそうな機能、提案できそうな機能など)
GitHubに残しておくと似たような機能を実装する時に役に立ったりします。
2.ドキュメントに書いてアウトプットする(発信する)
実務で学んだことは記事に書いてアウトプットしていくといいと思います。
3.KPTを自ら実施する
現場での反省点を自分で毎週振り返りをしましょう。
リーダーなどにレビューしてもらうといいです。
4.現場での不明点や学んだことの復習
現場で知らなかったことなどを仕事以外で調べてみましょう。
以下の記事も参考にしてください。
こちらの動画を参考にしてください。
注意(フルスタックを求めている会社そんな多くないです)
フルスタックエンジニアは目指してなるのではなく、現場の要望に応えたら
フルスタックのスキルを身につけたというパターンが多いです。
エンジニアは自分のキャリアばかり考える人多ですが、会社への価値提供、利益貢献を第一に考える必要*があります。
駆け出しエンジニアが成長するには
結論いろんな現場経験です。
自社開発の社員になりたがる人が多いですが、ぶっちゃけエンジニアとしてレベルアップしたいならいろんなサービスの経験をした方がいいです。
3年エンジニアをやるなら1つの現場に3年いるより、1年ごとに現場を変えていろんな課題に当たったり、いろんな現場の型やいろんな知見を広めていくといいです。
けっこういろんな現場の知見は重宝されることもよくあります。
こちらの動画を参考にしてください。
いろんな現場を経験する方法とは
1.受託開発に入社
いろんな案件ができるので、ジュニアエンジニアにおすすめです。
受託開発でレベルアップしてから、自社開発など自分の理想の会社に行くのはおすすめです。
2.フリーランスのような業務委託
フリーランスはフットワークが軽くいろんな現場に行けます。単価も高いのはもちろんいいのですが、フットワークが軽く色んなサービスの経験を積めるのはメリットです。フリーランスでもちゃんと実績を積めば、正社員でも十分採用されます。
3.派遣エンジニア
派遣もフリーランスと比べると単価は落ちますが、
派遣も色んな現場に行くチャンスがあります。
4.優良SESに入る
SESって評判悪いですが、
本来ならエンジニアとしてレベルアップするには最高の環境なんですね。
色んな現場行けるので‼︎
進路の参考に
自社開発の勘違い
自社開発だとこんなイメージがあるのではないでしょうか?
1.モダンな技術(SPAやGO、Next.js、AWSなど)
2.ホワイト企業
3.フルリモート
4.お給料がいい
こんなイメージあると思うのですが、会社に寄ります。
普通にSPAじゃなくてレガシーな案件もありますし、ブラック企業も普通にありますし、
出社強制の会社もあります。お給料も会社が儲かっていないと良くないです。
会社ごとに見ていく必要があります。
自社開発だからホワイト、SESだからブラックではないですからね。
優良SESなら入る価値あり
この条件に1つでも多く満たしているSESなら入る価値はあります‼︎
1.開発ができる
2.駆け出しのエンジニアには、現場には必ず先輩エンジニアなど同じ会社の人がいる現場にアサインがルール
3.待機者がほとんどいない
4.案件を選ばせてくれる
5.嫌な案件なら変えてくれる
6.営業がエンジニア出身(開発の勉強は最低限やっていて欲しい)
社員なら教えてくれて、業務委託だと教えてくれないは本当?
これは会社や現場に寄ります。業務委託でも色々教えてくれる現場もありました‼︎
社員じゃなくても1on1でフィードバックとかもしてくれたし、社員の集まりにも呼んでくれました‼︎逆に社員でも、全く教えてくれない会社もありました。人が育たず、辞める社員も多くて業務委託に頼るしかなく、会社があまり成長していないです。
最後に
偉そうに書いてますが、僕もまだ全然大したことないです。笑
できないと思っているからこういう記事を書いてアウトプットしています。
これから現場で大変だと思うのですが、一緒に頑張っていきましょう‼︎
仕事が始まってから
初心者エンジニアにおすすめしたい「進捗どうなった?」と言われないための仕事の進め方
この記事は有益です。
他にも読むと良さそうな記事