## プロジェクト概要
古い業務システムのセキュリティ脆弱性解消を目的に、Visual BasicからJavaへのマイグレーションを実施しました。
## 役割・体制
### 自身のポジションと役割
- エンジニアとして、既存のVisual Basicベースの業務システムの機能を維持しつつ、Javaへの全面的な言語置き換え』を担当しました。
- このプロジェクトでは、システムの安定性とパフォーマンスを維持するため、既存の処理フローを深く理解し、最適化を意識した実装を行いました。
- 担当工程はコーディングとテストであり、単体テストや結合テストにおいても、品質と動作確認を徹底し、リリース後の保守性を考慮した設計に注力しました。
### チーム規模と構成
- 7名のエンジニアと2名のプロジェクトリーダーからなるチームに所属し、リーダー層と密に連携しながら、スケジュールと品質を管理しました。
## 背景・課題
- 既存のシステムは長年運用されてきたため、使用言語がVisual Basicであり、セキュリティ上の脆弱性や拡張性の低さが課題となっていました。
- アップデートや改修が困難な状況であったため、システムの安全性と保守性を向上させる必要性が高まり、最新のJavaへの移行が求められました。
- さらに、仕様書や詳細なドキュメントが存在しなかったため、既存機能の振る舞いを理解しながら、正確な移行作業を進める必要があり、仕様の把握と整理が最大の課題でした。
- 最大の難題は、言語特性の違いによる処理負荷の増加や、仕様書未整備による認識ずれのリスク管理でした。
## 実際の取り組み
### 開発環境
- 開発作業は、Visual Basicの既存コードを解析し、Java実装への変換を行うため、Eclipseを活用し、効率的なコーディング環境を整備しました。
- 処理負荷やパフォーマンスを考慮し、Javaの標準ライブラリや他社ベンダー作成のフレームワークを適用して、拡張性と保守性を向上させました。
### 設計・改善内容
- 既存のシステムの振る舞いを把握するために、プログラムから仕様書を作成し、主要な処理フローやデータの流れをドキュメント化しました。
- これにより、関係者間の認識齟齬を解消し、移行作業の正確性を高めました。
- 特に、処理負荷を抑制するために、既存の重複処理や不要な処理を洗い出し、最適化を行いました。
- テスト工程では、単体テストと結合テストを徹底し、動作確認と品質維持に努め、リリース後の保守性を確保しました。
### その他アピールポイント
- 仕様書未整備の課題を克服するために、関係者と頻繁にコミュニケーションを取り、理解度を深めながら作業を進めました。
- この取り組みにより、実装の手戻りが少なく、システムの品質とリスク管理を徹底できたことが、プロジェクトの成功に大きく寄与しました。
- また、移行後のシステムの安定稼働とセキュリティ強化を目的として、コードの見直しと最適化も併せて実施し、長期運用に耐えうる基盤を構築しました。
## 成果・価値
- 実装の手戻りが少なく、システムの品質を維持しつつ、リスク顕在化を未然に防止できました。
- 結果として、旧システムからの移行期間中に重大な障害やセキュリティインシデントが発生せず、安定した運用を実現しました。