I know he means well, but every time my boss talks about future-proofing, I cringe. On the face of it, future-proofing your software, that is, building your code in such a way as to allow it to meet future requirements with minimal refactoring, sounds like a worthy ambition, but in my experience it's always disaster.
The reality of future-proofing is that it boils down to adding complexity to your code that:
- will add significantly to your development cost;
- you will most likely never need, and
- will make it harder to meet critical requirements which you did not anticipate.
Another thing that really bothers me about future-proofing is that it implies that the future is full of bad things to be guarded against, rather than a cornucopia of opportunities to be embraced.
Posted on Wednesday, May 23, 2012 at 12:27AM