Leverage Configuration

Some changes don’t require software rewrites.

If your system makes strong use of configuration, then when people need to make changes as a result of business needs, it will sometimes be possible to satisfy those needs without having to write new code.

This kind of flexibility grows over time. As you receive more and more requests for various new features, modifications can become options. And then options can become configurable. Eventually, you will be to control some of the behavior of the system through an administration panel.

Because these changes no longer require a software development lifecycle, they can occur much more quickly, resulting in much happier customers.

If you embrace this idea from the beginning, you will acquire more configurable options. You will also add them to the system earlier. This frees up developers to work on more complex issues, and also makes for faster delivery of product to new customers.