You can become twice as productive by making one simple change in your day.
The trick is that most programmers are too focused on how to write programs, and they overlook the essential things that make people productive.
Art Of Small Improvements
Kaizen is the process of continually seeking out incremental improvements and constantly making small changes to improve. Kaizen was the reason for the Japanese economic miracle after World War II.
You can apply Kaizen to yourself, your team, and your project.
Small changes don’t require a lot of time or effort, and they create momentum for the next change. Celebrating small wins will result in more enjoyment in your day-to-day work, your results, your paycheck, and even your health.
To start applying Kaizen, think about what you’re doing while you’re doing it. And always look for things that you can automate, eliminate, and improve.
Warren Buffett, one of the most famous investors, is known for applying the compound effect for creating his wealth. He managed to achieve this by applying the same compound effect to developing his knowledge. He is known to read five hours a day, and his success is directly related to the fact that he studies every day.
By combining continuous learning with the compound effect, you will get exponential growth in knowledge. Previous knowledge will help you to acquire new knowledge, and an increase in knowledge will result in an increase in productivity.
Always understand what you are doing. When you don’t understand something, that’s a perfect opportunity to ask a question from the people around you or learn by reading an article or studying documentation. If you are working alone, subscribe to mailing lists, participate in Slack/Discord channels, and ask questions on StackOverflow.
Don’t search for a quick solution to a problem. Instead, search for understanding. Understanding is much more valuable in the long run than a completed task.
Sometimes I see programmers who hack problems. They change a pasted code from GitHub issues or StackOverflow threads without thinking, spontaneously trying to find a combination that results in “workable” code. This is a horrible habit for several reasons. First, programmers who do this learn nothing. And second, when code is produced in that way, it leads to more bugs.
Questions are an essential part of growth, but too often programmers are afraid to ask them. They’re afraid of looking unprofessional or not skilled enough.
But really, it’s just the opposite.
When you ask questions, you build good relationships with the people around you, and you avoid wasting time on things that your teammates have already solved or implemented.
Surely you have met or at least heard about a teammate who sits in the corner, working alone and eating alone. You barely notice them at the office or in team chat. They don’t ask questions, don’t share their opinions, disappear for a week with a pile of uncompleted tasks, miss deadlines, and write code that no one wants to deal with.
Now ask yourself, are you sometimes that type of person? The cure is to communicate.
If you’re an introvert, then it might be really hard to make the first steps toward communicating more. You may feel awkward in the beginning, but over time you will start having fun hanging out with your teammates.
Your brain at positive is 31% more productive than your brain at negative, neutral or stressed
– Shawn Achor
Positive thinking and happiness empower you to learn and make it through complex projects with tight deadlines.
With a positive attitude, intelligence rises, creativity rises, and your energy and ability to learn goes up.
Having a positive attitude directly affects your memory and learning system. Studies from Stanford University, Kings College in London, and the University of California (Riverside) all support this idea.
Here are some techniques that you can use to stay positive.
- Visualize a positive outcome instead of negative ones.
- Reduce sources of negative information, like the news, TV shows, radio, and toxic colleagues and friends.
- Approach every problem with the question, “What can I get out of this?” Always try to turn a problem into an opportunity.
- Stay open to new ideas. Don’t get stressed if 5 or even 10 years of experience doesn’t help to get off the ground with a new language, technology, or field.
We can use our brain to change how we process the world, and that in turn changes how we react to it. So really, your brain is your most powerful tool.
If you want to be more productive and learn fast and effectively, stay positive!
You will never find time for anything. If you want time, you must make it.
– Charles Buxton
People are most creative and productive in the first 2-3 hours of their day. Use those hours wisely and put the most important things first—not the most urgent things.
Don’t say yes by default.
If your task queue is already full, don’t rush to accept a new important task. Ask what you should deprioritize in order to add a new task. Another option is to politely say that you can’t fully complete all the tasks in time if new tasks are added to your workload.
Avoid decision fatigue, like Mark Zuckerberg and Steve Jobs who wear the same thing every day so they don’t have to think about it. Eliminate as many unimportant decisions as you can: what you eat, where you eat, what to wear, what time to wake up, when to check emails, when to plan your day, and so on.
Fear, guilt, and resentment are three things that suck energy and kill productivity. How often do you experience these? What causes you to feel these emotions? Find out the answers and eliminate the sources of these emotions.
Any activity that you do often and takes time is worth automating.
Use the “Is It Worth the Time?” matrix to decide when you should automate something.
I’ve created git-scripts to automate actions that I do often with git commands. I’ve packed tools that are related to my current projects in docker-recipes so I can create my working environment in minutes instead of hours.
Perfection is a productivity killer. We can’t predict the future, so building “good enough” software needs to be enough. Even an hour spent on polishing code for “perfection” can be pointless if that piece of code will never be changed in the future.
The point is that there is no “perfect” code because we don’t know the future. Every decision is a tradeoff.
Give me six hours to chop down a tree and I will spend the first four sharpening the axe.
– Abraham Lincoln
The greatest days started yesterday. Design your day for effortless execution. Don’t make yourself think about what you should be doing during the day.
Sleep well, about eight hours per night. Always choose to get good sleep rather than work extra hours late in the evening to catch up with the schedule.
I’ve often been in a situation when I solved a problem within 15 minutes the next morning after spending hours without any result the day before.
Plan your days and weeks, even if you’re working alone or if other people make plans for you. There is no guarantee that they are doing it perfectly.
Expect the unexpected.
Create time buffers that can be used when you make a mistake in an estimation, an unexpected bug happens in production, or deep thinking will be required while working on an important task.
My week as a team lead in a Silicon Valley startup is planned out by the hour.
My workday looks like the movie Groundhog Day. I know when I wake up, what time I’m in the office, when I have breaks and lunch, where I eat, and what I wear. This eliminates the number of decisions I have to make during the day, and it creates space for improving the quality of important decisions in my work.
As a team lead, I have some days that are mostly for team meetings, 1-on-1 meetings, clarification of project requirements, and planning the next week. There are other days for deep work when I turn off Slack, disable all notifications, and set my phone to “Airplane Mode.” Every day I have time slots when I’m with the team, ready to jump into a conversation, help with a problem, or remove a roadblock, and also time slots when I code.
With a planned routine, you spend less energy on smaller decisions and think about fewer things. This creates space to get into a special state—the flow state.
Surely you can recall situations where you experienced the joy of doing something. It feels great. You’re doing it perfectly or almost perfectly. Ideas come to your mind one after another, and suddenly you realize that it’s the end of the day but it feels like you worked for only 30 minutes. This is flow.
Flow is a special state of our minds when we are in ultimate performance mode. And everyone can enter into this flow state with the right conditions.
Average people experience flow for 5% of their working time. By increasing time in the flow state to 15%, you will double your productivity.
Here are things that trigger flow:
- You’re doing what you love.
- What you are doing at the moment is challenging but doable.
- You are focused on the task for a long period of time.
- There is an absence of distractions.
Below are things that you can change in order to experience a flow state more often.
- If you’re not happy with what you’re doing, ask for a change in your responsibilities or tasks, or ask to jump into a new project or switch teams. An extreme option, though sometimes necessary, is to switch employers.
- Avoid multitasking. Don’t jump between tasks. Rather, focus on a single task for an hour or two.
- Close the company’s chat program, disable notifications on your computer, and switch your phone to “Airplane Mode”. There should not be even a chance that something can distract you.
- Tell your colleagues in the office not to distract you during certain hours or when the door is closed. You can come up with your own ways to alert others that you’re in focus mode.
- You can listen to special music. Google for “music to get into the flow state”. Avoid music with lyrics because this adds to distraction.
These practices will help you get in the flow state more often.
Think about what you’re doing while you’re doing it. Apply Kaizen and the compound effect to drastically improve your skills and the quality of your work in just months.
Learning is a proven strategy. Mentors, conferences, books, courses, screencasts, articles—you choose whatever works best for you.
Be positive. Your attitude and style of approaching problems change everything. Always ask yourself what you can gain from a negative situation, and concentrate your focus on the positive aspects.
Eliminate distractions. Do what you love, and love what you do. Ask for tasks that are interesting and challenging for you. All this will give you more time in the flow state, which in turn will lead to a major increase in your productivity.
Automate everything that is worth automating.
Eliminate sources of fear, guilt, and resentment.
Avoid the temptation to write perfect code. Use an incremental approach instead.
Finally, make a framework for your weeks, days, and hours. Design each day for effortless execution.
With positivity, elimination, and preparation, your productivity will soar, both as a programmer and in any other role you have.
Ready To Upgrade Your Productivity To The Next Level?
I’ve created a productivity framework for eliminating unproductive activities, reducing decision fatigue, and planning weeks for effortless execution.