A lot of the ideas communicated resonate with me. The estimation process doesn't work well, and creates friction when things change that can interfere with the delivery of what's actually needed.
BUT...how do you also maintain some degree of accountability? If timelines can perpetually slip due to changing requirements and there's no objective mechanism for identifying this, then things might not get delivered at all. Surely some delays in the delivery process are due to inefficiencies or poor prioritization -- deadlines help identify this.
Now, to some extent the answer lies in hiring. The right blend of autonomy and individual motivation negate the productivity slip that might occur in an environment where it's easy to procrastinate. The right people in the right environment will self-police and police each other (in a healthy way).
I appreciate deadlines as a mechanism for forcing a discussion about tradeoffs. If there's some cost to delaying things then I'm more likely to think carefully about taking on the associated work. This usually leads to better decisions. I (usually) avoid spurious refactoring and overzealous testing, and scrap features that are less important.
So, rather than do away with deadlines entirely I think it's important to build up a culture that:
* Avoids punitive patterns -- rarely should folks be held unaccountable for adjustments in the timeline. Unless it's a clear pattern, it's not the fault of the person.
* Embraces (sometimes a lot of) discussion about deadline adjustments and the associated trade offs. There should be some friction to missing a delivery date, but not so much that it prevents us from doing the right thing.
This is of course hand wavy and really hard to get right.
BUT...how do you also maintain some degree of accountability? If timelines can perpetually slip due to changing requirements and there's no objective mechanism for identifying this, then things might not get delivered at all. Surely some delays in the delivery process are due to inefficiencies or poor prioritization -- deadlines help identify this.
Now, to some extent the answer lies in hiring. The right blend of autonomy and individual motivation negate the productivity slip that might occur in an environment where it's easy to procrastinate. The right people in the right environment will self-police and police each other (in a healthy way).
I appreciate deadlines as a mechanism for forcing a discussion about tradeoffs. If there's some cost to delaying things then I'm more likely to think carefully about taking on the associated work. This usually leads to better decisions. I (usually) avoid spurious refactoring and overzealous testing, and scrap features that are less important.
So, rather than do away with deadlines entirely I think it's important to build up a culture that:
* Avoids punitive patterns -- rarely should folks be held unaccountable for adjustments in the timeline. Unless it's a clear pattern, it's not the fault of the person.
* Embraces (sometimes a lot of) discussion about deadline adjustments and the associated trade offs. There should be some friction to missing a delivery date, but not so much that it prevents us from doing the right thing.
This is of course hand wavy and really hard to get right.