マネーフォワード新卒2年目エンジニアのこれまでを振り返って
はじめに
この記事を書こうと思ったきっかけ
学生時代や社会人になりたての頃は、エンジニアが具体的にどのような仕事をしていて、どのような経験を積んでいるのかについて、あまり理解が深まっていませんでした。しかし、新卒2年目を終える今、自身の成長を実感するとともに、その経験を他の方々に共有することで成長を手助けできるかもしれないと感じるようになりました。そのような思いがあり、この記事を書きました。
想定読者
-
学生エンジニアの方
- マネーフォワードのエンジニアが日々どのような業務に携わっているのかを具体的に紹介します。
- 実際の仕事内容やプロジェクト内容を知ることで、将来のキャリア選択などの参考になれば嬉しいです。
-
新卒エンジニアの方
- ソフトスキルの重要性を中心に私自身の経験や学びを紹介します。
- 自分の成長を加速させるための手助けになれると嬉しいです。
自己紹介
私は工業系大学を学部で卒業し、2023年の春に新卒エンジニアとしてマネーフォワードに入社しました。大学の授業以外で学生時代は、以下のような経験を積んできました。
- モバイルアプリ開発のアルバイト(半年ほど)
- Djangoを使ったWeb開発のアルバイト(数ヶ月)
-
グラフニューラルネットワークの研究
- NLP2023での研究発表
「幅広くなんでも知りたい」という思いがあり、今のチームでもその経験を活かしつつ、日々新しいことを学びながらエンジニアとして精進しています。
自分のチームについて
私の所属するチームは、主にtoB向けプロダクトに対して「ワークフロー基盤」を提供しています。このワークフロー基盤はマイクロフロントエンド(MFE)として各プロダクトに組み込まれ、さまざまな「稟議」や「ワークフロー」の処理を支えています。
マイクロフロントエンドについて詳しく知りたい方は、以下の記事もぜひ読んでみてください。
マイクロサービスのその先へ。マネーフォワードのビジネスを加速するマイクロフロントエンドという選択
ワークフロー基盤の利用状況
現在、私たちが開発しているワークフロー基盤は以下の3つのプロダクトに導入されています。
- マネーフォワード クラウド人事管理
- マネーフォワード クラウド請求書Plus
- マネーフォワード クラウドインボイス送付
将来的には、マネーフォワードが展開しているすべてのtoB向けプロダクトで、このワークフロー基盤を利用できるようにする予定です。
これまでの仕事内容
ここからは、新卒として入社してから現在までに携わってきたプロジェクトについて簡潔に時系列で紹介します。
新卒研修
詳細
期間
- 2023年4月〜5月
内容
-
前半
- 職種問わず全新卒が集まり、社会人としての基礎を身につける研修を行いました。
- 毎日さまざまなワークを通じて、マネーフォワードのMission Vision Values Culture(MVVC)や各プロダクトなどについて理解を深めました。
-
後半
- エンジニアのみでチーム開発をする研修を行いました。
- 2,3人のチームで共通の要求仕様書をもとに、設計・開発を行い、最終日にチームで成果物の発表を実施しました。
バックエンドのテストコードのリファクタリング
詳細
期間
- 2023年5月〜6月
内容
- 基本的に1人で担当しました。
- 書き方が古いテストコードを新しい書き方へリファクタリングしました。
- テストケースが足りない箇所は適宜追加も行いました。
振り返ってみて
- テストを通じてドメイン知識を習得したり、効果的なテストの書き方を学べたりしました。
- ワークフローというドメイン知識が乏しかったので、プロダクションコードを正確に読むのに苦労しました。
- テストコードのリファクタリングを行うことで、ドメイン知識の獲得、プロダクトションコードへの理解など、開発を行なっていく上で重要なことが手を動かしながら学べるので、最初はぜひ試してみてください。
ワークフローの承認者設定の拡張
詳細
期間
- 2023年7月〜10月
内容
- 2人で担当し、バックエンドの一部とフロントエンドの全てを開発しました。
- ワークフローの各ステップで指定できる承認者の範囲を拡張する実装を行いました。
- 既存の機能では「従業員」「役職」のみ承認者として指定可能でしたが、新たに「組織」「所属組織」でも承認者を指定できるよう拡張を行いました。
- 具体的には、以下の機能をリリースしました。
振り返ってみて
- フロントエンドの開発経験は少なかったので、キャッチアップに多くの時間がかかりました。
- 特に、データをストアでどのように管理しているのかを理解するのに時間がかかりました。
- すぐに手を動かすことが多く、無駄に時間をかけてしまったこともあったので、コード全体をまずは把握してから手を動かすようにすると良いと思います。
- 初めての機能リリースに携われたのは、すごく嬉しかった記憶です。
データ分析基盤へのデータ転送のパイプライン構築
詳細
期間
- 2023年11月
内容
- 基本的に1人で担当しました。
- ワークフロー基盤のデータをデータ分析基盤へ連携するためのパイプラインを設計・構築しました。
- 分析に必要な追加データを取得する実装も行い、ワークフローの利用状況をより正確に把握できるようにしました。
振り返ってみて
- 他チームと連携して、パイプラインを構築する必要があったので、他のチームとプロジェクトを前に進める方法について学びがありました。
- 自分のチーム以上に他チームとのコミュニケーションは曖昧さを残さず、すぐにレスポンスを行い、プロジェクトを前に進めるようにすると良いです。
- インフラへ変更を加える必要があったので、触ったことがあまりない技術に触れる良い機会になりました。
- インフラへ変更を加える上でAWSやterraformについてもある程度知る必要があったので、普段触ることがなくても適宜キャッチアップをしておくと、今後にも活かせると思いました。
ワークフロー設定画面のリニューアル&フロントエンドの大規模リファクタリング
詳細
期間
- 2023年12月〜2024年6月
内容
- 4人で担当し、主にフロントエンドの開発を行いました。
- フロントエンドのアーキテクチャをFeature-Sliced Designに切り替えるリファクタリングを行いました。
- UI/UXをよりリッチにし、操作性の高いワークフロー設定画面を実現しました。
- 具体的には、以下の機能をリリースしました。
振り返ってみて
- 大きなリファクタリングを伴う開発だったため、変更箇所が多くチーム全体での情報共有の重要性を学びました。
- 結果的に画面の利便性・システムの保守性ともに向上し、今後の追加機能開発が進めやすくなったと感じています。
メール通知機能の拡張
詳細
期間
- 2024年7月
内容
- 2人で担当し、主にバックエンドの開発を行いました。
- 社内のメール基盤を用いて、一括操作をメールで通知できるような拡張を行いました。
- また、マネーフォワード クラウドインボイス送付への組み込み要件として必要だったため、実装しました。
振り返ってみて
- メール通知に関する知見を獲得できたので、良い経験になりました。
- 今回は社内のメール基盤を用いたので、どのようなサービスとして提供されていて使用できるかを知るきっかけになりました。
- 自分たちのシステムに他のサービスを組み込む際は、しっかりと内容を把握しておくと、今後の拡張などで活きてくると思います。
- システムの安全性を意識した開発ができたので、よかったです。
- 品質を優先して、少しだけ開発期間を延長する判断を行えたのが良かったです。
ワークフロー設定の新機能追加
詳細
期間
- 2024年8月〜11月
内容
- 4人で担当し、主にフロントエンド開発を行いました。
- ワークフローの経路を条件で分岐できる新機能を実装しました。
- 申請者の組織や役職などの条件で分岐経路を切り替えられるように実装しました。
- 具体的には、以下の機能をリリースしました。
振り返ってみて
- 条件分岐によってワークフローの柔軟度が上がる反面、複雑なテストケースを考慮する必要があったのは良い学びになりました。
- 前回の大規模リファクタリングのおかげで、早く安全に実装が行えたので、リファクタリングの重要性を強く感じました。
ソフトスキル向上のためにやってよかったこと
エンジニアとしてハードスキルを向上させることは大事ですが、チーム開発を行なっていく上では、ソフトスキルを鍛えることも非常に大切です。また、ソフトスキルはハードスキル同様に簡単に身につくものではありません。そのため今回は、私が、ソフトスキルを向上させるためにもやってよかったことを紹介します。
コミュニケーションの質を高めること
-
ハイコンテキストとローコンテキストの使い分けを意識したコミュニケーションをとるようにしました。
- 初めはローコンテキストをベースに、「どこまで相手に伝わっているか」を常に意識し、時には確認することで、質を高めました。
- 慣れてきたら、少しずつハイコンテキストなコミュニケーションとのバランスを取るようにしました。
- こまめな確認と適切な情報共有を意識的に行うようにしました。
上記の図は、株式会社ネットコマースのブログ記事「DX/変革はローコンテクストを前提に」から引用しています。
計画したことを常に達成し続けること
- 「言ったこと・決めたこと」を必ず達成する姿勢をもつようにしました。
- 達成できなかった場合は、原因を追求し、次に活かすようにしました。
- 達成できた場合は、どうすればもっとタスクをこなせるかを振り返るようにしました。
- 優先度の決め方やタスクの内容など分からない場合は周囲に相談し、サポートを得るようにしました。
定期的に振り返りを行うこと
- 目標に対し、成果やプロセスを整理して、記録するようにしました。
- 他の人が見た時にも理解がしやすい構成や文章を心掛けました。
- 早いうちに振り返りの型を作ると効率良く進めることができます。
- 毎月の振り返りを行うと、半期・年単位の振り返りに効果的です。
視座を上げて視野を広げていくこと
- 自分が担当する部分に慣れたら、他のメンバーやチームにも目を向けて行動するようにしました。
- 他の人の動きに興味を持つことで学びや発見が増え、結果的に自分の可能性を広げられます。
- また、単に自分のスキルを高めるだけでなく、チーム全体の成果を向上させる一助となり、結果的に自分自身の成長や可能性の幅を広げることにもつながりました。
英語環境で働くことに関して
マネーフォワードでは、エンジニア組織の完全英語化を行なっているため、そのことにも少し触れたいと思います。下記の記事に詳しい内容が紹介されていますので、興味のある方はぜひご覧ください。
エンジニア採用の未来:マネーフォワードが挑んだ「エンジニア組織完全英語化」の真相
入社当初は、Slackでのコミュニケーション、設計資料、チームイベントのドキュメント、ミーティングなど、あらゆる場面で英語が必要な環境だったので、正直苦労しました。
しかし、会社から学習時間や機会が与えられており、メンバー間でも学習を促すようなコミュニケーションをとっていたので、半年ほどでTOEICで700点以上&PROGOSでB1以上を取得できました。
英語に触れ合う機会が多いことと継続できる環境が非常に大きかったと思います。
英語が少しずつできるようになってくると、それが楽しくなってさらに勉強を行います。今では、その良い循環になってきたので、このまま継続して勉強していきたいと思っています。
これから
入社当初に比べてハードスキル、ソフトスキルの両方が大きく成長できたと思います。
そのおかげで、抽象度が高く難しい仕事を任せてもらえるようになってきました。
今後は、単に開発を行なっていくのではなく、以下の点に注力していきたいと思っています。
- Whyの部分から追求し、理解した上でユーザの課題に向き合った最適な開発が行う
- ワークフローに関するユーザの潜在的な課題や市場の課題に目を向ける
最後まで読んでいただきありがとうございました。
Discussion