Flexibility is best achieved by reducing your exposure to the choices you've made, not the choices you might make in the future. Future proofing often produces relatively inflexible software, as it adds complexity which accounts for only one type of change.

#software