"I wish there were more than 24 hours in a day to let me achieve more."
Have you ever desired to have more time available for completing your side-projects or meeting the deadline, just like me?
Both of us know there cannot be more than 24 hours a day; the Better choice is to just use the time that we have in the most efficient way.
There are many habits that help programmers perform better and leverage limited time. There are no shortcuts. It is all about good habits. Once formed, they can save a ton of time for you. Let's cover some of those habits very quickly.
1. Time tracking earns
Do you know how many minutes do you take to complete the X task? And how much of your work time is actually invested in developing stuff? 80%? 70? Way less than you think it is if you’re not tracking time currently. What about your team? How many hours do they code every working day?
It is very important to measure each of your activities on a day-to-day basis. Only then you can provide estimates for future projects properly.
"When work time is tracked, efficiency improves. And when the tracked time is being reported, speed of efficiency improvement doubles."
Fruits of this habit are way beyond statistics.
2. Distraction-free workspace
Every now and then, we read articles on the 21st-century gadgets distracting us every few minutes. The benefit of technology advancements is that we have easy access to an ocean of knowledge now
But, too many attention seekers in today’s social world are breaking our workflow. Focus is more important than information, talent or intelligence.
A practical tip would be to keep your phone away while working and turning off all those notifications to improve your focus and concentration. Using good quality headphones or ear plugs for noise cancellation is a no-brainer
3. Pair Programming
I have been enjoying the fruits of this habit recently. You might say: "How can the time be saved if 2 people are working on a single task together?" I had the exact same question before.
Still, to give it a try, I started coding the system for this site with a teammate and there are more PROs to this method than CONs. We could decide on the system architecture pretty quickly, solve issues faster and the main benefit was that both of us were quite focused.
Our mind is constantly wandering but when there is someone watching you during the coding sessions, the peer pressure keeps your concentration intact. And that is why live streaming of coding sessions is getting popular as people are seeing the advantages of it.
Note: Pair programming may not help in all cases. Firstly, both the developers should be on a somewhat similar experience level. Maximum time is saved when the project involves complex logic and updates. I would just say - try and see if it works in your case.
4. Energy management for good mood
A programmer’s work is completely a mind game. Only a sound mind can effectively achieve desired outcomes. Every one of us experiences flow in work occasionally and wish to have it every time we sit in front of the computer, isn’t it so? And for that, we need to train our minds. It's all about energy.
Every decision you make throughout the day uses energy and brings fatigue. Be a morning person. Most of us have a vibrant mind in the morning time. (I know, few owls!..) Observe your mood timings. When do you perform at a very low level? And when is the peak? Build a great routine around it and energy will flow throughout the day.
5. Divide and conquer
Just like we take our meal ‘bite’ wise, our work assignments need to be completed in steps too. Whenever you are about to start a task, the first step would be to break it down into smaller logical pieces and execute them one-by-one. You would assign a specific time to each task using the methods discussed above.
If not, you would, like I do many times, be staring at the screen, thinking about various future problems and their solutions for a couple of hours. No work is done. Dividing the task into easy-to-digest pieces/sprints saves time.
And this habit is connected with one very important point -
No Multi-Tasking. I can’t recommend this enough. There would be thousands of articles throwing light on this single term especially. Doing several tasks at a time is a badge of pride for many of us; it is one of the biggest barriers to higher productivity at the same time. Our mind is designed to do only one task very effectively. You may try both ways and measure the results yourself.
6. Take a Break, buddy!
Now that we have loaded our minds with lots of information and processed so many thoughts, let's talk about breaks. Standing up periodically is required for "office workers" to prevent backaches.
And just like your body, your mind needs rest as well. As we know, muscles do not grow while one is working out at the gym; They get stronger during the relaxation phase instead. The same is true for the brain. Let it repair and restore the parts after a heavy dose of work. In fact, we often get solutions to our problems during our leisure time.
This habit can save time in 2 ways:
By doing some stretches during a break will lead to a healthy body. And yeah, we add lots of hours to our life span with that
Let me illustrate with an example:
4:40 PM: You have been trying to troubleshoot a complex bug for 40 mins and still nowhere.
4:45 PM: You decide to take a 5-min break finally to give it a last chance before you have to leave at 5.
4:55 PM: 5 minutes after returning from a break, you have solved it. Bingo!
7. Practice-clad foundation
"The only way to learn a new programming language is by writing programs in it."Dennis Ritchie
This is the most common advice while learning a new language and probably the least followed one as well. In today’s world, we love everything to be fast; Be it cars, computers, or mobiles. At the same time, our learning is becoming rapid day by day.
We like to just skim through the articles (if you read this, you are not skimming, cheers), documentations and videos when we are learning something new. While this is helpful in a few cases, detailed learning is hardly exercised. Simply put, do _sample projects_repeatedly when you learn new tools/frameworks to master them.
At the same time, practice and mistakes go hand in hand. Never let the fear of mistakes stop you from acting. While acquiring knowledge, the more mistakes you make, the quicker you become adept at the respective skills. Mistakes while learning is good.
A proper foundation of logic and programming lets you complete a project in half the time others take. The 10,000 hours rule does have essence I believe.
8. Code quality
In programming, there is no right way to do things. Every style is opinionated. You just have to pick one that suits yours and follow it. At the end of the day, the code should be
Readable, Maintainable, Well-tested, and Well-documented.
This will save time in the future. Software is never done. There are constant bug fixes, features additions, and requirements updates. If the code is readable enough, you can make the changes quickly. A maintainable code will be easy to approach while adding new functionalities. A well-tested one will boost your confidence and avoid the worries of domain-level effects during code updates.
9. Forget office politics
Finally, this habit is going to take you to higher levels in the long run. We get into the competition with co-workers, unconsciously sometimes. This wastes a lot of time. We throw away more energy while trying to win the game instead of focusing on actual work.
The other benefit of ‘being’ together is long-term growth. Sharing is caring. When ‘I’ becomes ‘We’, each person of the group excels gradually.
"If you want to walk fast, walk alone. But if you want to walk far, walk together." - Ratan Tata
Just like savings, working as a team is hard at first and very fruitful eventually. Try that and you will never regret it.
These are important points, among others, which can help us achieve our goals. I would appreciate you sharing them with others. You are welcome to share your tips below in the comments section. Thank you.