Skip to main content

Unreasonable Deadlines

“This is the last time I am doing overtime hours. It won’t happen again for sure.” You are thinking about this and in the meantime your team lead comes into the office and interrupts your thoughts with the similar story: ”Hey guys, only this time we need to do extra effort and after that we will be more concerned about deadlines.” Few months later, a new project and the same story. Sounds familiar? 


Reasons

This can be due to vary of reasons. Some of them could be:

  • Poor planning is reflected by inadequate scoping and requirements. Without a clear understanding what needs to be done, it's impossible to give a good estimate.
  • False optimism by decision makers. Tendency to not think about the details, thinking everything would go smoothly. But if something could go wrong, it will (always) ☺
  • Pressure from clients who are pushing for fast results to meet market demands.
  • Underestimating external dependencies. Not giving enough attention to the third party interface integration.
  • Hero Culture. Teams may embrace a toxic "work harder, not smarter" mentality, leading to overpromising and underdelivering.


What to do in order to fix it?

Allthough there is no silver bullet that can fix everything at once, some of the approaches that could help are:

  • Make communication more transparent. Encourage open discussions and stick to realistic goals.
  • Automate repetitive tasks. Automate testing and CI/CD pipelines.
  • Adopt agile practices. Divide scope, try to give realistic estimates on smaller pieces. Make use of retrospectives and reviews of previous projects.
  • Divide project to more deliverable portions. Clients would be happy to see that something is happening, and also would be able to give some initial feedback. On the other side, you will have clearer picture on what needs to be done and how fast it can be delivered.
  • Hold leaders accountable. Good leaders push back against unreasonable deadlines, first to maintain good team morale, and second to build trustworthiness with clients.


Conclusion

Unreasonable deadlines might seem unavoidable, but their long-term costs outweigh short-term gains. Foster realistic expectations, plan effectively, and communicate openly to build a sustainable, productive engineering culture. 



Comments

Popular posts from this blog

Design Patterns: Singleton

Tyipically the first design pattern most people learn, often wrongly ☺ To give an introduction, we can say that singleton is one of the creational design patterns which ensures only one class instance with single point of access thru entire application.  Because it is relatively simple to implement, the Singleton pattern is sometimes misapplied in situations where it is not the most suitable choice. When to use it? Here are the few examples of corrent usage of singleton: Configuration Management  Centralized configuration settings for consistent use thru entire application Caching Maintaning  Single istance of cached objects for easy and fast acces Logging  Ensure unified mechanism to avoid duplication of log files, formats, etc Global State Management  Centralized management of the state which is needed to be shared accross the application Resource sharing  Thread pools, database connection, I/O operations When not to use it? On the other hand, here are fe...

Design Patterns: Builder

This is also, like a Singleton , one of the creational design patterns. It provides the way of creating complex objects step by step by simple chaining and every particular step is independent of other steps. Let us dive into the real example of usage. For showing purpose we have created an example in C# which creates simple SQL queries using described pattern.  using System; using System.Text; namespace BuilderPatternExample { public interface ISqlQueryBuilder { ISqlQueryBuilder Select(string columns); ISqlQueryBuilder From(string table); ISqlQueryBuilder Where(string condition); ISqlQueryBuilder OrderBy(string columns); string Build(); } public class SelectQueryBuilder : ISqlQueryBuilder { private readonly StringBuilder _queryBuilder; public SelectQueryBuilder() { _queryBuilder = new StringBuilder(); } public ISqlQueryBuilder Select(string columns) { ...

Why Do Employers Lie In Interviews?

This is a very common subject that many of us have already experienced. But when you realize that half of what has been said at interviews is actually a lie, you are already at least six months in the company, you have already started some project and it wouldn’t be appropriate to leave the company at that moment. Why is this happening? First of all, let us see how the usual interview process looks like in software development companies. First round interview in most of these companies is an interview with HR. This is the first insight about the company. A person who works in HR is usually someone who, in most cases, doesn’t understand what the software is and how the software development process goes. Big respect to those companies where HR knows these things. This phase usually contains some standard questions about your personality, what do you like about the company, how this company is something that you are actually looking for, where you see yourself in five/ten  years etc… ...