大手通信企業向け業務支援アプリ MVP 開発
実務
プロジェクト概要
- 大手通信企業がクライアントに提供する業務支援アプリの MVP 開発(直受け受託開発)
担当フェーズ
- 要件定義、基本設計、詳細設計、実装、単体テスト、結合テスト、納品
技術スタック
OS
- Linux系(Google Cloud Platform マネージド環境)
言語
- Java(JSP)
- JavaScript
- HTML
- CSS
DB
- Cloud SQL(MySQL)
その他ミドルウェア、サーバー等
- GCP(App Engine, Cloud Storage, Cloud Tasks, Cloud Scheduler, Cloud Logging)
役割・規模
- 役割: リードエンジニア
- プロジェクト規模: 要員1名(全体4名)
業務内容
- 新規 SaaS アプリ MVP の設計から実装、納品まで単独で担当。将来のネイティブアプリ化を見据えた API 中心の設計を実施
- RESTful API の設計・実装、2 段階認証システム(メール・パスワード + SMS 認証)の構築、データ・ファイル管理システムの構築
- 顧客が用意したひな形を基に、デザインシステムに基づいた UI コンポーネントを実装し、API 連携による動的な画面更新を実現
- Cloud Armor と Load Balancing を活用した堅牢な構成の実装と、脆弱性診断ツールでの検証をクリアするセキュリティ対策
- 顧客との要件整理・仕様調整・進捗報告、認証フロー・DB 設計・インフラ設定の各種仕様書作成、復旧手順書・テスト仕様書等の運用ドキュメント整備
実績・取り組み等
工夫したこと、そのような工夫をした理由
- 将来のネイティブアプリ化を見据えて API 中心の設計を採用し、複雑にせず必要最小限の機能に絞った MVP 開発を実施した。既存知識を活用しつつ、新規技術(Identity Platform)もドキュメントを読んで迅速にキャッチアップした
- 顧客が用意したひな形を基に、アプリケーション全体のデザインシステムを実装し、一貫性のある UI コンポーネントを構築して操作性の高いインターフェースを実現した
- Cloud Armor と Load Balancing を活用した堅牢な構成を実装し、脆弱性診断ツールでの検証をクリアするセキュリティ対策を実施した
- これらの工夫を行った理由は、3 ヶ月という短期間で 10 社へのデモと 10,000 人規模のアンケート実施に間に合わせる必要がありミスが許されない状況だったため、将来的に他のサービス群と同様にスマホアプリ化する計画があり API 分離アーキテクチャが必要だったため、法人向けサービスとしてセキュリティ要件を満たすことが必須だったため
直面した問題
- 3 ヶ月という短期間で設計から実装、テスト、納品までを単独で完遂する必要があった。10 社へのデモと 10,000 人規模のアンケート実施に間に合わせる必要があり、ミスが許されない状況だった
- 2 段階認証システム構築のために Identity Platform を使用する必要があったが、使用経験がなく短期間で学習して実装まで完了させる必要があった
- 既存のサービス群がスマホアプリで提供されており、将来的な統合を見据えて Web 版とネイティブアプリ版の両方で使える API 設計を行う必要があった
問題を解決するために行った施策、解決策
- 必要最小限の機能に絞った MVP 開発を実施し、複雑な設計を避けることで短期間での完成を実現した。既存知識(Java、GCP 等)を最大限活用し、新規技術の学習範囲を最小化した
- 公式ドキュメントを読み込み、2 段階認証(メール・パスワード + SMS 認証)の実装方法を習得した。必要な機能に絞って学習し、短期間で実装を完了した
- フロントエンドとバックエンドを明確に分離し、RESTful API として設計・実装することで、将来的にネイティブアプリから同じ API を利用できる構成を実現した
- 認証フロー、DB 設計、インフラ設定の各種仕様書を作成し、復旧手順書、テスト仕様書等の運用ドキュメントを整備して納品後の運用を見据えた対応を行った
その解決策を行った理由
- 3 ヶ月という限られた期間で 10 社へのデモと 10,000 人規模のアンケート実施に間に合わせる必要があり、ミスが許されない状況だった。複雑な設計にすると開発期間が延びるリスクがあったため、シンプルな設計で確実に完成させることを優先した
- Identity Platform は初めて使用する技術だったが開発期間が短く学習に時間をかけられなかった。公式ドキュメントを読んで必要な機能に絞って学習することで効率的にキャッチアップする必要があった
- 既存のサービス群がスマホアプリで提供されており将来的に統合する計画があったため。Web 版で先行リリースした後にネイティブアプリ化する際、API 設計が適切でないと大幅な作り直しが発生するリスクがあった
- 各種仕様書や運用ドキュメントの作成が顧客から要求されていたため。ドキュメントを整備することで納品後の運用や今後の機能追加がスムーズに行えるようにする必要があった
成果(工夫や解決策を実施した後の成果)
- 3 ヶ月という短期間で設計から実装、テスト、納品まで単独で完遂し、10 社へのデモと 10,000 人規模のアンケート実施に間に合わせた。UI の完成度と操作性が高く評価され、「キレイで使いやすい」という評価を獲得した
- API 中心の設計により、将来的にネイティブアプリから同じ API を利用できる拡張性の高いアーキテクチャを実現した。フロントエンドとバックエンドを明確に分離し、保守性の高いシステムを構築した
- 10 社へのデモ実施により 6 社から導入意向を獲得し、要件と実装の適合性が評価された。スピード重視の開発により、デモとアンケートに耐えられる品質の製品を納品した
- Identity Platform を短期間で習得し 2 段階認証システムを実装した。Cloud Armor と Load Balancing を活用し法人向けセキュリティ要件を満たす構成を実現し、脆弱性診断ツールでの検証もクリアした