リクルーティング・パートナーズ㈱エンジニアチームについて
こんにちは!
リクルーティング・パートナーズ株式会社(略してリクパー)でフロントエンドエンジニアをしている谷本です。
本日よりエンジニアチームのマガジンを開設しました。
簡単に自己紹介
私がエンジニアとしてのキャリアをスタートしたのは2021年1月から。
実務開始1ヶ月の、新米エンジニアです。
大学卒業後、法律事務所や市役所勤務を経て、そのあいだに結婚もしたりして穏やか〜な日々を送っていましたが、
人生1回きり!やりたいことやろう!
と一念発起してプログラミングの勉強を始めたのが2020年5月。
独学でなんとかポートフォリオを作り、8月に転職活動を開始して、リクパーと出会い、今に至ります。
未経験から異業種への転職は甘いものではなく、とりわけエンジニアは専門職種のため必要な知識も幅広く、日々勉強です。
でも、毎日楽しく働いています!
今回は、エンジニアチームの1番手として、入社して1ヶ月のことをまとめながらチームの取り組みをご紹介したいと思います。
入社2日目からフルリモート勤務
リクパーでは、昨年4月よりフルリモート勤務となっています。
1月に入社し、初日はPC支給や入社手続きのため出勤しましたが、2日目より早速フルリモートでの勤務が始まりました。
しかも、エンジニアチームのメンバーとはほぼ顔を合わせていない状態でのリモート勤務開始。
不安・・でしたが、リクパーエンジニアチームではフルリモートでもスムーズに仕事ができるよう、いろんな工夫をしています。
◾ コミュニケーションツールの組み合わせ
チームの基本的なコミュニケーションはWorkle(ワークル)で行っています。
このWorkle、「空間型グループ会話ツール」と謳ってあるとおり、バーチャルルームに入室すると入室中のユーザーのアイコンが表示されていて、リアルのように近づくと話ができるというサービス。
リクパーエンジニアチームの部屋。背景は、先輩フロントエンドエンジニアのおきまりさんが作ってくれました!
ユーザーのアイコンも「会話する・着席中・離席中」のモードが選べる仕様になっており、顔が見えなくても話しかけやすい!
とはいえ、コードを書いていてわからない点を聞くのに口頭で説明するのも限界があるので、Slackでスクリーンショットを送ったり通話で画面共有して解決しています。
また、定例ミーティングを週に1回zoomで行い、各々自分の担当プロジェクトの進捗を報告しています。(これが、入社当時結構助かりました。自分が携わっていないプロジェクトのことが把握できます。)
このようにさまざまなツールを組み合わせることで、チームのコミュニケーションをとっています。
入社から1ヶ月、特にリモートであることの不便は感じていません。
幅広い業務内容
この1ヶ月で、
・Adobe XDを用いたデザイン作成
・新規プロジェクト打ち合わせ
・Reactでの開発
・既存システムのカスタマイズ
・サーバー開発環境構築(少し触った程度ですが)
と、入社前に自分が考えていたより、ずっと幅広い業務を行いました。
特に新規プロジェクトについては、サービスの目的から技術選定、デザインまで、フロントエンドやバックエンドの垣根を超えてチームメンバーで話し合いながら進めています。
難しいですが、これがとっても楽しい!!
ただ設計どおりにコードを書くのではなく、自分たちであれこれ考えて意見を出し合いながら、少しずつサービスを作っていくことにやりがいを感じています。
入社前は独学で勉強していましたが、実務に入ると知識不足、技術力不足を実感しています。ただ、今の自分は伸び代しかない!とポジティブに捉えて日々勉強しています。
最初にハマったnpmエラー
最後に少しだけ、入社して学んだことから1つご紹介します。
◾ npm Installの必要性
共同開発においてはソース管理にGithubを使用しています。
自分以外のメンバーがGitにpushしたコードを自分のローカルリポジトリにpullしてnpm startしたときにエラー発生。
ここでまず、npmについておさらいです。
npm (Node Package Manager:Node.jsのモジュール管理ツール)は、package.json を使って、各パッケージをインストールする
↓
npm install されたパッケージは、 node_modules ディレクトリに格納される
↓
git pullしてほかのひとがinstallしたパッケージは、package.jsonには追加されているがnode modulesには追加されていない(gitignoreのため)
↓
git pullしたあとにnpm installしてnode modulesに追加する必要がある
※pullしたあとにpackage.jsonに変更があれば自動でnpm installを走らせるライブラリもある(husky)
◾ package.jsonとpackage.lock.jsonのちがい
package.json
・npm init実行時に新規作成され、パッケージ追加時に更新される
・インストールすべきパッケージ情報+α(npm-scriptsなど)が記載されている
package.lock.json
・npm install 実行時に新規作成・更新される
・npm install で実際にインストールしたパッケージ情報が記載されている
※npm install の代わりに npm ci というコマンドを実行すると package-lock.json を元にパッケージをインストールして node_modules を作成できる=>npm ci実行により node_modules をすべて削除してパッケージをインストールされる(package.lock.jsonは更新されない)
改めて考えると当然のことですが、個人開発のときには生じなかったエラーに動揺しました。
そして、このエラーも、チームメンバーの助言により即解決しました。
優しいチームメンバーに感謝しながら、また勉強していきます。
さいごに
今回は簡単にチームの雰囲気とリモートでの取り組み、npmエラーについてご紹介しました。
また次回です。