Database design is a never-ending process. Not only do new features and optimizations come with each new software release, but new business needs and supporting information requirements continually present themselves and must be integrated with the production database.
The integration process may be as involved as re-engineering entire components of the database. Fortunately, if you have adhered to an implementation that is fully normalized, the re-engineering process is a relatively harmless and predictable activity.