## プロジェクト概要
畜産農家向けSaaSの業務管理・牛の健康管理システムを完全リプレイスし、UI/UX・セキュリティの大幅改善と新デバイス連携を実現しました。
## 役割・体制
### 自身のポジションと役割
- チームリーダー兼エンジニアリングマネージャーとして、全体設計からコーディング、テスト、運用・保守まで幅広く担当し、チームマネジメントとクライアント対応を推進しました。
- フロントエンド(JavaScript, HTML/CSS)、バックエンド(Python, Django)、インフラ(Ubuntu, Nginx, MySQL)を横断的に担当し、DevOpsの観点から業務プロセス改善を目指しました。
- QA業務も兼任し、品質管理やテスト戦略の策定・実施をリードしました。
### チーム規模と構成
- PM1名、エンジニア2~5名、QA1~2名で、設計・開発・運用フェーズに応じて変動する体制でした。
## 背景・課題
- 2012年に構築された既存システムがHTTPS非対応であり、LINE連携もSDK非対応でメンテナンスコストが著しく増大していたため、全面的なリプレイスが必要でした。
- 新たな牛の歩数管理デバイスとの連携が毎秒の高頻度リクエスト発生を伴い、数百万レコード規模のデータ処理に耐えるスケーラビリティ確保とテーブル設計が大きな課題でした。
- 大規模牧場の登録増加に伴うリクエスト急増と集計バッチの遅延により、DBサーバーおよびアプリサーバーのリソース逼迫によるサービス停止リスクを抱えていました。
## 実際の取り組み
### 開発環境
- Python/Djangoを用いたバックエンド開発、JavaScript/HTML/CSSを活用したフロントエンド実装を行い、MySQLデータベースとNginxを組み合わせて信頼性の高いWebサービス基盤を構築しました。
- Ubuntuサーバー上での運用を前提にインフラ設計を実施し、安定稼働に向けた監視基盤の整備も推進しました。
- アジャイル開発をベースに初期はウォーターフォール的な計画策定を行い、運用フェーズに移行するにつれてスプリントを細かく設定し継続的な改善を実施しました。
### 設計・改善内容
- 新デバイスからの高頻度リクエストを捌くため、データベースのテーブル設計とバッチ処理を最適化し、数百万レコードのスケーラブルなデータ処理基盤を実現しました。
- 単一障害点を排除するためにサーバーを分割し、DBサーバーとアプリケーションサーバーのリソース逼迫に対応した負荷分散設計を実施しました。
- 定期的なパフォーマンス観測を取り入れ、障害発生前に問題を検知可能な監視・アラート体制を構築しました。
- クライアントと密に連携し、最も効果的な機能改修や提案を行うために定期ミーティングを重ね、要件のアップデートと優先順位を柔軟に調整しました。
### その他アピールポイント
- QA業務において、自動テストの導入やテストケースの整備を行い、リリース前の品質向上に貢献しました。
- チーム内のタスク管理やコードレビューを主導し、開発効率と品質の維持に努めました。
## 成果・価値
- 1日平均2~3回発生していたサービスアラートをほぼゼロに減少させ、システムの安定稼働を実現しました。
- ユーザー画面の表示速度を約2倍に向上させ、ユーザビリティの大幅改善に寄与しました。
- 新デバイス連携を含む機能群の刷新により、クライアントの業務効率化と保守コスト削減に貢献しました。