2年目エンジニアが新卒に贈る成長のコツ

こんにちは、VOYAGE MARKETING新卒2年目エンジニアのかいくんです。
去年、ビジネス視点を持ったエンジニアになるためにVOYAGE GROUPに入社しました。入社後は新設されたアプリチームに配属してもらい、アプリ開発未経験ながら気合でアプリを開発してきました!

今回は僕が入社後に学んだ成長のコツを紹介していきます。

目次

仕事内容

僕が開発しているアプリはECナビアンケートです。
アンケートに回答するとポイントが貯まって、現金やAmazonギフト券などに交換できるサービスです。

ECナビアンケート

ECナビアンケート

  • EC Navi Apps
  • ライフスタイル
  • 無料
apps.apple.com

このアプリはディレクター2人、エンジニア3人、デザイナー1人の計6人で開発しています。

仕事はミーティングから始まります。ミーティングではチーム全員で何に取り組むかについて話し合います。 エンジニアやデザイナーであっても売上やユーザー動向を把握して、機能や案件の提案を行っています。 取り組む内容が決まったら仮説を立てて検証を行います。 そして検証結果を元にまたミーティングを行うという流れで進めています。

f:id:Kai-kun:20200428172125p:plain:w400

2年目エンジニアが新卒に贈る成長のコツ

事業を理解しよう

提案や方針に対して意見を言うには、事業の理解が必要です。

僕は新卒エンジニアであっても提案や方針に対して意見が言える環境にいました。 そのため「バンバン意見を言って活躍するぞ!」と気合を入れてミーティングに参加していました。 しかし、ミーティングで意見を言うのは簡単ではありませんでした。

それはチームが置かれている状況、業界やユーザーの動向など事業についての理解がなかったからです。 例えば、売上増加を目標としたミーティングでは何をすれば売上が伸びるのかわからず、全く意見が言えませんでした。

そんな僕が事業を理解するために行った2つの取り組みを紹介します。

1. 表・グラフ・ログを確認する

サービスの開発や運用に携わっている方は業界やユーザーの動向を知るために、日々何かの表やグラフ、またはログを確認しています。これらを確認すれば事業の理解を深められます。

例えば僕のチームのディレクターは、スプレッドシートに売上項目を分類して、項目ごとにユーザー1人当たりの売上の目標と実績をまとめています。 このスプレッドシートを確認すると、影響が大きい売上項目や、目標と実績が乖離している売上項目がわかります。

このような売上に関する情報があれば、売上増加を目標としたミーティングで、より売上に影響のある提案ができたり、目標と実績の乖離について質問して議論を活発化することができたと思います。

表・グラフ・ログを確認して事業の理解を深めましょう。

2. 目標と指標が選ばれた背景を知る

仕事には目標があります。そして目標が達せられたか判断するために指標を定めています。 目標と指標が選ばれた背景を知れば、事業の理解を深められます。

例えば僕のチームでは、ユーザー1人当たりの売上増加を目標としています。そしてアプリリリース後の最初の指標は「長期にわたってアプリでポイントを獲得しているユーザー数の増加」でした。

最初の指標を「長期にわたってアプリでポイントを獲得しているユーザー数の増加」としていたのは、アンケート回答による売上は少ないため、長い間サービスを利用してくれなければユーザーを獲得するためにかかった費用が回収できないからです。 このような背景を知っていれば、売上増加を目標としたミーティングで、直接売上を伸ばすための提案だけでなく、ユーザーを獲得するためにかかっている費用を下げるといった違った視点で意見が言えたかもしれません。

目標と指標が選ばれた背景から事業の理解を深めましょう。

優先度を決めて取り組もう

やりたいことがたくさんあるのに対して、やれることはとても少ないのです。 何が必要なのかを判断して優先度を決めて取り組みましょう。

優先度を決める時は、指標やサービス価値に対する影響の大きさを考えると良いと思います。 指標を達成するためには影響の大きい課題から取り組みます。 またサービスでエラーが起きた場合は、サービス価値に及ぼす影響の大きさで取り組む優先度を判断します。

入社したての頃の僕は「すごい新卒だと思われたい」「良いサービスを作りたい」「コードを綺麗にしたい」という気持ちに溢れていました。 そのため「コードが微妙だから新しい書き方にリファクタリングしたい」「放置されているエラーを直したい」といった感じで、目についたものに片っ端から取り組もうとしていました。

しかし片っ端から仕事に取り組むのはよくありませんでした。 取り組める仕事は限りなくあり、終わらないからです。 また無駄な仕事に時間を使って、必要な仕事ができないのは本末転倒です。 先輩にはよく「それは今やらなくて良いよ」と注意されていました。

特に優先度を決める必要を感じたのはアプリのリリース前です。 アプリをリリース予定日までに使えるようにするため、サービス価値に影響の大きい機能を優先的に実装しました。 例えば、会員登録機能やアンケート回答機能です。 デイリーコンテンツや広告といったサービス価値への影響が比較的小さいものは、初回リリース時の実装から省きました。

影響の大きさから何が必要か判断して、優先度を決めて取り組みましょう。

コードレビューで質問しよう

コードレビューで成長するコツは、なぜそのようにコードを書いたのか質問することです。

できるエンジニアの設計には意図があります。 それは責務の分け方、状態や依存の管理の仕方、将来の拡張や運用を反映した設計など様々です。
コードレビューをする際は、そのコードが問題なく動くかを確認するだけではなく、なぜそのように書いたのか?と疑問を持ち、開発したエンジニアと議論を交わすことで成長できると思います。

取り組む課題が大きい、開発期間が短いといった時に、新卒の自分にできる仕事がないこともありました。
「できる仕事がなくて悔しい!でも成長しなければできないまま。」
「やることがなくて、どうしたら良いのかわからない。」
そんな辛い時期もあります。
そういう時は先輩のコードレビューを通じて成長できました。

例えば、どれだけコードを作り込むかはその時々で判断するべきだと学びました。 すぐに削除されるコードであれば、無駄にクラスを分ける必要はないでしょう。if文を追加するだけの最低限の実装とテストで良いかもしれません。またコードが今後どのように改修されるかわかっていない場合は、理解しやすいようにシンプルに実装した方が良いと思います。間違って抽象化されたコードは分かりづらく改修しにくくなってしまうからです。

このようにコードレビューから様々な設計を知り、新たなコードの書き方を身に付けられます。

まとめ

今回は僕が入社後に学んだ成長のコツを3つ紹介しました。

  • 提案や方針に対して意見を言うには事業を理解している必要があります。事業に関する数値や、目標と指標の背景から事業の理解を深めましょう
  • やりたいことがたくさんあるのに対して、やれることはとても少ないです。影響の大きさから優先度を決めて仕事に取り組みましょう。
  • できるエンジニアの設計には意図があります。コードレビューの時はなぜそのように実装したか質問して吸収しましょう。

入社からの1年はあっという間でした。 様々な経験をさせてもらい、たくさんの学びがありました。 そして経験や学びの分だけ、成長や挑戦の機会がありました。

答えのない課題に対して、チームで考え、行動していくのは非常に面白いです。 失敗を恐れず、引き続き頑張っていこうと思います。