If I ask you, “have you ever worked on a project with unrealistic deadlines?”, some of you may reply “dude, that’s our default mode of working” 😉
Yes, we have all been there at some point of time in our careers. If we are in this situation once in a while, that may be acceptable. But if we are in this mode of working on a regular basis, then it is very difficult to cope with it.
So, how to handle if you are constantly asked to take up projects with unrealistic deadlines all the time? One of my ex-managers gave me great advice a few years ago which really helped me a lot. I am going to share that simple but effective tip with you in this post.
A few years ago I was working at a company, and most of the things were good. The only challenge is we had to agree for ridiculous and unrealistic deadlines for most of the projects.
Let me give an example of how the estimation process was. We (me, lead/manager, senior devs) were asked to do the analysis for the project and come up with time estimates. We do our math and come up with a number, let’s say 2500 hours. And, after 45 minutes of discussion, we were told to go with the finalized estimation of 450 hours 😱 . Unfortunately, this used to happen for almost every project time estimation.
When it comes to timelines and delivery responsibility, I used to be a little stubborn. I was like “You agree to my time estimates then I will take full responsibility. If you want me to follow your aggressive and unrealistic deadlines, I can’t take full responsibility.”
Of course, the bosses don’t like to hear this. They want us to take full responsibility while following their timelines.
One day I met my manager at the parking area and the “estimations” topics came up.
Then he gave me this wonderful advice:
The business team only thinks about what features they want to build, how quickly they can go to market, how to sustain the competition, etc. They don’t worry about code quality, whether you wrote tests or not. They assume you are already writing high-quality code which can be easily extended with new features. For them, releasing the new features is most important; otherwise they may lose the market share. On the other hand, we, tech team, know how difficult it is to add more features because we have been taking shortcuts to meet the deadlines.
When it comes to timelines, either my way or highway approach doesn’t work. You need to compromise on few things and then ask them to compromise on few things from their side. You can ask them to extend the timelines a little more and ask them to cut down the scope a little. Usually, they give all the wishlist of features, but some of them are not really that priority. So, they are usually ok to remove those “nice-to-have” features.
Your concern about the code quality going down due to these unrealistic deadlines may be valid. But going head-to-head with business will always bring more conflict between business and tech teams.
This suggestion was an eye-opener for me, and I started following this advice. To my surprise, many business people can understand the tech team challenges and are happy to postpone the development of “nice-to-have” features.
Thank you Koti for such a wonderful advice 🙏