Focusing on Commitment Over Deadlines
This post discusses about focusing on commitment over deadlines.

In programming, deadlines can be difficult to accept due to the criteria for their inception. Common pitfalls in creating deadlines are: they are made in a vacuum, they are a guesstimate, or they are dictated by the business. Most programmers become frustrated by these situations because they are held to a standard they do not control. A dictated deadline lacks a sense of personal responsibility. Instead of providing a deadline, ask developers to set their own deadlines, recognizing that the dates selected must be within a reasonable time frame. Be abundantly clear that whatever date they choose will result in a binding commitment to complete the work requested.
It's important to clarify that they are responsible for making sure the work gets completed and that excuses will not be tolerated. Once the work has started, do not continuously check up on them. This is perceived as a lack of trust. Inform them at the outset they will manage their own communications about their commitments. The onus is on them to ask for help and/or communicate any related concerns or issues in a timely manner. When discussing the work, be sure to place the emphasis on their commitment and not the deadline they provided.
Why does this work? Switching the context from a mandatory deadline to a personal commitment changes the conversation. It moves the responsibility from the company to the individual and taps into their personal integrity. To be successful, programmers must accept and internalize the work. This empowers them to be their own boss. It places them in the drivers seat. If a programmer ultimately falls short of a deadline, which will happen, use that as a learning opportunity and building block to create future successful deadlines. Contrastingly, if a programmer consistently under-commits, do not be afraid to ask them to stretch on their next assignment. Within a short window, most programmers realize the importance of understanding the work, defining a suitable time frame, and managing their workload properly. Through this process, they internalize the responsibility required to be a reliable, trusted, productive team member.