This article is part of my Agile series, where I discuss various Agile-related practices from developer’s point of view.
I admit. I’m guilty as charged here. For most of my career, I was the one who would always complain over the deadlines.
Why the hell do we have them? Why are you bothering everyone to estimate stuff instead of letting us do the actual work? Why the hell are you trying to limit my creativity by trying to put a calendar on it? Don’t you understand that IT DOESN’T WORK THAT WAY?
The lines above are pretty much exact stuff that I would whine about over and over again. I would respect them, for sure; but nonetheless, I’d hate them to my guts.
I wouldn’t lie to you if I told you that I was under a strong belief that the only point of having a deadline is to be able to whip my team’s ass and put as much pressure as possible.
And yet, as you could imagine, I’ve changed my mind. Don’t get me wrong here – I’m still infuriated by a sheer thought of them. Discussing a deadline, or, as we usually call it – a “rough estimate” makes me go through a mini panic attack. I feel nauseous. I feel scared. I feel lost. What if we under-estimate? Or over-estimate? What if we overlooked some big chunk that has to be done? What if we MISS the deadline? Being an over-thinker doesn’t help here, really.
And yet, I’ve changed my mind. I still hate them, but I do understand them. And I’ve managed to reduce my full-blown “go to hell, managers!” episodes to a reasonable and workable minimum. And this article is about HOWs and WHYs behind it.
“Man, I don’t get it, why the hell do they keep bothering us with these estimates?”, said a colleague of mine. “Can’t they just leave us alone to do our job? What’s more, I know of companies that operate WITHOUT any deadlines at all!”.
I thought about it. At this point I was already taking a more responsible lead developer role and I felt I owe an explanation. That’s what my role IS about, no? Making sure that my teammates understand the WHYs.
“But how would you do it then?”, I asked, “How would you actually plan anything ahead? How’d you manage multiple teams working on multiple products at a time, without having any ‘guidelines’ to work with?”.
Honestly, I myself didn’t have an answer at the time. The only thing that I actually did was that I rephrased the question in a more broad context. Switched it from “I” perspective to a broad one. Because that’s what a deadline IS. It’s not about YOU, it’s about global picture.
I had no definite answer, but something interesting has happened at the time. You know that weird feeling when you, say, want to buy a specific car or a phone or whatever it is really. You want to buy something and, up until that point, you never noticed anyone else having it. But now, all of a sudden, it seems like every third person has that car, or that phone! You keep seeing it over and over again. I actually looked into this and it seems to have an official name as well — Frequency Bias (or Frequency Illusion).
Well this started happening to me as well. The moment I started discussing WHY do we have deadlines, I somehow started coming around books, articles and podcasts that kept mentioning them!
Why do we have Deadlines?
Amazingly fair question to ask. Why do we have them? Can’t we do without them?
I’ll actually start this by citing the one and only – Uncle Bob. Specifically, here’s an excerpt from his “Clean Agile” book:
What is the first thing you know about a project? Before you know the name of the project or any of the requirements, there is one piece of data that precedes all others. The Date, of course. And once The Date is chosen, The Date is frozen.Source: Clean Agile: Back to Basics by Robert C. Martin
You know what I find to be interesting here. When you have a person who has been a developer their whole life and who seems to have been fighting AGAINST shitty management principles for pretty much the most of it, reading something like this makes you wonder. At least it made ME wonder!
The simple answer is — because you CAN NOT manage a project without it. Absolutely not. Because how would you? Really? Just go and think about any endeavour of yours that had no deadline attached to it. Unless you are super-ultra-mega disciplined and strict on doing exactly the specified steps in extremely specific order, the chances are that you either never really finished it or it took you looooooong time to get there. Most likely you left it at some 50-75%, waiting for it to be finished.
So, let me say it again:
You can not run a (successful) project without having a clear deadline!
Be it a customer, a friend or acquaintance, the moment you mention delivering something to them, you are creating an expectation! And that expectation is a deadline. And trust me, it’s better to have it CLEARLY defined than to learn about it 2 days before!
Are managers evil for asking for ‘rough estimate’?
Well, some surely are. There are lots of people with lots of different issues, so there’s usually a high likelihood that out of 100 people, at least one has serious issues and traits to be considered ‘evil’.
But are they evil because they ask for estimate? Absolutely not! I know this is hard to comprehend, because I, for one, have trouble coming to terms with it. But the truth is – your manager is most likely being held accountable by his manager. So he’ll get in trouble if he misses the deadline. And his manager? Well, probably the same. Depending on the depth of hierarchy in your company, this responsibility goes all the way up to CEO. And guess what? CEO is also held accountable! And heavily so! In best case by his customers, and in worst case – both by customers AND the board.
So, you see, the higher you rise, the more deadlines you have to deal with. On the “lowest” level of accountability (i.e. level where you and I are), we usually have to deal with one or maximum two deadlines. But the higher you go, the more deadlines you are held accountable for. Yep. So technically, if you have JUST ONE to deal with, you should be considering yourself lucky 🙂
Clearly defined deadlines are way better for YOU
Because, let me put it this way. Imagine you are tasked working on whatever it is that you are working on. And nobody tells you until WHEN they need it. You just, hopefully, know WHAT is needed. All great!
Well, depending on how disciplined you are, you might or might not get this finished ASAP. If you are perfectionist like I am, there’s a high likelihood it’ll never be good enough so you might as well keep doing it forever.
But for the sake of the story, let’s assume you are given a project without a deadline. And you start working on it and, occasionally, you probably wonder if there’s some date until it has to be finished … but nobody mentions a thing and you keep working on it.
Well, if you’ve been in this industry for anything longer than 2 years, I’m sure that you must have experienced a situation where your boss would come in and tell you that this project is NEEDED URGENTLY. For YESTERDAY!
So you went from NO DEADLINE all the way to HERE’S A DEADLINE accompanied with a high risk of missing it! Tell me about stress now …
So take my word for it — there ALWAYS is a deadline. The only question is whether it’s clearly communicated or not. And by being asked about an ESTIMATE, you are actually in position of power, where you can at least communicate the date. Technically, you are trading more responsibility NOW for less stress in the future. I’d take that bargain.
All professions have deadlines
This is actually what I was referring to when I mentioned the frequency illusion above. The moment I started thinking about all this deadline’s nonsense, I started noticing more and more of it. Let me give you some of the interesting examples that I’m referring to:
Pixar and Disney
I’m not really a huge fan of either (I know, what a weird childhood, right?) but I’ve mentioned on couple of occasions that for whatever random reasons I read autobiographies of Steve Jobs (Pixar), Ed Catmull (Pixar), Walt Disney (Disney), Bob Iger (Disney).
If you really look closely into it, you’d actually notice that EVERY project that they embarked on had a DEADLINE in it. Seriously. It might be called differently (e.g. premiere), but every single cartoon that they made came with a deadline!
Just go and read an autobiography of ANY writer. Or listen to a podcast with them, whatever. I think they could all agree on one thing — they hate publishers and deadlines. The moment you agree on anything with a publisher, you get a deadline!
This is a funny one. Lots of people assume that startups have NO deadlines, right? Au contraire! Startups usually don’t have clear deadlines because EVERYTHING is always urgent and late! Or at least most of the time.
And this is coming directly from someone who, 7+ years ago quit his corporate job because he was sick of deadlines and pressure, and went to pursue a career in startup world.
Take my word for it – startup’s deadlines are way harsher and shorter than corporate ones.
You’d think that being a doctor comes without commitments, right? Say that again?
Right? Even though there’s no clearly defined deadline, being a doctor usually implies that your deadline is – AS SOON AS POSSIBLE!
That one company that has no deadlines
We all know one, right? I, for one, know one that has no deadlines. And yes, they are a pretty successful business for 15+ years.
But hey, what can I tell you here? I think the truth is way more complex AND these companies are, in my opinion, in a minority. If you find one – great for you!
Why do people hate deadlines then?
I think this might be a deeper cause of the “we don’t want any deadlines” nonsense. At least from my point of view.
I believe that it’s not that we dislike deadlines, but rather – we dislike being forced to do so much planning and thinking ahead, and dealing with responsibility of under/over estimating stuff. It’s basically forcing us to leave our comfort zone of “just coding” and doing something that we might suck at.
But this is really where having a clear development methodology (e.g. Scrum) comes in place. This is why you do all those sprint reviews, daily meetings, etc. You do this so that you can clearly communicate the progress and so that your manager and other stakeholders can spot any upcoming issue and MANAGE it. Yes, that is what project management really is all about!
I’d also like to mention the way our Scrum Master deals with this. He enforces the use of the word FORECAST instead of a deadline. Because forecast is something that you plan for, but you track it and adjust along the way, whereas deadline is something that is usually set in stone and nothing can be changed (managed) about it.
Embrace, Commit and Improve
I’d close this article with these last thoughts — instead of arguing, accept the fact that there is no (successful) project without clearly defined deadlines (roadmaps, commitments, estimates, forecasts, …). Hence you should rather embrace them and ensure that they are clear from the start!
Commit to them because, for one, you are probably paid for doing it, and two – commitment and responsibility are two important characteristics of a senior developer.
Finally, in case that you actually do miss the deadline, retrospect on it and find a way to improve next time.
Nobody likes them; and yet, they are inevitable. Having a clear deadline (or, list of deadlines for that purpose) is the only way of actually planning anything ahead and managing projects.
Call them forecasts, roadmaps, commitments, goals, … it doesn’t really matter. It boils down to having a general estimate of how much work there is to be done and intersecting that with the stakeholders’ expectations.
If you liked this article, you might also like:
- Story Points that mistook themselves for Hours
- The Product Owner’s Curse
- Scrum. From developer’s perspective.
- “I don’t know how to manage people”
- Art of Starting Things
If you want to stay up to date about what’s happening on this blog, you may befriend me on LinkedIn, follow my posts on Instagram and Twitter, or subscribe to RSS feed.
If you prefer, you may also subscribe to my mailing list:
3 thoughts on “Deadline and The Beast”
I think there are two additional considerations that make deadlines particularly hated by software developers :
– Complex software systems always have a high level of uncertainty for their development. Even if 95% of the project goes buttery-smooth, there could be a 5% that turns out to be a technical nightmare and completely screws up the forecast. In my experience, each project is different, and different stakeholders/developers can mean radically different forecasts, even with similar scopes. Only a well-established and experienced team has a chance to get a forecast right, but this ideal case is not too common in the real world.
– Deadlines are not about tech or engineering. They are about people, relationships, sales, marketing, finance. They revolve around concepts that are not the focus of software developer personalities and career choices. We also tend to be perfectionists, which is the absolute nemesis of deadlines. I think those things add extra friction when we coders have to deal with it.
This being said, I totally agree that deadlines not only are fundamental but, counterintuitively, they may even be beneficial for reducing stress. Having a clear plan and set expectations can be a much better situation then constant uncertainty and sudden emergencies. A sign of a good senior developer is also his ability to turn estimates and forecast to his advantage. By leveraging his technical competence and communication skills, he is able to translate to stakeholders a domain that is mostly black magic to them, and push back unreasonable demands when needed.
I still bloody hate deadlines…
Great post as usual Mihailo!
Ok so I’ve been really taking some long thought about this and, well, I actually think that part of my opinion will be contained in a new article that I’m working on (“Why do we suck at estimating stuff”).
But, you know, I wholeheartedly agree with you. Really.
I’d just like to add something. The main issue that seems to be overlooked is –> yes, deadlines are always there and necessary, BUT, manager’s job is to try and fit WHAT can be delivered during that timeline and to coordinate and react accordingly as the deadline approaches.
Like, just look at any big company (e.g. Apple). Those guys had announcements for products where they would announce a product and then promise to ship it later that year, right? Same shit happens with games, etc.
The point is — I strongly believe that PROJECT MANAGEMENT is that shady area between ESTIMATION and DEADLINE. And trying to fit what you CAN in the deadline.
Which, further leads me to say — usually the LACK of aforementioned IS what creates most problems (in my opinion). Unexperienced managers not understanding that not everything can always be delivered at time, and being afraid to act on it is, IMO, frustration 101 🙂
>> A sign of a good senior developer is also his ability to turn estimates and forecast to his advantage. By leveraging his technical competence and communication skills, he is able to translate to stakeholders a domain that is mostly black magic to them, and push back unreasonable demands when needed.
This should be printed! Amen!!!
Man this is such an amazing reply (and one more reason why I think you need to start blogging as well!).
Please allow me some time to actually think about what you said. I think you have some very good points, but I really want to think them through.
And again, man, really big thanks for taking time to read my articles and write out your opinion! Really appreciated!