The ERP that got in where the off-the-shelf packages could not
Two off-the-shelf ERP rollouts failed at the same company. The third attempt was to build it in house — and I owned the domain design.
The problem
The company makes its money renting out computers. That sounds simple until you look closely: the same machine enters a contract, leaves for maintenance, comes back, gets swapped for another one on loan, generates pro-rata billing and still shows up in a support ticket. No off-the-shelf ERP modeled that without heavy customization, and that is exactly where the off-the-shelf packages stalled.
What I did
I modeled the domain with DDD, treating contract, equipment, service order and billing as aggregates with their own rules instead of loose tables stitched together by screens. The architecture was layered, with the domain isolated from infrastructure — which let the same rules serve two very different front ends: WPF for the 100+ internal employees and Web Forms + WCF for external clients checking their own contracts.
The outcome
The system came to run the whole operation: leasing, service orders, contracts, finance and customer support. What two market ERPs could not cover, a small team did — because it modeled the real business instead of trying to force it into a generic model.