Interactive
What does one discount rule touch?
Business request:
a new discount rule in the catalog. On paper: a day's work.
Tightly coupled (2009)
- Catalog module: the discount rule changes here. Touched.
- Invoicing tables: the catalog module writes directly to them. Touched.
- Reporting module: reads the same tables. Touched.
- JSF screen: part of the discount logic lives here. Touched.
Cost of this change
Press the button to make the change.
- Parts touched
- 4 of 4
- Testing
- Regression test across the entire system
- Release
- Full release
- Deployment
- Overnight window
Clear module boundaries
- Catalog module: holds the discount rule and offers a public interface. Touched.
- Invoicing module: uses the public interface. Not touched.
- Reporting module: uses the public interface. Not touched.
- JSF screen: uses the public interface. Not touched.
Cost of this change
Press the button to make the change.
- Parts touched
- 1 of 4
- Testing
- The catalog module
- Release
- The catalog module
- Deployment
- Still one deployable, a smaller and lower-risk change
Same change: 4 of 4 parts touched vs 1 of 4.
Java is not what makes this change complex. You can create the same problem in any language.
Not sure where the coupling sits in your own landscape?
Ask for a second opinion on your architecture