ゴール:Vertical SaaS としてスタートを成功させる
役割: メンバー
担当: 設計, 開発
DB: PostgreSQL
言語: Deno, TypeScript, deno-postgres / React, TypeScript, Redux, Danfo.js / GCP , Firebase / OpenAPI
アーキ:軽量DDD / Atomic Design, CSS Modules
プロトタイプ開発によりある程度仮説を固めた上で、各社から契約が進められることになり本格的な開発がスタートした。
担当領域はフロントエンドは全般、バックエンドは設計・アプリケーションロジック全般の実装を担当し、BIZ含め4名で開発を進めることになった。
課題は、プロダクト開発の進め方に大きな課題があった。
元々はプロダクト開発として進める予定で進められていたが、11月後半になり別の受託プロジェクトの開発費を削減するためにこのプロダクトの資産を利用することになり、その契約に合わせ要件の見直しが入り、一部仕様変更が行われたり、またその契約状況をヒヤリングしながら進むことになった。
製造業・卸業どちらに舵を切るか、というフェーズでの開発でもあったのでプロダクトの方針が社内の事情に揺らぎながらの開発になった。
その上で技術的な課題は、1. 別プロジェクトにforkすることを踏まえて開発する 2. 仕様変更に強くする 2.どこまで譲れるか密にコミュニケーションを取る 4 優先順位を都度整理する
などのことが挙げられる。
バックエンド技術選定の背景は、
フロントエンドとの親和性が高いこと、型を利用することで開発速度を向上し変更にも強くできること、フロントエンドとの親和性からTypeScriptを選択。
ランタイム環境についてNode.jsとDenoの選択において議論があったがフィジビリした結果、Node.jsをDenoより採用したい理由が「既存資産に乗っかりたい」以外なかったのと、Denoはnpmをサポートしていたり、標準ライブラリが充実していたことから必要としている機能を十分に満たしていたためDenoを選択した。
開発中もDenoの標準ライブラリを使用することでシンプルかつ安定して開発をすることができた。
実際の開発においては、仕様変更が来たときにすぐ対応することや事業部のジャッジによってプロダクトが右往左往されるのがとても大変だった。
これらに関しては、常に優先順位を意識し実装上は責務やアーキ、抽象化・依存関係を意識することで対応した。
ビジネス上の課題は受託プロジェクトの関係者やリーダー層とコミュニケーションをしっかり取ることで極力後戻りが発生しないよう心がけ、実際効果を得られた。
しかし2022年12月末、バックエンドの全体設計・一部実装が終わった段階で経営の方針上プロダクト開発は一旦停止することになった。
とても悔しい経験だったが、プロダクト開発においてどのように進めれば角度が上げられるのか、何を意識して開発することが大事なのか、どのようなチームがいいのか、どういう顧客に当てていくのか、撤退ラインはどうするかなど様々なことを学べ貴重な体験だった。