ゴールデンウィークが明け、新たな気持ちで業務に取り組まれている方も多いのではないでしょうか。
長期休暇は、日々の業務から離れて立ち止まり、これまでの歩みを振り返ったり、今後の目標を再確認したりする良い機会になりますよね。
今回、私が株式会社ニーリーに入社してちょうど1年という節目を迎えましたので、この1年間を振り返る在籍エントリーをお届けしたいと思います。
テックブログなのに技術の話じゃないのか、といったツッコミもあるかと思いますが、「妖怪テックブログ」こと菊地さんが率先して書いてくださったので、それに倣おうと思います。
妖怪テックブログについてはコチラ nealle-dev.hatenablog.com
入社後1年を振り返る
元々経営コンサルタントだった私は3年前にWEBエンジニアへ転身し、IT企業2社目として選んだのがニーリーでした。
1年前のブログでは「チャレンジしがいのある課題がたくさんあってエンジニアとして成長できる環境」を求めて入社したと綴りましたが、この1年を振り返ると思惑通りたくさんの困難と成長機会に恵まれたと感じています。
入社当時の話はこちらにまとめております。 note.nealle.com
想像以上の成長スピード、伴って増えるトイル
入社してまず驚いたのは、会社の成長スピードでした。売上規模や提供するサービス「Park Direct」の進化のスピードは、想像を遥かに超えていました。
会社の成長に伴い、サービス利用者が増加するにつれて、自動化されていない定型業務(いわゆるトイル)が業務効率を圧迫するという課題も顕在化してきました。
プロダクトエンジニアのメイン業務はサービス自体の価値を向上させるような新機能の開発ですが、トイル撲滅も並行して行う必要があるんだなと気づきました。
一石二鳥な開発、マイページの機能追加
Park Direct では、駐車場を借りる「利用者様向けのサイト」と、駐車場を貸す「管理会社様向けのサイト」があります。私は「利用者様向けのサイト」の開発を担当することが多く、中でも契約者様が利用するマイページの機能追加を多く行ってきました。1年目から担当領域を持つことができ嬉しく思っています。
入社から4ヶ月〜半年頃に「契約書・請求書・領収書をユーザー自身でダウンロードできる機能」をマイページに追加しました。 以前はサポートに問い合わせなければ再発行できなかった契約書ですが、今ではユーザー自身で再発行できるようになりました。 また、請求書・領収書についても、発行可能な条件を満たせばマイページからダウンロードできるようになりました。
ユーザーの利便性向上と同時に、社内業務の効率化にも繋がる施策は、まさに一石二鳥だと感じています。
ちなみに、マイページはまだまだ進化を続けています!
直近では申込者様がサイト上で申込内容や審査状況をリアルタイムに確認できるようになりました。他にも、提携サービスのクーポンがマイページを通じて利用できるなど、その利便性は日々向上しています。
わかりやすい機能追加なのでユーザー体験の向上を実感ができ、大きなやりがいを感じますね。
事業ドメインの複雑さ
駐車場特有のルールや会計などの専門知識をシステムに落とし込むためには、業務理解が不可欠で、駐車場ビジネスという事業ドメインの複雑さには何度も頭を悩まされました。
例えば前述の請求書・領収書の発行ルールはなかなかに複雑で、法的な視点や運用上の問題がないかなど、気にするポイントが多かったです。
駐車場ビジネスという専門性の高い領域の知識は、一朝一夕に習得できるものではありません。しかし、日々の業務を通して、運用に最適化された設計や、顧客、関係各所への影響を考慮した優先順位付けができるよう、着実に成長していきたいと考えています。
アーキテクチャとビジネスロジック
この1年で直面した技術的な壁の一つは、バックエンドのアーキテクチャが複数混在していたことでした。アーキテクチャごとに実装パターンが異なるのですが、特にオニオンアーキテクチャが採用されている部分は実装自体が複雑な上にドメイン知識も深く求められるため、キャッチアップに時間を要しました。
キャッチアップでは、先輩方からビジネスロジックの詳細や、各アーキテクチャ層の責務について丁寧に教えていただいたのはもちろんのこと、『現場で役立つシステム設計の原則』や『ドメイン駆動設計 モデリング/実装ガイド』といった書籍を参考にしたり、現状のアーキテクチャをモデル図として書き起こしてみることで、理解を深めていきました。
単にコードを書くだけでなく、ビジネスロジックを深く理解することで、どの層に何を実装すべきか、なぜその設計になっているのかが明確になるという重要な気づきを得られました。
フルサイクルな業務で得られる設計力
入社前に期待していたことの一つに、「企画から開発、運用まで一貫して担当できる環境でエンジニアとして成長したい」という思いがありました。この点においてもニーリーは最適な環境でした。

ビジネスサイドと密に連携し、要求に対して開発サイドからも積極的に仕様を提案できる環境は、サービスの価値向上に貢献できているという実感に繋がります。
また、開発して終わりではなく、リリース後のユーザーからのフィードバックを基に運用しやすいように機能をブラッシュアップできる機会があるのも、大きな魅力だと感じています。
フルサイクルで携わることで、運用を見据えた設計力があがっていく感覚があります。実際に追加した機能がどのように使われたのか、各ステークホルダーにどのような効果や影響があったのかを開発者が知ることで、視野が広がり次の設計に繋がっていくんじゃないかと思います。
テストコードに対する考え方
正直なところ、入社前はテストコードを書くことに「面倒だな」と感じることもありました。しかし、チームの方針で設計段階からテスト観点を書くようになり、結果、開発のスピードと品質が上がった実感を得られたことで、テストコードの重要性を痛感しました。
設計の早い段階でテスト観点を考えることで、要件の抜け漏れを未然に防ぎ、より堅牢な設計ができるようになりました。また、テストコードを早期に書きながら実装を進めることで、自信を持ってスピーディに開発を進められるようになったと感じています。テストを書くことが、デリバリーを加速させるための必須プロセスだと心から思えるようになったのは、大きな変化です。
これから
技術的なスキルはまだまだ発展途上ですが、まずは1〜2ヶ月程度の中規模案件を自力で完遂できるエンジニアを目指したいと考えています。
設計・実装のスピードと質を向上させるために不可欠だと考えているのがAIツールの活用です。試行錯誤の段階ではありますが、AIと一緒にコーディングを行ったり、半自動的にテストの叩き台を作ってもらってます。積極的に新しい技術を取り入れ、より効率的で質の高い開発手法を見つけていきたいですね。
また、個人としての成長だけでなく、チームとしてのアウトプットを最大化することにも貢献したいです。スプリントプランニングやレトロスペクティブでの効果的なファシリテーションや振り返り方法を学び、チーム運営に積極的に関わっていきます。
このあたりのお話はまた別の記事でご紹介できればと思います。 それではまた!
