No goal is complete without a deadline. Figuring out the when of your goal is a crucial element for achieving it. If you don't set a good deadline, chances are it'll take much longer to achieve your goal (if you achieve it at all). But if you do set a good deadline, you'll achieve your goals much faster than you thought possible.

Still, setting a deadline isn't always as simple as it seems. Douglas Adams, author of The Hitchhiker's Guide to the Galaxy once said that he loved deadlines, particularly the whooshing noise they make as they go by. We've all been there. This article will help you set the achievable deadlines you need to complete your goals.

6 Tips for Setting Better Deadlines

If you have two hours for a task you could do in one hour, it will most likely take you two hours, because Parkinson's Law says that work expands to fill the time available for it. That's why it's crucial to set deadlines that are achievable, but don't use up more time than necessary.

Break Down the Goal

To set better deadlines, often you need to work on your goal first. The bigger your goal, the harder it is to set a precise deadline. Become a Go developer by 15 December feels arbitrary if you don't break that big goal down into smaller goals, each with their own deadlines. Chart the path first.

The smaller the goal, the easier it will be to set an accurate deadline. You may not know how long it will take to become a Go developer, but you can probably estimate how long it would take to read two introductory Go books, follow a Go course on YouTube, or write an httprouter in Go.

Make the Goal Actionable

Another problem with Become a Go developer is that it's too vague. At what specific point can you consider yourself a Go developer? If you don't have a measurable answer to that question, you won't be able to set an accurate deadline. That's why you need to make your goal actionable.

Accept a job offer as a Go developer is a better end goal. You'll know exactly when you've achieved it. Make all small goals leading up to the end goal actionable and it'll be much easier to set deadlines for them. You can still keep Become a Go developer in the back of your mind, but it's not really a goal. It's more like the desired end state of your project.

Don't Hide the Deadlines

Some people break down their projects into small, actionable goals, and then hide everything in a note they never check or a calendar app they never use. You need to revisit your goals and their deadlines frequently. Not just to adjust them wherever necessary, because you'll inevitably have to, but also to stay motivated and keep track of where you are.

So don't hide the deadlines. Remind yourself of them every time you want to work on your project. This week you need to complete this, so that next week you can do that, and by the end of the month, you'll be here. Don't rely on your memory for your deadlines, because it will fail you.

Add a Buffer

Developers may be familiar with Hofstadter's Law, which says that something always takes longer than you expect, even when you take into account Hofstadter's Law. So add a buffer to your deadlines. Ten, maybe twenty percent. Particularly for far-out goals, a buffer mitigates the fact that your deadline may not be as accurate as you'd like.

Missing your deadline is fine, by the way. No one can plan perfectly. Particularly for self-imposed deadlines, it may be worth turning the deadline of the last goal into a date range instead of a specific date. For example, somewhere between January and February instead of Jan 30.

Communicate With Others

Whatever your goal is, someone has done it before. That's why it can be helpful to ask other people how long it took them to achieve something. This is more useful for some goals than for others. Accept a job offer as a Go developer may give wildly varied results, from the experienced developer who got a Go job in a month to Redditors saying they're two years in and still searching.

But for other goals, communicating with others may be deeply helpful. If you want to transition an offline monolith product to a cloud-native product on microservices, other software engineers who did something similar may tell you it took them X months and had the following steps. So it's always worth asking around.

Keep Yourself Accountable

Deadlines that you impose on yourself are harder to stick to than those that others have imposed on you. When your boss tells you to have something done by Friday, you'll take it more seriously than if you gave yourself that deadline. That's why it can help to create an external mechanism to motivate you to stick to your deadlines.

This can be something as simple as asking your friends or colleagues to ask you about your progress every week or month. It could be using an accountability app like beeminder. Experiment and figure out if something like this would work for you.

In Conclusion

Don't get discouraged if you struggle to set accurate deadlines. Just as with most things in life, it takes practice. When you have recurring, similar projects, eventually you'll become quite accurate with your deadlines. But you have to set them first, and try your hardest to stick to them. When you do, you'll achieve more of your goals in a shorter period of time.