クラウド型POS改修・関連システム構築
期間: 2014年5月1日 - 2016年3月31日 (23ヶ月)
チーム規模: 5人
役割: プログラマ , システムエンジニア , フロントエンドエンジニア
工程: 要件定義 , 基本設計 , 詳細設計 , 実装・検証 , 結合テスト , 総合テスト , 運用
概要
20年以上運用されてきたレガシーPOSパッケージ(4D環境)の改修・機能追加と、Javaへのリプレイスプロジェクト。途中で大手企業からの大型カスタマイズ案件により方針転換し、既存システムの大規模改修へ。4D Web機能の開拓、RFID/Bluetooth棚卸機能、タブレット対応UIなど、レガシーシステムに新技術を取り込む挑戦。
プロジェクトの背景
20年モノのレガシーシステムの変革:
- 設計書なし、リファクタリングなしで20年間メンテナンスされ続けた4Dシステム
- ビジネスロジックの冗長化・複雑化
- クライアント企業は4D Web機能を未使用
- Javaリプレイス計画 → 大手顧客案件により既存システム改修へ方針転換
担当業務
フェーズ1: 既存システムの運用保守・カスタマイズ (2014-2015前半)
- 既存POSシステムの改修・追加機能の解析・設計・製造
- レガシーコードの解読とビジネスロジックの理解
フェーズ2: Javaリプレイスプロジェクト (2015中盤)
- 在庫・原価計算モジュールの設計
- 画面UIデザインの提案
- プロトタイプ開発
→ 大手企業からの大型カスタマイズ案件により、既存システム大規模改修へ方針転換
フェーズ3: 大規模改修 - 新技術の取り込み (2015後半-2016)
4D Web機能の開拓
- 4D Japan講習会参加: クライアント先で未使用だった4D Webサーバー機能を一任される
- タブレット対応UI設計: PCとタブレット両対応の売上画面
- jQuery UI採用提案: 統合されたコンポーネントとデザインで、不足部分は自作
- MVCアーキテクチャ導入: ビジネスロジックとプレゼンテーション層の分離を実現
RFID/Bluetooth棚卸機能の構築
- バックエンドAPI実装を担当
- 外国人技術者との英語協業: フロントエンド担当者と英語でコミュニケーション
- Web API設計・実装
Excel(XLSX)出力機能
- 課題: 4Dの既存プラグインは旧Excel(XLS)のみ対応
- 解決策: 4DのPHP機能を利用してPHPExcelライブラリを活用
- 判断: メモリ懸念はあるが、単一ユーザー用途と短納期を考慮しPHP実装を選択
- BIツール向けPOSデータ自動連携システムに組み込み
開発効率化
- テーブル作成自動化: 手動操作からSQL機能を活用したVBA経由の自動生成へ
- 設計書→テーブル直接作成: レガシーな手動操作を排除
技術的挑戦
レガシーシステムへの新技術導入
- 20年モノのコードベース: 設計書なし、リファクタなしの複雑なビジネスロジック
- 4D環境の制約: 通常できないことが多い環境での柔軟な発想と工夫
- Web化: 4D Web機能の開拓、jQuery UIによるレスポンシブUI
クロスプラットフォーム対応
- PCとタブレット両対応のUI/UX設計
- RFID/Bluetoothデバイス連携
国際的なチーム協業
- 外国人エンジニアとの英語コミュニケーション
- 技術仕様の英語ドキュメント作成
成果・学んだこと
- レガシー刷新の提案力: 変革が必要な部分を積極的に提案し、クライアントのビジネス成長に貢献
- 技術的制約下での創造性: 4D環境の制約を、柔軟な発想と工夫で克服
- フルスタック開発: バックエンド(4D, PHP)、フロントエンド(jQuery UI)、インフラまで幅広く担当
- 国際協業経験: 英語での技術コミュニケーション
- アーキテクチャ設計: MVCの思想を取り入れた、保守性の高い設計
- ユーザー中心設計: タブレット/PC両対応の使いやすいUI/UX実現
20年モノのレガシーシステムに新しい息吹を吹き込み、Web化・モバイル対応を実現。設計書なき環境で、アーキテクチャ改善とビジネス価値向上を両立させました。