Do a minimum that works (no gold plating)
Often when something is being built, the question comes up
“How far should we go with this?” If you are building application data access
layer, the questions can be:

- How
much database vendors should we support?
- How
many data types should we support?
- Should
caching be integrated automatically?
- Should
code support mapping to domain objects?
- Should
this mapping support multiple domain objects view of the same system and
perform transparent memory synchronization of them?
- What
about concurrency control?
You could go with all or nothing solution and spend few
years building data access layer. This approach is also called gold plating, and is always wrong approach because
customers won’t wait 10 years for you to achieve perfection in data access. The
right answer is to do a minimum that works. In previous example you probably
won’t need support for multiple types of database nor advance domain object
mapper.
If you do a minimum that works, you have:
- Satisfied
all requirements
- Spent
minimum amount of time and money
- You
have minimal amount of code/documentation to maintain
- Because
you finished faster, feedback will also come faster
- If you
were doing a wrong thing, easier it will be to get back on track
- Project
leader can do better time estimation if you just build what he requested
from you
- You
will have more time to work on other things that need more attention (Read more...)