Lazy and clever can be very useful; sit around thinking about the potential break-down of a problem into aspects that generalise broadly and those specific to the work being done.
Spend the time that needs to be spent implementing the generalisable aspects, so that the work never needs to be repeated.
Implement the problem specific aspects (with minimal code) against those changes (and if any similar problems come up in the future, the changes can be made in minimal time and with minimal work).
Spend the time that needs to be spent implementing the generalisable aspects, so that the work never needs to be repeated.
Implement the problem specific aspects (with minimal code) against those changes (and if any similar problems come up in the future, the changes can be made in minimal time and with minimal work).