* Having small, self-contained, loosely-coupled modules.
* Having an extensive test suite for each module.
* Having small (or zero) amount of technical debt.
* Talking to your customers constantly, preferably before you commit a lot of resources into a new development.
Easier said than done, but definitely not impossible.
* Having small, self-contained, loosely-coupled modules.
* Having an extensive test suite for each module.
* Having small (or zero) amount of technical debt.
* Talking to your customers constantly, preferably before you commit a lot of resources into a new development.
Easier said than done, but definitely not impossible.