こんにちは、佐賀人のIT技術者です。 最近、約2年間にわたる業務管理システム再開発を終えましたので、その経験を振り返ってみようと思います。
はじめに
私は約2年間にわたり、ある企業の業務管理システムの再開発に携わりました。このプロジェクトは、以前の開発会社がシステムのメンテナンスを継続できなくなったという報告を受け、急遽引き継ぐこととなったのがきっかけです。この記事では、その開発プロジェクトの背景やプロセス、直面した課題と学びについて振り返ります。
プロジェクトの背景
今回の再開発プロジェクトは、既存の業務管理システムを基盤としつつ、運用し続けるためにシステム全体を再構築する必要がありました。旧システムは多くの問題を抱えており、特に開発ドキュメントがほとんど残っていなかったことが、プロジェクトの初期段階で大きな障害となりました。また、旧システムと同じ機能を保ちながら、必要に応じて改善を行うという課題にも直面しました。
プロジェクトの進め方
私たちのチームは6人で構成され、最初はウォーターフォール型でプロジェクトを進めていきました。システムの根幹設計は一度に進める必要があったため、全体的な設計は初期段階で一気に進めました。しかし、ユーザーの要望やシステムの挙動に対するフィードバックを取り入れる段階では、よりアジャイルな手法に移行しました。
終盤では、ユーザーに実際のシステムを見せながら細かい機能を修正していく形で進め、ユーザーとの綿密なコミュニケーションを通じてシステムの仕上げを行いました。この「ウォーターフォールとアジャイルのハイブリッド」的なアプローチが、結果的にプロジェクトの成功につながりました。
直面した課題
1. 旧システムの理解と仕様引き継ぎ
再開発の最も大きな課題の一つは、旧システムの仕様を把握することでした。ドキュメントがない状態での作業は非常に困難で、コードを読み解きながらシステム全体を理解する必要がありました。また、旧システムの使用方法をユーザーからヒアリングし、それに基づいて新しいシステムを再設計するプロセスも重要でした。
2. ユーザー要求の変化と手戻り
旧システムの仕様をそのまま引き継ぎつつも、ユーザーからは新たな機能改善の要望も寄せられました。このため、どの部分を旧システムから引き継ぎ、どの部分を改善するかの判断が非常に難しく、手戻りが発生することもありました。特に、同じ機能定義を何度も見直す必要があったのは、チーム全体にとって大きな負担でした。
解決策と学び
このような課題を乗り越えるために、設計段階では「変更が容易であること」を意識しました。たとえば、同じ定義を繰り返し書かないようにする、関数は1つの役割に特化させるなど、保守性を高める工夫を行いました。これにより、手戻りが発生しても効率的に対応でき、システムの変更に柔軟に適応することができました。
また、ユーザーとの密なコミュニケーションもプロジェクト成功の鍵となりました。システムの根幹に関しては、認識のズレがないようにミーティングを重ね、細かい仕様についてはチャットを活用して素早くやり取りを行いました。このプロセスを通じて、ユーザーのニーズを反映した合理的で効率的なシステムを構築することができました。
成果と効果
再開発プロジェクトの結果、業務の効率性や使い勝手が大幅に向上しました。UX面では、ユーザーが直感的に操作できるような合理的な設計を実現し、操作の煩雑さを排除しました。また、以前はシステム上の金額と実際の金額が一致しないといった問題があり、人力によるダブルチェックが必要でしたが、この部分も再開発によって解消することができました。
さらに、システムはメンテナンスしやすい設計にすることができたため、今後の保守や機能拡張が容易になり、長期的な運用が見込めるようになりました。
学んだこと
このプロジェクトを通じて、私自身も多くのことを学びました。特に、Webシステムのベースをしっかりと構築することの重要性や、変更に強い設計の必要性を深く理解しました。また、チームの協力とユーザーとのコミュニケーションが、システム開発においてどれほど大きな影響を与えるかを実感しました。
最後に
業務管理システムの再開発は、非常にチャレンジングなプロジェクトでしたが、適切なアプローチと設計、そしてチーム全員の努力によって成功を収めることができました。このプロジェクトの経験をもとに、今後もより良いシステム開発に貢献できるよう、さらなる成長を目指していきたいと思います。