## プロジェクト概要
NFTマーケットプレイスのフルスクラッチ開発から運用保守までを、顧客と密に連携しながら継続的に機能拡充を行いました。
## 役割・体制
### 自身のポジションと役割
- エンジニアリングマネージャーとして、技術選定やチームの品質管理、開発プロセスの最適化に従事しました。
- バックエンドエンジニアとして、KotlinやJavaを用いたサーバサイドの設計・実装およびデータベース設計を担当しました。
- インフラ周りではAWSを活用したクラウド基盤の構築・運用、QAとしてテスト設計と実施に携わりました。
- スクラムマスター(SM)としてチームのアジャイル開発推進やペアプログラミングの促進にも寄与しました。
### チーム規模と構成
- プロダクトオーナー1名(顧客)、プロジェクトマネージャー1名、スクラムマスター1〜2名(ローテーション)、エンジニア5〜10名の体制で開発を進めました。
- チームはアジャイル開発の特性を活かし、週次リリースに向けた継続的な改善とコミュニケーションを重視しました。
## 背景・課題
- NFTマーケットプレイスの市場変化に柔軟に対応するため、顧客のニーズを反映したフルスクラッチ開発が求められました。
- 毎週の頻繁なリリースに伴い、技術的負債を蓄積せずに品質とスピードを両立させることが最大の課題となりました。
- テストの網羅性や自動化が不十分だと障害発生リスクが高まるため、継続的な品質保持が重要視されました。
## 実際の取り組み
### 開発環境
- バックエンドではKotlinとJavaを用い、Reactをフロントエンドに採用し、AWSを基盤としたインフラ環境で開発・運用を行いました。
- アジャイル開発手法に基づき、ペアプログラミングやスクラムを活用して設計から実装、テストまで密に連携しました。
- CI/CDパイプラインを整備し、Playwrightを用いたE2Eテストの自動化によってリリース工程の効率化と品質向上を実現しました。
### 設計・改善内容
- ドメイン駆動設計(DDD)を取り入れ、コードの保守性と拡張性を高め、技術的負債の蓄積を抑制しました。
- テスト設計の洗練化を図り、自動化とカバレッジ向上に注力、これにより障害の未然防止と安定稼働を実現しました。
- 顧客との頻繁な擦り合わせを実施し、認識のズレを防ぐことで手戻りを最小化し、週次リリースの継続を支えました。
- PostgreSQLのEOL対応に伴うAmazon Aurora MySQLへのデータベース移行や、Vue.jsからReactへのフロント刷新など大規模リリースも安全に実施しました。
### その他アピールポイント
- エンジニアリングマネージャーとしてチームの残業時間削減を推進し、持続可能な開発体制の構築に寄与しました。
- テストの自動化とCI/CDの導入により、リリース品質が向上し、サービス停止を伴う大きな障害の発生を防止しました。
## 成果・価値
- 技術的負債の蓄積を抑えつつ、週次リリースを継続し、顧客満足度の高いサービス提供を実現しました。
- テスト品質の向上と自動化により、サービスの安定稼働を確保し、大規模リリースを含む複数回の刷新を問題なく成功させました。
- チームメンバーの残業時間を恒常的に低減し、働きやすい環境づくりと生産性向上に貢献しました。