"Deadline" is not a very popular word among developers. The dread of a looming deadline can frustrate and ultimately distract programmers. Every developer would love the opportunity to work on a project free of stress and deadlines. The reality is that deadlines are a core part of any successful, profitable company. Missing too many deadlines can result in frustrated customers, reduced industry confidence, or even a loss in market share. In the fast-paced world of software development, every project starts with an idea and ends with a deadline. Instead of attempting to manage the stress of deadlines, it might be time to redefine them into a more palatable approach.
In programming, deadlines can be difficult to accept due to the criteria for their inception. Common pitfalls in creating deadlines are that 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 driver's 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. In contrast, 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.