-
コンピューター横編機の操作部の開発・保守 (オフショア開発)
■ プロジェクトの目的
日本の大手繊維機械メーカーが製造するコンピューター横編機において、操作部ソフトウェア(UI/制御部分)の開発および長期的な保守対応を目的としたオフショア開発体制を構築。品質向上と開発効率化を両立しつつ、安定稼働を支援する。
■ 体制・人数
• ベトナム側のオフショア開発チーム:5名体制
• 日本側との連携:BrSE(1名)を通じて日本語で日々コミュニケーション
• 日本のPM・QA担当と週次ミーティング実施
■ 自分のポジション・役割
• チームリーダー / BrSE
• 操作部ソフトウェアの仕様理解と日本語での要件整理
• C++を用いたUIロジック実装・メンテナンス
• バグ修正、テスト仕様書作成、単体テスト実施
• クライアントからの技術的問い合わせ対応
■ 目的を達成する上での課題
• 操作部ソフトウェアがハードウェアと密接に連携しており、動作検証が複雑
• 一部仕様が文書化されておらず、日本語の会話・読み取り力が求められる
• 長期にわたる保守対応の中で、属人化されたコードのリファクタリングが必要
• 開発と検証のタイミングにタイムラグがあり、報告・共有の精度が要求された
■ 課題に対して取り組んだこと
• UI・制御ロジックの分離設計を行い、コードの見通しを改善
• WinUI 3の画面遷移・メモリ管理をチューニングし、クラッシュを防止
• ドキュメント整備(機能仕様書・設計書)をオフショア側で主導して作成
• バグ管理・進捗管理をRedmineで統一し、日報・週報を通じて密に連携
• 日本語での仕様確認・レビュー対応をBrSEが主体的に実施
■ ビジネス上の成果
• 操作部の安定稼働により、最終製品の信頼性向上に貢献
• UI不具合やハングアップの報告数を削減
• 日本側からの評価により、別機種への展開案件も受注
• チーム内の技術ドキュメント蓄積が進み、メンバー入れ替えにも柔軟に対応可能な体制を確立・C++ を用いた UIロジック/画面制御の実装
・WinUI 3 による Windows デスクトップアプリ開発
・画面遷移、イベントハンドラ、メモリ管理の最適化
・MVVM アーキテクチャの部分導入と適用
・Redmine を使ったタスク・バグ管理
・日本語での仕様把握、レビュー対応、報告業務
・BrSEとして日越のブリッジ、開発管理の経験 -
REST API のリファクタリング
■ プロジェクトの目的
Node.js(v0.11)+ Express.js ベースで構築された既存REST APIを、TypeScript + NestJS にリファクタリングし、保守性・拡張性・テスト性を高める。将来的な機能追加・運用の効率化を目的とした技術基盤の刷新。
■ 体制・人数
• フルリモート体制
• 1名で対応(外国人エンジニア)
• コミュニケーション:日本語(会話レベル)+ 必要に応じて英語テキスト
■ 自分のポジション・役割
• フルスタックエンジニア(担当1名)
• コードリーディング、設計見直し、TypeScript化
• NestJSへの移行作業全般
• テスト整備(Jest)
• HAL+JSONフォーマット維持対応
■ 目的を達成する上での課題
• Node.js v0.11ベースのコードがレガシーで、構造が複雑
• テストカバレッジが不足しており、仕様の把握が困難
• ドキュメントや型定義がないため、安全なリファクタリングが困難
• 開発環境がクラウド(GCP)で統一されており、初期セットアップの整備が必要
■ 課題に対して取り組んだこと
• 既存コードの構造・依存関係を静的解析し、サービス・コントローラ層の分離を実施
• mochaベースのテストをJest形式で書き換え、テスト網を再構築
• Swagger(OpenAPI)ドキュメントを整備し、仕様の明確化
• クラス設計の統一(DTO, Entity, Serviceレイヤー分離)
■ ビジネス上の成果
• テストカバレッジの向上によりリリース前確認の工数削減
• API仕様書の整備により、社内・外部との連携がスムーズに
• TypeScript + NestJS化によって、コードの見通しと保守性が大幅に向上
• 開発速度・チーム引き継ぎコストの最適化に貢献・Node.js / Express による既存REST APIの構造理解
・TypeScript + NestJS への段階的な移行と最適化
・MySQL / MongoDB などのDBスキーマ設計およびクエリ最適化
・既存コードの静的解析およびコード分割・再構成
・Jest等を用いたユニットテストの実装
・Google Cloud(GCP)環境下でのCI/CD対応・環境設定