DevOps、アジャイル、DDDを組み合わせたアプローチを確立し、ソフトウェアの変更容易性を高めることで、エンジニアの開発体験を向上させたい
### レガシーシステムの保守と大規模なウォーターフォール開発に苦しんだ経験 私は約2年間、3つの案件に配属され、様々な経験を積むことができました。その中でも特に、レガシーシステムの保守と大規模なウォーターフォール開発で数々の困難に直面しました。 まず、レガシーシステムは古い技術スタックや複雑なコードにより、理解するのに膨大な時間と労力を要しました。また、ドキュメントが整備されておらず、実装の意図を汲み取る必要があるため、機能追加やバグ修正の際に多大な苦労を伴いました。 ウォーターフォール開発では、一度にすべての要件を定義し、設計・実装・テストを順次行う手法のため、後半のフェーズで変更が生じると大きなコストと時間がかかることが問題でした。要件の変更が発生するたびに、設計や実装を大幅に修正する必要があり、その度にスケジュールが遅延しました。さらに、各フェーズ間のフィードバックが少なく、問題が発見された時点ではすでに遅すぎることが多かったです。 そんな中、開発と運用のサイロ化を目指すDevOpsや設計・実装・テストのサイクルを小さく素早く回すアジャイル、ドメインを中心にソフトウェアを設計することで拡張性と変更容易性を高めるDDDの考え方に強く感銘を受けました。これらの考え方を取り入れることで現状の課題を解決し、エンジニアの開発体験を高めることができると思い、社内で勉強会を開催してチームメンバーに共有しました。結果、拡張性と変更容易性の高いプロダクトを作ることができるようになり、スケジュール遅延も徐々に解消されていきました。 ### 経験を活かした今後の開発 これらの経験を踏まえ、3〜5年後にはテックリードとして、様々な技術と手法を活用し、より高品質で迅速なソフトウェア開発を実現していきたいと考えています。 具体的には、以下のようなことを実現したいです。 - **自動化されたデプロイメントパイプラインの構築**: アプリケーションのビルド、テスト、デプロイメントを自動化し、リリースサイクルを短縮する。 - **持続的な改善とフィードバックループの確立**: アジャイル開発の原則に基づき、継続的な改善を行いながら、顧客からのフィードバックを取り入れてシステムを進化させる。 - **ドメイン駆動設計の導入**: ビジネスドメインの理解とモデリングを深化させ、システムをドメインの境界に基づいて設計・実装する。
要望、不具合報告、使いづらい点や感想など、お気軽にお寄せください。
いただいたご意見は、今後のサービス向上に活用させていただきます。
なお、このフォームは受付専用のため、返信を行っておりません。
返信を希望する場合はお問い合わせよりご連絡ください。