I believe the following is accurate for developing 95% of business applications:
- People buy software to solve problems, make their lives more comfortable, make money, or provide pleasure (don’t read too much into that =D).
- Features enable solutions to problems.
- When we write software, we build features.
- With the right level of abstraction, there is a standard and finite set of features to be implemented in code.
- We create applications by tailoring features to solve a user problem.
- If tailoring features requires writing code, so be it. But this can be very costly in terms of time and money.
- It is preferable to tailor features through configuration.