新卒1年目のエンジニアがプロジェクトの開発に一人で挑戦した話

こんにちは。

ホワイトプラスに2019年に新卒エンジニアとして入社しました杉山です。
私の入社エントリーはこちらをご覧ください。

現在は、自宅にいたまま出せるネット宅配型のクリーニング「リネット」のマーケティング領域のエンジニアを担当しています。

入社後は3ヶ月の間に各部署の働き方や「リネット」のサービスの仕組みの全体像を学ぶ新卒研修を行なったのち、エンジニアとしてマーケティングの施策や運用のためのツールなどを、ReactやPHP、Goなどの言語を使用し開発しています。

プロジェクト内容

新卒研修後、エンジニア業務に携わってから初のプロジェクトとして参加したのは、LINE公式アカウントへの移行プロジェクトでした。

LINE@からLINE公式アカウントへのサービス統合に伴い、公式アカウントの運用の見直しが行われました。

今回のプロジェクトでは「LINEアカウント連携」「配信機能」の開発が必要です。

新規開発が必要な部分が何点かあり、中でもマーケターが利用するLINE配信管理画面の開発では、自分の得意とするフロントエンドの技術を活かす機会だと感じ、エンジニアとして参加しました。

調査

まずは、LINEのアカウント連携、マルチキャスト配信の機能を調べます。LINEのプラットフォームにて用意されているAPIを使用するので、プロジェクトで実現可能の範囲を調査する必要があります。幸い必要となるLINEのAPIドキュメントは丁寧に整備されており、またSDKも用意されていました。

そこで、開発専用のLINE公式アカウントを作成し実際にコードを書き動作を確認しながら、調査を進めました。

開発専用のLINE公式アカウントでのテスト画面

調査した結果から判断した開発工数の見積もりや実現できる内容は、プロジェクトメンバーへと共有し、施策の詳細や運用方法が決定しました。

設計

変更点や新規開発の多い開発だったため、多くの設計が必須でした。要件を満たし取り残しがないか、タスクは何があるのか、レビュワーや今後開発に携わるメンバーが理解できるかなどさまざまな点に気をつける必要があります。

設計はすべて1つのGoogle スライドにて管理し、全体のアーキテクチャ図、フロー図から詳細な要件や技術内容まで細かく作成しました。

全体の使用技術としては下記のようになりました。

  • LINE Platformとの連携
    • 言語: Go
    • 動作環境: Google Cloud Functions 
    • DB: Google Cloud Datastore
  • ユーザーのアカウント連携設定画面
    • 言語: PHP(Laravel)
  • アカウント連携機能/配信管理
    • 言語: Go
  • LINE配信管理画面
    • 言語: React + TypeScript

「リネット」で初めて挑戦する分野が多く、とてもやりがいのある内容となりました。

開発工数はWBSを用いてタスクを洗い出し、それぞれに開発工数を見積もりGoogle Sheetsへとガントチャートとしてまとめました。また、Google Calendarにも見積もりの分のイベントを登録させ、今日はどのタスクをやればいいのか、どこまで進めればいいのかわかるようにしました。

自身の実力がサービスの品質に直結する環境

今回のプロジェクトでは、スケジュール管理->要件の提案->調査->設計->実装->テスト->保守/改修まで、一連の流れをすべて経験できる機会でした。すでに出来上がった仕様に則り、開発だけするのではなく、マーケティングチームと、どのようにして「リネット」をより良いサービスにするか、エンジニアだからこそ思いつく考えなどを議論しあい、一丸となって進めていきます。

実際の開発では自分の実力がそのままサービスのクオリティーに繋がってきます。今回のプロジェクトでも、お客様へ配信されるメッセージの柔軟性、配信ツールを利用するマーケターの効率、今後の開発コストへと関係してきます。

1ヶ月以上かかる開発業務を一人で行う経験は初めてということもあり、とにかく新しいことへの挑戦の日々でした。

それでも過去のプロジェクトの資料やエンジニアチームはもちろん、他業種の先輩方からもアドバイスを随時もらえる環境だったため、手探りながらも進めていくことができました。

不安との戦い

プロジェクト開始当初はガントチャート通りタスクが進んでいましたが、徐々に遅れが発生しはじめました。開発の途中に、設計時点では想定していなかった改修の発生や、工数の見積もりが少なすぎたなどさまざまな原因があります。

遅れているタスクや想定外の改修をバッファ内で終わらせると考え、再度工数見積もりの実施をすぐにしなかったため、計画と開発状況が同期しておらず残りタスクの見通しや各タスクの開発期間があわない問題などが発生しました。客観的に自分がどのような状態にあるのか把握できず、開発に遅れている段階で具体的にどのようなアクションを起こすのが正しいのかが判断できていませんでした。

また、詳細まで調査した結果判明した問題点や、再現性の低いトラブルなどは自分自身で解決するしかなく、解決した結果も関係者は自分一人のため共有することもなく、常に自分との戦いでした。

しかし進捗に遅れが出てきた際には、メンバーが開発を手伝ってくださったり、先輩方は1on1のみならず日頃から気にかけてくださり、不安ながらも開発を進めることができました。

マーケのCRMマネージャーと改修の確認など何回もMTG

学び

1.タスク/スケジュール管理

開発をする中、新たに必要になったタスクや、スケジュールの遅れは今回のプロジェクトに限らず必ず発生するものだと考えた上で、バッファにすべて頼らず都度更新するべきでした。またそれに伴いタスク、スケジュール管理を行うツールは、随時柔軟に変更が容易にできるものかつ単一の信頼できるものをにするべきでした。

2.コミュニケーション

一人でプロジェクト開発を担当すると、業務内容の細かい共有の必要がなく、それに伴いコミュニケーションが少なくなってしまいました。また、随時自分がわからない内容だけを相談するだけでは、視野が狭くなっていたりプロジェクトの進捗の全体像が共有できません。そのため、週1回以上の定期的なプロジェクト全体から見た進捗や開発の発表を行いフィードバックを行うべきでした。

まとめ

今回のプロジェクトにて、自分が携わった開発が実際にリリースされ、「リネット」のサービスとしてお客様に利用されることは、純粋に嬉しくエンジニアとしても大きな達成感を得られました。

ホワイトプラスでは新しい取り組みへ積極的に挑戦でき、自分の実現したい内容をレビューしていただいた上、フルに発揮できる環境です。

特に、ホワイトプラスのマーケティング領域のエンジニアは、マーケッターと協力しながら「リネット」のサービスを成長させるために、エンジニアとしてどう貢献できるかを考え、提案し、実現していくことができます。

新卒から自分の実力でサービスの成長に挑戦していきたい方、この記事に少しでも興味を持った方、是非お気軽に面談にお越しください!

ホワプラで働くエンジニアの話を聞いてみたい方はこちら。

杉山 希望(すぎやま のぞみ)
2019年 日本工学院八王子専門学校 ITスペシャリスト科を卒業。新卒でホワイトプラスに入社後、エンジニアとしてホワイトプラスに入社。学生時代でのアルバイトやインターン、コンテスト運営などの経験を生かし、リネットの開発に携わる。趣味は釣り、麻雀、ラーメン。

記事をシェアする