
こんにちは。ニーリーでプロダクトエンジニアをしている西村です。
「#ニーリー開発組織の野望」第9弾では、ニーリーでプロダクトエンジニアをやる面白さについてお話しします。
単なる機能開発じゃ、もう物足りない。事業を動かすような、本質的な開発に挑戦したい
— そんな思いを抱いたことはありませんか?
複雑な要件を解きほぐし、不確定な要素と向き合いながら、事業にクリティカルなインパクトを与える。単なる機能追加ではなく、会社の成長スピードそのものを左右する開発。難しいからこそ、面白い。
そう感じるエンジニアの方に向けて、今回はニーリーにおけるこの「高難度開発」の面白さについてお話しします。
決済会計業務効率化プロジェクト:消込処理の自動化
私が2023年から約1年かけて担当した決済会計業務効率化プロジェクトについてご紹介します。全体のコード量の約40%を追加する大規模開発で、複雑なビジネスロジックと向き合う、まさに「事業成長を担う高難度な開発」でした。
このプロジェクトは複数の案件で構成されていますが、今回はその中から「消込処理の自動化」という開発について紹介します。
取り組み内容
Park Directでは、クレジットカード、銀行振込、口座振替という3つの支払手段を提供しています。 銀行振込についてはバーチャル口座を導入しており、「誰がいついくら入金したか」という識別はできていました。しかし、その後の消込処理については、銀行振込も口座振替も手動で実施していたため、入金確認から消込処理までの一連のフローを、すべての支払手段で自動化しました。
一見シンプル、実は複雑な消込処理
入金パターンの多様性
毎月、延滞なく、丁度の金額を入金してくれるとは限りません。延滞、数ヶ月分のまとめ払い、過入金・不足金など、様々なパターンが存在します。さらに、一人の借主様が複数の駐車場区画を借りている場合、どの区画への支払いなのかも判断する必要があります。
請求内容の多様性
月額賃料、口座振替手数料、更新料、初期費用、保管場所使用承諾証明書発行料など、請求パターンも多岐にわたります。
特殊な処理への対応
賃料保証サービスに加入している契約では、滞納後に保証会社が立て替えてくれた分をPark Direct上で未収なしと判定する必要があります。また、敷金を預かっている場合、解約時には返金しますが、滞納があれば返金せずに充当しなければなりません。
どう解決したか
データモデリングの試行錯誤
お金の流れの整理から始まり、膨大なユースケースの洗い出し、何十通りものケーススタディを実施しました。また、既存のデータ構造では実現が困難だったため、データモデルから抜本的に見直すことになり、Miroでデータモデリングについてディスカッションを重ねました。


ルールの策定と合意形成
消込順序について明確なルールを策定しました。
このルール設計では、様々な要素を考慮する必要がありました。管理会社様へ送金する費目(月額賃料や更新料)とPark Directの売上費目(月額保証/管理料)の消込順序。請求内容自体の優先度(初期費用、月額賃料、更新料など)。保証会社の立替処理や敷金からの充当といった特殊な処理。これらすべてを整理し、実装可能なルールに落とし込みました。
ニーリーの開発の特徴が表れているのは、このルールを開発サイドでたたき台を作り、ビジネスサイド・経営層と合意形成を行った点です。お金のフローのパターンの知識を最も集めているのが開発サイドであったため、システムの実現可能性と運用の現実性を両立したルール設計が可能でした。
得られた効果
この施策によって、1日あたり2〜3時間かかっていた業務をゼロにできました。さらに、ユーザー数の増加に伴い業務時間も膨れ上がるはずでしたが、この自動化により将来の業務負荷増加を未然に防ぐことができました。
加えて、決済会計業務効率化プロジェクトにおいて、データモデルや機能を抜本的に見直したことで、その後の展開も加速しました。管理会社様への送金業務の自動化、ニーリーの会計処理の効率化など、派生的な改善も次々と実現できています(詳細はまたの機会にご紹介します)。
事業成長を担う高難度な開発とは?
ここまでご紹介した消込処理の自動化のような開発を、私たちは「事業成長を担う高難度な開発」と呼んでいます。では、具体的にどのような特徴があるのでしょうか。
要求・要件の複雑さ
ビジネスロジックが複数の要素で絡み合い、一筋縄ではいかない構造的な難しさがあります。
不確定度合いの高さ
実際にやってみるまでわからない要素が多く、運用フローが確定していない状態からスタートすることもあります。不確定要素を一つずつ確定させていく力が試されます。
開発規模の大きさ
既存システムの広範囲に影響を及ぼすため、周辺機能への影響調査だけでも相当な時間を要します。さらに基盤構築や新技術への取り組みが必要になる場合もあり、実装期間が長くなることも少なくありません。
事業へのクリティカル度合い
事業の成長に直結し、プロダクトの価値そのものを大きく向上させる重要度の高さがあります。
これらの要素が複合的に絡み合う開発 — それが「事業成長を担う高難度な開発」です。技術力だけでなく、ドメイン知識、課題解決力、(隣接領域への)染み出し力など、エンジニアとしての総合力が問われ、同時に大きく成長できる開発です。
事業成長を担う開発で得られる経験と面白さ
こうした開発を通じて、私たちが得られた経験と面白さについてご紹介します。

ドメイン知識を深め、事業の根幹を理解する面白さ
月極駐車場というビジネスの仕組み、管理会社様の運用ルール、Park Directが提供するサービス・機能、これらへの理解を深めることが重要です。
ドメイン知識があれば、不確定な要素を確定させる判断ができるようになります。また、あいまいな要求に対しても、運用の現実性を考慮した提案ができます。
複雑な課題を解きほぐし、事業を前に進める達成感
複雑なビジネスロジックを実装する技術力に加えて、要件を整理し、実現可能な形に落とし込む力が求められます。
エンジニアリングの枠を超え、ビジネス全体にインパクトを与える経験
多様なステークホルダーとの合意形成や、必要に応じて現場に出て業務を理解するなど、エンジニアリングの枠を超えて隣接領域に踏み込む姿勢も必要になります。
これらの力は、実際の案件に取り組む中で、チームと共に育てていくことができます。ニーリーには、挑戦しながら成長できる環境があります。
今どういう変化が起きようとしているのか
ニーリーは今、大きな転換点を迎えています。
マルチプロダクト化の推進
主力の「Park Direct」に加えて、「Park Direct for Business」が第二の柱として成長し、さらに新たな駐車場サービスも立ち上がりました。 マルチプロダクト化が本格化する中で、Park Direct以外のグロース開発も急務になっています。0→1、1→10、10→100と、様々なフェーズの開発が同時並行で走る、極めてチャレンジングな状況です。
PLG(Product-Led Growth)への挑戦
「Park Direct」はまだまだSLG(Sales-Led Growth)の側面が強いプロダクトです。
今後、ユーザー数が何十倍にも成長していくためには、プロダクトの価値をさらに磨き上げる必要があります。また、現在は手動で行っている業務も多く、事業のスケールに合わせた業務効率化も欠かせません。
決済会計業務効率化のような高難度な開発は、これだけではありません。マルチプロダクト化とPLGへの挑戦により、これまでとはまた違った複雑性を持つ開発が次々と生まれています。プロダクトの力で事業を圧倒的に成長させる。それが、私たちプロダクト開発チームが目指す将来像です。
事業成長を担う高難度な開発で、エンジニアとしての可能性を広げませんか?
事業成長を担う高難度な開発は、確かに難しい。複雑な要件、不確定な要素、多様なステークホルダー、膨大な開発量。一つひとつが大きなチャレンジです。
しかし、だからこそ面白い。
自分が書いたコードが事業の根幹を支え、会社の成長スピードを左右する。複雑な課題を解き、システムとして形にする。事業の成長と自分の成長が重なる。これが、この開発の醍醐味です。
ニーリーには今、こうした開発の機会が溢れています。マルチプロダクト化、PLGへの挑戦、そして急成長する事業。やるべきこと、やりたいことが次々と生まれる環境です。
技術力を磨きながら、ドメイン知識を深め、事業に染み出していく。そんな経験を通じて、エンジニアとして大きく成長できる環境があります。
難易度の高い開発で事業成長を担いたい。そう考えるエンジニアの方を、私たちは待っています。
▼カジュアル面談はこちらから!
https://nealle.notion.site/26b8c35b4dfa81218100cf3bcc224ba9