【客先常駐(SES)・フリーランス必見】Web系エンジニアが現場初日から数日間でやるべきこと8選

※本サイトはアフィリエイトリンクを掲載しています。
エンジニアの働き方

本記事の内容はこちら

・この記事の信頼性

・客先常駐の初日の流れ

・環境構築の流れ

・初日から数日間で「やるべきこと」8選

 

この記事の信頼性

こんにちは。Web系エンジニアのカズです。数年前に未経験からプログラミング学習を始めて転職し、現在は単価80万円~90万円の案件を受注して活動しているエンジニアです。

エンジニア歴は約7年になります。

私は新人の頃は、客先常駐(SES)からスタートしてこれまで多くの現場に出向して経験を積んできました。

初めて出向する時は1人で出向して、とても緊張したのを今でも覚えています。私はこんなことが不安でした。

初出向の時の不安

  • 具体的に何をすれば良いのか、分からない
  • 自分の技術が通用するのか、分からない

 

本記事では同じ境遇の皆さんに向けて、初出向で「何か気を付けた方がいいことは?」「初日は何をするのか?」などの疑問を解消できる情報を書いて、お役に立てればと思っています。

 

私はWeb系のエンジニアとして出向していますので、それ以外のポジションの方は一部内容が異なります。

 

客先常駐の初日の流れ

①待ち合わせした時間に、常駐先の現場に出向する

②現場の営業またはチームの方が、出迎えてくれる

③オフィスに入り、チームメンバーに挨拶する

④PCを受け取る

⑤PCをセットアップする

⑥PCセットアップが完了し、翌日から業務開始

 

①待ち合わせした時間に、常駐先の現場に出向する

最近はリモートワークが主流ですが、初日は会社出勤して顔合わせやセットアップをすることが多いでしょう。
最寄り駅で営業の方と待ち合わせしてオフィスに案内してくれる場合もありますし、オフィス入口まで向かってから現場のチームの方が出迎えてくれる場合もあります。

 

②仲介企業の営業の方、または現場の方が出迎えてくれる

基本的には出迎えてくれるはずです。仲介企業の方が出迎えしてくれる時は最寄り駅で待ち合わせパターンが多いかなと思います。
その場合は親身になって、緊張をほぐしてくれたりする営業さんも中にはいます。
出向先の現場の方と待ち合わせする場合はオフィス入口になることが多いと思います。
どの会社の方と待ち合わせをするのか事前に確認しておきましょう。

 

③オフィスに入り、チームメンバーに挨拶する

この時に名刺を渡してくる現場もあれば、口頭の挨拶の現場もあります。
名刺交換は比較的少ないとは思いますが、必要なら準備しておきましょう。

 

④PCを受け取る

PCに関しては、基本的には現場で支給されることが多いです。
現場によってMacなのかWindowsなのかが異なります。
出向前にどちらのPCなのか確認しておきましょう。

 

⑤PCをセットアップする

・メールアドレスの確認(初期で既に設定されている状態が多い)

・アカウントの作成(Github, プロジェクト管理ツール, チャットツールなど)

・環境構築(ツールのインストール, 開発環境の構築)

・リモートワークの設定

主にこのあたりのセットアップ。

環境構築についての詳細は↓で解説します。

 

⑥PCセットアップが完了し、翌日から業務開始

初日でセットアップを完了させている状態が望ましいです。

 

初日から数日間で「やるべきこと」8選

①環境構築を完成させる

②勤怠管理の確認をする

③ドキュメント類の確認をする

④プロジェクト全体の進捗具合の確認をする

⑤タスクの振られ方の確認をする

⑥開発中のサービスの、おおまかな概要を理解をする

⑦ソースコードの内容を、おおまかに把握をする

⑧リリースのフローを確認をする

 

①環境構築を完成させる

環境構築とは、プログラミングに必要な「開発環境」を構築することです。

現場初日~数日間で、環境構築を終わらせることが1つの目標になってきます。

環境構築について「ツールは何を使用しているか」「環境構築に関するドキュメントがあるか」を事前に聞いて取り組みましょう。

環境構築の流れがわかってもらえるように、最近のメジャーな環境構築の例を挙げてみます。(実際、ツールは現場に指定されたものを使用します。下はあくまで参考例です。)

環境構築(参考例)

  • Gitの準備
  • Sourcetreeの準備(初心者向けの視覚的にGitを管理しやすくしたもの)
  • エディターの準備(Vscode, Atom, PHPStormなど)
  • DB管理ツールの準備(WindowsならA5:SQL MK-2)
  • プロジェクト管理ツールの準備(Backlog, Jira, Redmine)
  • Dockerまたはvagrantなどの仮想環境用プラットフォームの準備
  • プロジェクトのソースコードをローカル環境にプルする
  • 仮想環境をコマンドで立ち上げ、起動する
  • DBの接続確認をおこなう
  • 開発環境で起動した画面が閲覧できることを確認する

Sourcetreeは必須ではないです。

最終的な環境構築のゴールは、現場が開発中のシステムやサービスを開発環境の画面で見れるソースコードが見れる状態です。あとはソース変更内容をpushできることも確認しておきたいですね。

エディターの準備

代表的なものはVscodeですね。私もVscodeを使用します。

エディターを自分の使いやすいようにセットアップしましょう。その際に、エディターに入れておきたい拡張機能があります。

エディターに入れておきたい拡張機能は、ソースを自動整形してくれる拡張機能です。

ソース自動整形の拡張機能は現場の方が使用しているものに合わせた方が、ソースコードをpushしたときに余計な差分がでなくて済みます。

 

Dockerまたはvagrantなどの仮想環境用プラットフォームの準備

Dockerやvagrantは基本的にはソースコードに既に書いてあって、コマンドを実行すれば環境が自動で構築されるようになっていることが多いです。

もしコマンド実行後上手く動かない場合は、既存のソースに間違いがないか確認しましょう。

 

②勤怠管理の確認をする

確認する内容は下記です。

・勤務時間の確認(何時から何時)

・リモートワークの勤務開始時/終了時の連絡の有無の確認

・勤怠管理表の有無の確認

リモートワークの場合はメールなどで「勤務開始」「勤務終了」の連絡をすることがあります。
どのようなルールなのか事前に確認しておきましょう。

 

③ドキュメント類の確認をする

具体的に何のドキュメント類の確認なのかは、下記を参考にしてください。

ドキュメント類一覧(参考例)

・画面設計書の在りかを確認

・仕様書のドキュメントの在りかを確認

・詳細設計書のドキュメントの在りかを確認

・テーブル定義書のドキュメントの在りかを確認

現場によってドキュメントが存在しない場合もあります。
または存在するけど更新されていない場合もあります。
ドキュメントの管理は、工数がかかり優先度が低くなる傾向があるからです。
そういう場合はソースコード画面データベースから仕様を読み取っていく必要があります。

 

④プロジェクト全体の進捗具合の確認をする

プロジェクトはいつまで続くプロジェクトなのか。現在はどの工程を開発中なのか。

これらを確認して全体的なスピード感を把握して、そのスピード感で対応できるように準備する必要があります。

 

⑤タスクの振られ方の確認をする

基本的にはプロジェクト管理ツールでタスクを振られることが多いです。

タスクを振られる前に、直近でどのようなタスクを担当しそうか把握しておくと良いですね。

 

⑥タスク完了までのフローを確認をする

タスク完了までのフローは現場や人によって、異なります。

開発者が実装~リリース作業までを担う場合もあれば、実装~テストまでを担う場合もあります。

どの工程まで自分がタスクを完了させれば良いのかを、事前に確認しておきましょう。

良くある流れを、参考までに挙げてみます。

タスク着手から完了までのフロー(参考例)

・プロジェクト管理ツールでタスクを割り振られる

・仕様を把握して実装する(プログラミング)

・テストを実施する(テストコードを記載して実行。またはテスト仕様書を作成して動作確認)

・プルリクエストを作成する(実装したコードを差分表示させてチームに共有するもの)

・ソースコードのレビュー(添削)をしてもらう。

・テスト環境にソースコードを反映

・本番環境にソースコードを反映

 

⑦開発中のサービスの、おおまかな概要を理解をする

仕様書のドキュメントがあればドキュメントを見つつ、ソースコード画面データベースを見て仕様を把握してきましょう。

サービスの概要をとらえるポイント

  • どんな画面があるか。画面数は
  • どんな機能があるか(例:登録機能、編集機能、削除機能、照会機能、検索機能)
  • 外部と連携してデータの受け渡しをしている所があるか。

 

仕様を事前に把握していることは、開発タスクをする上でとても重要です。
仕様書やソースコードから内容を把握することも重要ですが、理解に時間がかかるようであれば現場の方に仕様を確認しましょう。

 

⑧ソースコードの内容を、おおまかに把握をする

バックエンドエンジニア

  • DBの構成を見る。テーブルの親子関係など
  • 各テーブルのデータが、どの画面に使われているか把握する
  • CRUD処理をしているソースを見る

 

フロントエンジニア

  • レイアウトの共通ファイルを把握する
  • プラグインの把握をする
  • バックエンドエンドとのデータの受け渡し方法を把握する

コメント