code-for-a-living May 19, 2022 Crystal balls and clairvoyance: Future proofing in a world of inevitable change While the future may be a mystery, you can design software to accommodate future changes. But how much future-proofing gets in the way of good design? Daniel Orner