This 2015 post from Martin Fowler about YAGNI (you ain’t gonna need it) is a reminder that the costs of building, delay, carry and repair of functionality must all be considered before deciding to pre-emptively implement functionality that isn’t yet needed.

Most people instinctively only consider the cost of building; “now that we’ve thought of it, and it looks easy, we should implement it now rather than later” which fails to consider the other costs of delay, carry and repair.

Fowler’s suggestion to imagine the effort of integrating the feature later is a good one; “Often that thought experiment is enough to convince [the developer] that it won’t be significantly more expensive to add it later.”

Martin Fowler, YAGNI