I think one way of avoiding having to commit to hard deadlines is to never give hard deadlines to customers. Unless you are making a AAA-title video game, in which case launch dates are important for marketing, there should be no reason to give a fixed deadline for the release of some software until it is nearly complete.
Delivery dates are also important if you are doing client work. If a client can only afford to pay you for so many hours and you’ve promised them those hours (particularly if they are codified in a contract) then you need to deliver on time, or in the worst case have a frank discussion with them as soon as you realize there is an issue. Avoiding the pressure of crunch time is a good idea, but circumstances don’t always make it possible.
I think one way of avoiding having to commit to hard deadlines is to never give hard deadlines to customers. Unless you are making a AAA-title video game, in which case launch dates are important for marketing, there should be no reason to give a fixed deadline for the release of some software until it is nearly complete.
Delivery dates are also important if you are doing client work. If a client can only afford to pay you for so many hours and you’ve promised them those hours (particularly if they are codified in a contract) then you need to deliver on time, or in the worst case have a frank discussion with them as soon as you realize there is an issue. Avoiding the pressure of crunch time is a good idea, but circumstances don’t always make it possible.
If they can only pay $X, then they should negotiate a contract based on deliverables, not hours.