I believe the following is accurate for developing 95% of business applications:
- People buy software to solve problems, that can be making their life easier, making money or providing 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 common and finite set of features to be implemented in code.
- Applications should be built by tailoring features to solve a user problem.
- If tailoring features have to be done by writing code, so be it, but this is very costly in terms of time and money.
- It’s preferable to have this done via configuration.