新卒バックエンドエンジニアとして働き始めて数か月が経ちました。
お猿SEは現在、週四リモート、週一出社でPHPとRubyを使用したWeb開発に携わっています。
今回はリモートワーク中心のバックエンドエンジニアの業務についてお伝えしていきます。
具体的に伝えていくよ!
開発環境とツール
まずは現在の開発環境について紹介します。
技術スタック
- 使用言語:PHP, Ruby
- フレームワーク:Symfony, Ruby onRails
- データベース:Oracle, MySQL, Redis(キャッシュ)
- インフラ:AWS各種サービス
- CI/CD:GitHub
- プロジェクト管理:JIRA
リモートワーク環境
- M1 MacBook Pro(会社支給)
- 27インチ4Kディスプレイ
- SoftBank光回線
- 昇降型デスク
- 仕事専用部屋
開発環境のポイント
- デュアルディスプレイの効果的な使い分け
- 左:ブラウザ、ドキュメント、チャット
- 右:開発環境(エディタ、ターミナル)
- 作業場所の確保
- 集中できる専用部屋
- 適切な照明と温度管理
- 昇降型デスク
- 基本座りっぱなしなので、適度に気持ちを切り替えられる
価格:19999円~ |
1日のタイムスケジュール
7:30~9:00 -朝の準備, 勉強
- 7:30:起床、ストレッチと軽い運動
- ~8:15:朝食と身支度(基本バナナ1本とプロテイン1杯)
- 頭をクリアにするため必要最低限
- ~9:00:読書、自主学習
- 今自分に足りない分野などの技術書を読んだりしています
9:00~11:00 -開発作業
この時間帯は、頭がすっきりしている時間帯なので、重たいタスクなどを優先的に行っています。
また、チーム全体が揃っている時間をいかして、レビューやペアプログラミングなどもたまに行います。
主な作業内容:
- プルリクエストのレビュー対応
- 機能開発やバグ修正
- テストケース作成
- ドキュメント更新
11:00~12:00 -リリース作業
自分でリリース時間を決めれたりすることもありますが、そんな時は午前中にリリース作業を行います。
理由:
- チーム全体のサポート体制が整っている
- 問題発生時の対応余力がある
既に何回かリリース作業は行っているけど、いまだに緊張してる….
リリースフロー詳細
- リリース前までに行うこと
- プレリリースチェック
- テスト結果の確認
- 設定値の検証
- データベースマイグレーション確認
- ロールバックプランの確認
- ステージング環境デプロイ
- 動作確認
- パフォーマンステスト
- セキュリティチェック
- プレリリースチェック
- リリース作業で行うこと
- 本番環境デプロイ
- 段階的なデプロイ
- ヘルスチェック
- メトリクス監視
- ポストリリース確認
- エラーログ監視
- パフォーマンス計測
- ユーザー影響の確認
- 本番環境デプロイ
12:00~13:00 -お昼時間
お昼は作り置きを食べたり、簡単に済ますことは多いです。
コンビニは高いからなるべく自炊を!
お昼時間にすること:
- 技術記事のキャッチアップ
- リフレッシュ散歩
13:00~15:00 -集中開発時間
午後の開発時間午前の続きや、比較的軽い機能開発や技術検証に充てています。
開発プロセスでの工夫:
- ポモドーロテクニックの活用
- 25分開発+5分休憩
- 集中力の維持管理
- タスク管理の細分化
- 2時間以内で完了できるサイズに分割
- 依存関係の明確化
- 品質管理の徹底
- テスト駆動開発の実践
- コードレビューチェックリストの活用
- 性的解析ツールの導入
15:00~16:00 -チームミーティング
現在は週1回の部内ミーティング、週2回のチームミーティングがあります。
このミーティングは、リモートワークにおける重要な同期ポイントです。
ミーティングの構成:
- スプリントの進捗確認
- 担当タスクの状況共有
- 次のタスクの確認
- 技術的な議論
- アーキテクチャの検討
- 障害報告と対策
- パフォーマンス改善案
- チーム運営
- 次回リリーススケジュール
- イベントや勉強会の案内
- チーム制度の改善提案
16:00~17:00 -他部署との連係
合間合間で勿論チャットツールで連携は取っていますが、この時間は生産性も落ちてくるので簡単作業の時間にしたりしています。
リモートワークでの部署連係における工夫:
- コミュニケーションツールの使い分け
- Slack:即時の質問や確認
- Zoom:詳細の説明や議論
- Miro:図解やブレインストーミング
- ドキュメンテーションの徹底
- API仕様書の自動生成と管理
- システム構成図の定期更新
- 障害対応フローの文書化
- ナレッジベースの整備
17:00~18:00 -振り返りと学習
日々の業務の質を高めるための施策:
- 振り返りの習慣化
- 開発日報の作成
- 学んだことのメモ化
- 改善ポイントの洗い出し
- 技術力向上への取り組み
- 社内勉強会への参加
- 技術書籍の読み込み
- ハンズオン形式の技術共有
リモートワークでの成功のコツ
数か月を経て気づいた、リモートワークでの成功のコツを列挙します。
非同期コミュニケーションの最適化
- 質問や報告は文章で明確に
- スクリーンショットや図解の活用
- タイムゾーンを考慮した連絡
心身の健康管理
- 定期的な休憩と運動
- 作業姿勢への注意
- オフラインでリフレッシュ
生産性の向上
- タスクの可視化と優先順位付け
- 集中時間の確保
- 自動化の積極的な活用
直面した課題と解決策
お猿SEが実際に直面した課題とその時の解決策について列挙します。
コミュニケーション不足
リモートワーク中心の業務なので、やはりコミュニケーション不足を感じることは多々あります。
なので、途中からですがこんなことを意識、実施して改善を行いました。
- 週2回のミーティングの質向上
- 雑談チャンネルの活性化
- 定期的な1on1ミーティング
技術的な壁
まだまだ、技術で劣っている部分が多く、数ヵ月では自身の技術力が向上しているかは感じにくいです。
しかし、コツコツと実践あるのみです。
- チーム内勉強会の開催
- レビュー依頼で返ってきた内容を深く理解する
- 技術検証時間の確保
モチベーション管理
リモートワーク中心だとモチベーションが保ちにくいという人も多いと思います。
お猿SEもそうでした。
そんな時は以下のようなことを実践、意識しました。
- 小さな成功の共有
- 技術ブログの執筆
- 社外コミュニティへの参加
これからのキャリア目標
現在お猿SEは以下のような目標を掲げながら、日々の業務に取り組んでいます。
皆さんも参考にしてみてください。
短期目標(3~6ヵ月)
- 担当機能の保守運用の完全習得
- チーム内でのナレッジ共有
- スピード感を持って取り組む
中期目標(1年)
- アーキテクチャ設計への参画
- 後輩エンジニアのメンタリング
- 一人で業務をこなせるようになる
長期目標(2~3年)
- 技術リード職への成長
- 開発リードでより良いプロダクトを生み出し続ける
- プロジェクトマネジメントスキルの獲得
最後に
バックエンドエンジニア1年目は、技術力の向上だけでなく、リモートワークならではの働き方の確立にも注力していきました。
特に、コミュニケーションを核として効率的な開発プロセスを実現できるように試行錯誤を重ねています。
これから就職される方々へ:
リモートワークでは自己管理能力が重要です。
しかしそれ以上にチームとの信頼関係構築が成功のカギとなります。
技術力向上はもちろんですが、コミュニケーション力も意識して磨いていくといいでしょう。
最後に、この記事が誰かの参考になれば幸いです。
皆さんも、自分なりの働き方を見つけ、充実したエンジニアライフを送ってください。