こんにちは! 株式会社Hajimari22卒エンジニアの神野 凌太郎です。
普段は、事業部づけのエンジニアとして人事プロパートナーズの開発業務を担当しています。 内定者インターン〜新卒入社後の期間、人事プロパートナーズの開発と並行して 新規サービス「アミーチ」の開発・立ち上げを1人で行いました。
今回は、実際に新規事業の開発・立ち上げを行なって、学んだこと・反省点をまとめてお伝えできればと思います!
■新規サービス「アミーチ」概要
『人事専門型の求人サイト』として立ち上げたサービスです。 もともと、人事プロパートナーズ内で人材紹介を行なっており、 その専用サイトを立ち上げようというところからスタートしています。
人事を扱う求人サイトだからこそ、学校の保健室のように、 気軽にキャリアを考えられる、そんな求人サイトを作りたいという思いから、 「アミーチ」の立ち上げがスタートしました。
現在、リリースから約2ヶ月たち、 ユーザー数、求人数ともに右肩上がりで増えていますので、 正社員人事を採用したい企業様、人事職にチャレンジしたい、キャリアアップをしたいとお考えの求職者様、ぜひご登録をお待ちしております!
■開発に着手するまで
開発をするにあたって、まずざっくりとした要件定義を行いました。 後述しますが、当時は何よりも早く開発することを優先していたため、 開発の段階では「ざっくりと要件を詰めれば良い」という認識でいました。
サイトに関しては、先に求人を募るために TO B → TO Cサイトの順でリリースを目指すことになりました。
具体的なスケジュールとしては、 TO B向けサイトは5月末、TO C向けサイトは6月中旬のリリースを目指しました。
技術選定は、Laravelとvue.jsを利用し、デザイン部分はbootstrapを利用することにしました。
サービスの立ち上げ・開発自体が初めての経験であったかつ、 1人で開発を行う(LPは外注しました)という状況だったので、 不安を抱えながら開発をすることになりました。
■開発過程〜リリースに至るまで
実際、TO B向けサイトは5月末、TO C向けサイトは6月中旬と スケジュール通りにリリースまで持っていくことができました。 しかし、リリースに至るまでいくつものハードルがありました。
要件が途中でいくつも変更があったこと
最も大変だったハードルは、「途中で要件が変わること」でした。
もともとフワッと始まったプロジェクトだったので、 要件をガチガチに決めていなかったこともあり、ビジネスサイドとの認識齟齬がある状態で 開発を進めてしまったためです。
特に、リリース直前にいくつか改善案や意見をもらったときは、 「本当にリリースできるのか?」と思ったくらい絶望的な状態でした。
ただ、もともとひいていたスケジュールより、 前倒しして開発を進めていたので、優先順位をつけて対応することで リリース時期がズレることなく、リリースすることができました。
学んだこととしては、
- 時間がかかっても、要件定義はガチガチに固めてから開発をすること
- キャパを越えそうなときは、優先順位を目に見える形で洗い出してから対応すること
です。
要件定義は、開発スピードを優先していたとしても、 きちんと行なったほうがスムーズに開発できることを身を持って知りました。(当たり前のことかもしれませんが) 最低でも、「テーブル定義」「機能設計」「画面設計」「URI設計」「モデル図」くらいは行なったほうが良いと思います。 アウトプットをあらかじめ行なっておくことで、プロジェクトメンバーとコンセンサスが取れている状態で認識齟齬なく開発を行うことができます。
メインサービス「人事プロ」との開発両立
2つ目は、「サービス開発の両立」です。 弊事業部では、エンジニア2人チームで行っているため、 新規サービスの開発だけに専念できるわけではありません。
別で、先輩エンジニアが大規模の新規サービス開発を行なっていたため、 そちらの開発にかかっきりな状態ということもあり、 メインサービスの「人事プロ」の開発業務も兼任していました。
新規サービスを立ち上げをするにあたって、 大前提メインの事業の収支を成り立たせないといけません。
また事業自体が少数精鋭で運営しているので、 エンジニア観点から常にインパクトのある改善、開発を行なっていく必要があります。
新規プロダクトの開発は楽しいし、やりがいもある一方で、 会社や事業部の誰かがメインの事業にコミットして数字を成り立たせてくれるからこそ、 チャレンジができます。
両立はすごく大変でしたが、改めて数字を成り立たせる重要性を身を持って体感しました。
不安との葛藤
1人で開発していたということもあり、常に不安との葛藤がありました。 特に、技術が成熟しているわけでもなく、「このコード設計で問題なく動くのかな…」といった不安は常につきまとっていました。
加えて、リソースもギリギリな状態で開発を行なっていたので、 納期へのプレッシャーもたくさんありました。
不安を解消するために行なったことは、 開発後の「セルフレビュー」と「テスト」です。
自分が書いたコードが動くわけがないという視点で セルフレビューとテストを行うことによって、サービスのクオリティを維持することができました。
学んだこととしては、開発をひと段落した後に安堵、過信をしないこと。 繰り返し確認・テストすることで、サービスクオリティ維持、不安の解消に繋がることを身を持って知ることができました。
■まとめ
新卒入社でいきなり新規サービスの開発を任される経験は滅多にないと思うので、 かなり良い経験でした!
実際に開発が終わり、リリースした時の感動は凄まじかった…!
まだサービスの改善をするところはたくさんあるので、 より良いサービスを目指して、日々開発に勤しもうと思います!
最後まで読んでいただきありがとうございました!
株式会社Hajimariでは、Laravelをメイン言語として自社開発・受託開発を行なっており、
一緒に開発を行なっていただけるエンジニア募集しています!
長野拠点の立ち上げメンバーも大募集しています!
興味のある方は以下の記事をぜひご覧ください!
みなさまとお会いできるのを心からお待ちしております!