Choose any two — Maintainable, Configurable, Speed.

When creating a new software, you could only have two out of the following:

  • Maintainable
  • Configurable
  • Speed

If you choose to focus on maintainability and configurability, it’ll take a long time to develop and performance might be impacted.

If you choose to focus on maintainability and speed (of development and performance), you might not have a configurable system (i.e. with many features and options).

If you choose to focus on lots of configurations and speed, you might have to sacrifice maintainability of your software.