Photo bySevenStorm from Pexels
You are at your computer, you are motivated and fully engaged to start working on your personal project. Now is the time to take action. - Only a few seconds later you are staring at a blank screen. You have no idea how to start your project. You start to overthink your project. You realize developing Software is hard and your brain prefers to do easy things. Before you even notice, it is way past your bedtime. - You basically spent the entire evening procrastinating instead of working on your project.
There must be a quicker way to get started and remove the obstacles that prevent you from taking action. Let's have a look at a couple of strategies that might help.
Artists have problems when they start to create an artwork, they take a look at a blank canvas and think:
Look at it's beauty, the infinite white, the perfection, every part of the canvas is perfect. You are a flawed human that does not know anything - how could you even create any sort of masterpiece that will justify destroying the perfection of this empty page.
Something similar happens when you open up your code editor and you stare into the blankness of the page. You can create anything. In most cases you do not yet fully understand the problem you want to solve. Your solution could make things even worse, "every line written is a potential bug". So you are paralysed to start.
What really helps is to limit your options and make a more clarify for yourself what you want to do. I want to create a drawing gives you unlimited options - however if you say I want to draw a cartoon cat at nighttime in Paris, limits your options and helps you to get started. The clearer your vision is what you want to do the easier it becomes to execute your plan.
You have to get started with your project. Starting a project always requires a lot of willpower and energy. Once the project has started it is much easier to continue working on the project as the project gains momentum.
To start any software project, just create a simple "Hello World" - Program. It is really that simple. Just by creating this simple program. You made a decision on the fundamentals of the project - which programming language, the initial tech framework etc. You then extend that project and then rewrite it to the project you want to create.
You cannot make a wrong decision. The worst thing that might happen is that there is some work is required later on. You can always rewrite and switch your tech stack later on. It does not really matter, every tech stack has its trade offs. Later when your project is successful you can reevaluate your initial decision. And if needed rewrite the entire project in a more efficient way. The important thing is that the project gets started - and remember:
It is better to make mistakes and correct them later on than not starting.
Procrastination is the habit of delaying an important task, usually by focusing on less urgent, more enjoyable, and easier activities instead. MindTools
Procrastination is probably the most fancy word you for saying that you are distracted by the internet. The only way of beating Procrastination is to take action and get the hard task done. In short stop reading this article and get to the task that you are putting off. It is that simple.
Unfortunately you just continued to read this article, so lets dig a little deeper what is going on and how to develop a strategy to procrastinate less. Your brain is not convinced that the effort to complete the action will match the reward. Most commonly people procrastinate with social media, it is always unexpected and you will get some emotional response, if is positive, funny, or something that makes you angry - it is an easy task that will always reward your brain that it did the task.
Every person is different, here are a couple of common strategies that can help. You can tackle Procrastination from a couple of angles: Internal Dialog, Distractions, Rewards and Commitment
Your internal dialog is going to try to persuade you to do other tasks. In the worst case even just start to become negative and steal the energy needed to complete the task. By adjusting your internal dialog to something more positive can help you complete the task.
Forgive yourself for procrastinating in the past. You should not beat yourself up because you did not yet complete the task. It does not matter - you can forgive yourself and look forward. Have a positive outlook for the future and that you are going to complete the task.
You are in control of your actions, you are actively choosing to do tasks - You feel disempowered when you constantly are telling yourself "I have to do this task". It makes you feel that the tasks you are doing are out of your control. When you rephrase it to: "I choose to do this task". You actively make yourself aware that you are choosing to do this task. You are in control and the task is not forced upon you.
Most work does not have any meaningful reward attached to it. If you can find a way to increase the reward the easier it becomes to get the task completed.
Define and give yourself a Reward for completing the task. - Your brain wants to be rewarded for doing the hard task, it will make it easier to convince yourself to get the task done when you exactly know what the reward in the end is going to be.
Do everyday the most annoying thing first. This has a built in reward. The reward of completing this task is that all other tasks that you have to complete that day will be more pleasant. In addition you do not have to dread this task the entire day.
In reality you still really do not want to do the task. You will welcome any distraction that comes along to avoid continue work on the task. By minimizing your distractions you are just more focused on the task at hand and more likely to complete the task.
- Immediately complete the task - If it is a small task just do it immediately. This just eliminates the possibility of procrastination from the beginning. In addition you do not waste any time thinking about the task and feeling bad for not yet have done this small little task.
- Control your Distractions - Be more aware of what is distracting you from completing your task. Minimize as many distractions as possible.
When you get around to doing a task is a question of priority. If something is really important for you, you are going to take care of it. By committing yourself to a task, you will feel obliged to actually finish the work.
Internal Commitment - You make a contract with yourself that you will complete a task. Treat your Todo List as a collection of contracts that you must fulfill. They have a clear definition what needs to get done, a specific time when you will do them and when they have to be completed.
External Commitment - Basically ask someone to check up on you. This can be a major productivity booster. Peer pressure definitely works and it works especially well when you are working together to a similar goal. This is the principle behind self-help groups. Note: This also can be a terrible idea. It is much more fun to procastinate with a friend.
In short: You have to show up and focus to complete the task.
There is a piece of advice when you are writing a book: "Do not tell anyone that you are writing a book". The reason is, while you are talking about your book, you are actually not writing your book.
The problem is that you already spent mental energy thinking about your book. Your mind marks it mentally as a completed task for the day. In reality you did not write a single page.
A similar thing happens when you say: "I cannot start the project, I have to read up on the subject first." Developers will spend hours reading books and experimenting with tutorials, watching tech talks - But actually they were avoiding the work on the actual project.
You have to make a distinction if you are reading for your own personal entertainment (i.e. procrastination), or if you are reading to take action. When you are reading to take action, you are taking notes, you are letting the ideas of the book influence your thinking and inspire you to take the next step with your project.
Engineers are trained to analyze every situation. They deeply think about every scenario and every edge case that could go wrong. This might be the greatest strength and the greatest weakness of engineers.
Instead of taking action and fix things along the way engineers sit down and start to analyze the problem. Every edge case and every scenario how the project could fail. They are so engaged to focus on the faults of the idea that they never start.
Even if the project has a 99% success rate an engineer will struggle to get started. It is impossible that the risk of failure is only 1% the analysis must be flawed.
In short, they start to overthink and over-analyze effectively stopping them from making any decision. They are stuck in Analysis Paralysis.
You have to come to the realization that every possible solution will have flaws. In reality if your solution covers 70% of cases you have a more than average solution to a problem. The remaining issues can be solved over time, or can be solved with another solution.
Making a decision, committing to any plan of action is better than doing nothing. When you are coding, you will have to rework your code eventually. The rework is always going to be simpler than getting started. No matter what you do your decision will have some sort of downsides.
‘From failure we learn, from success not so much’. Lewis in Meet the Robinsons
The important thing is to accept failure and learn from it. You will recover. And because you have failed it is more likely you will succeed the next time.
In fact you should seek out to fail faster - because with each failure you learn something new that will improve your project and it will make your success even more likely.
Often you do not have a fear of failure, but actually a fear of success. When the project succeeds then your life will change. Frankly no matter what your situation is, you prefer the status quo. It feels familiar, controllable and why do you want to change. It is much easier to imagine this new life compared to put in the hard work to actually obtain that life.
The reality is everything is always constantly changing. By working on your project you are taking control of your life and that makes it easier to embrace the constant changes.
A Promodoro Timer follows a very simple concept: 25min work then 5min break
You can choose whatever time interval suits you best. It is a fixed time of work and then a fixed time of relaxation. It is a very powerful technique if done correctly.
To make the promodoro timer technique work, these prerequisites must be met:
- You commit to the task
- You commit to the deadlines (i.e. the task must be completed and more importantly the reward activity must end on the timer)
- The task is predefined - and must be completed during this time and you do not permit interruptions
- You know what activity will relax you after the task.
What happens if I do not met these prerequisites? You just found a way to procrastinate on a timer. When the prerequisites are not met suddenly the timer tracks 5min work and 25min procrastination.
There is a simple technique to figure out what you should focus on:
- Write down the 25 Items that you need to do.
- Identify the 5 most important tasks
- Only focus on these 5 items before moving on to the other items on the list
Overall this technique can be useful for organizing your day to day todo list. It is very likely that you will only find the time to complete 5 tasks per day.
Note: This technique is often associated with Warren Buffet and how to achieve your life goals. He however debunked this myth. He does not use this technique and it apperantly also does not work when applied for life goals.
The more often you work on your project the easier it becomes to get started. Working on your project should become part of your daily routine. One way to establish this is to create chains in your calendar.
- Get a wall calendar
- Put a big x on every day when you worked on your project.
- After a couple of days you will have a chain. Your only job is to not break the chain.
The beauty of this technique is, that it automatically creates a visualization of your progress. At the same time it is a visual reminder that you should work on your project. It does not care about if you are motivated, how much time you spend working on the task, or if you are getting the results you expected. It only cares about that you show up and get the work done.
Important: You are allowed to break the chain. Breaking the chain does not mean that you failed. It just means that on that day other things were more important. That is ok. Just start a new chain and see how long you can make it.
Note: This technique is often referred to the "Seinfeld Strategy". Jerry Seinfeld, was asked in a Reddit AMA if the legendary story was true, however he debunked this story.
A similar method of visualizing your projects achievements is to have an accomplishment journal. In this journal you keep track of all the accomplishments of the day.
It is very simply to create this journal.
- Set up a reminder in your calendar to write down your achievements of the day
- Write down all of your accomplishements of the day. It does not matter if they are big or small.
Just by writing your accomplishments down you will recieve a confidence boost. When you have self-doubt you can flip through the pages and remember your accomplishments.
In addition the journal helps you keep you on track and visualizes your progress. In addition it motivates you to do at least one thing that you can write down in your journal.
Note: This journal helps you to communicate your achievements to your manager in a weekly/ monthly status report. It also can help when you are appling for jobs, you can then easily reference your achievements.
Every journey starts with a single step.
But to complete the journey you must take one step after another. Now I wish you good luck on working on your project.
If you like leave a link to your project in the comments.