📎 Webclip
Modernising legacy code with SOA and Agile
The article argues that a full rewrite of the legacy CRM would have been too risky and too slow for the business. Instead, it describes a path that kept the application running while gradually improving maintainability and delivery.
Reading notes#
- The team faced a long-maintained Delphi CRM, a separate C# delivery application, and pressure from business growth and changing priorities.
- The Delphi codebase was hard to extend, had no unit tests, sparse documentation, and was increasingly difficult to staff.
- A complete rewrite was presented as risky because it could fail, miss feature parity, lose historical data, or take years to complete.
- The article uses the Mozilla rewrite of Netscape as an example of a rewrite that took longer and cost more than expected.
- A cited alternative translated Delphi code into C# with a rules engine, allowing continued development on the existing product.
- The proposed approach for the company was to build new functionality as services in a service-oriented architecture and refactor existing code toward those services.
- Scrum was introduced to handle shifting business priorities, define user stories and acceptance criteria, and deliver a new build every fortnight.
- The article says the combination of SOA and Scrum improved developer focus, business confidence, transparency, and regular delivery.
