Unrealistic deadlines are a common problem in software development. They can harm the quality of the work, the morale of the team, and overall, the project’s success. This article discusses the dangers of unrealistic deadlines, how to identify them, and specific actions to attenuate them.
Software development is a complex process with many moving parts. It is important to set realistic deadlines for each task to ensure that the project is completed on time and within budget. However, unrealistic deadlines are often set due to several external and internal factors we must be aware of.
The dangers of unrealistic deadlines
“People under time pressure don’t work better, they just work faster” - Demarco & Lister, 1987
Unrealistic deadlines can have many negative consequences you should be concerned, including:
- Increased stress and burnout for team members, decreased morale and motivation: When team members feel like they are constantly working under pressure, that their work is never meeting expectations, making it even more difficult for them to focus, it can lead to decreased morale and motivation. This can also make it difficult to attract and retain top talent needed to keep the quality of the overall product.
- Decreased quality of work, increased risk of errors and defects: The teams are more likely to make mistakes and produce lower-quality work. Workers kept under extreme time pressure will being to sacrifice quality, team members may not have enough time to properly test their code or fix bugs.
- Scope creep and feature creep (when new features or requirements are added to the project after the initial scope has been agreed): It is nearly impossible to stay on track and meet the deadline if the scope is constantly growing. If you have ever got an extra time on the deadline agreeing more scope as trade off, you made the problem even bigger!
- Unneeded work is done, work is not optimized: When there is no time to stop and think, the teams tend to produce right away, without exploring better solutions or wondering if it needs to be done at all, creating a lot of waste (features no longer needed, not used or discarded).
- Damage to customer relationships and missed opportunities: If the project is delayed, or if the software does not meet expectations, can damage the company’s reputation and make it difficult to attract and retain customers.
- Financial losses: Unrealistic deadlines can also lead to financial losses for the company. The company may have to pay for overtime, hire additional staff, or delay the launch of the product losing market opportunities.
- Project failure: In the worst-case scenario, unrealistic deadlines can lead to project failure. This is when the project is either abandoned or when the software is released in a state that is not ready for production.
How to identify unrealistic deadlines
There are several signs that your project may be suffering from unrealistic deadlines, including:
- Team members are constantly working overtime.
- Team members are reporting feeling stressed and overworked.
- Team members are cutting corners to meet deadlines.
- The quality of the work is decreasing. Team members are making more mistakes than usual.
- Including new features take longer and longer (Tecnnical debt is increasing).
In addition to these signs, you can also look at the following metrics to detect that your project is suffering from unrealistic deadlines:
- Velocity (measure of how much work a team can complete in a given period - Story points, points, or other unit of work). If the team’s velocity is consistently lower than the amount of work that needs to be done, it is a sign that the deadlines may be unrealistic.
- Task completion rate (the percentage of tasks that are completed on time and within budget): If the task completion rate is low, it is a sign that the deadlines may be unrealistic.
- Risk assessment (the process of identifying and evaluating the risks associated with a project): If the risk assessment shows that there are a high number of high-risk tasks, it is a sign that the deadlines may be unrealistic.
- Team morale (the overall attitude and outlook of the team members) and Burnout (a state of emotional, physical, and mental exhaustion caused by prolonged or excessive stress): If team morale is low or team members are experiencing burnout, it is a sign that the team may be struggling to meet the deadlines.
Actions to avoid and attenuate unrealistic deadlines
“The project that has to be done by an imposible fixed date is the very one that can’t afford not to have frequent brainstorms and even a project dinner or some such affair to help the individual participants knit into an effective whole” - Demarco & Lister, 1987
There are several things you can do to avoid and attenuate unrealistic deadlines, including:
- Set realistic deadlines in the first place. This may seem obvious, but it is important to take the time to estimate how long each task will take and to factor in buffer time for unexpected delays (e.g. illness, external dependencies). Remember estimations must be provided by the team and not imposed by managers. Consider also the additional time needed on brainstorming (backlog refinement), analysis and exploration.
- Break down large tasks into smaller (more manageable) tasks. This continued break down large tasks into smaller, more manageable tasks. This will make it easier to estimate the time required for each task and to track progress.
- Communicate with stakeholders regularly and keep them updated on progress. This will help to ensure that everyone is on the same page and that there are no surprises down the road. A deadline is a shared commitment that both, stakeholders and development team, must collaborate on. Be prepared to adjust deadlines as needed. Things don’t always go according to plan, so it is important to be prepared to adjust deadlines as needed. This may involve communicating with stakeholders and explaining why an extension or scope reduction is necessary.
- Prioritize tasks and focus on the most important ones first. This will help to ensure that the most important tasks are completed on time, even if the deadlines for less important tasks have to be adjusted.
- If the deadline can’t be challenged, challenge the scope to be delivered at that unnegotiable date. Divide the scope into multiple deadlines (milestones) when needed.
- Say no to new requests if necessary. It is important to be realistic about what your team can accomplish. If you are asked to take on too much work, it is important to be able to say no. Have a clear Change management process, take into account current hours invested (e.g. analysis) and the impact in the overall scope before including or swapping features. Remember, if the scope increases it usually means that the deadline should be also delayed.
Unrealistic deadlines are a common problem in software development, but they can be avoided or attenuated. It is important to remark that the quality of the work is more important than meeting unrealistic deadlines. By taking the time to set realistic deadlines and manage your project scope effectively, you can ensure that your team produces high-quality work and that will directly impact project success.
- Peopleware: Productive Projects and Teams by Tom DeMarco and Timothy Lister
- The Mythical Man-Month: Essays on Software Engineering by Frederick P. Brooks Jr.
- Agile Software Development: Principles, Patterns, and Practices by Robert C. Martin
- The Deadline Fallacy: Why Deadlines Don’t Work and What to Do Instead by Dan Olsen