Time Wasters for Programmers and How to Avoid Them

Useless meetings aren't good

Editor’s Note: This blog post originally appeared on SubMain’s blog. You can find the original post here. Check SubMain out if you want to develop quality code even in a time crunch.
Time is one resource we can’t replenish, and time wasters sap that precious resource. For programmers, using your time wisely can be the difference between really impressing your clients or employer and being the expendable one when things get tough.

Saving time is not always about good practices. It’s also about avoiding things that waste your time without you even noticing. Let’s take a look at some time wasters and how programmers can avoid them.

Time Wasters in the Office

When a programmer commutes to an office for work, that programmer is walking into a time-wasting factory. Offices are full of distractions. Have you ever spent eight hours at an office and at the end of the day felt you hadn’t accomplished anything? Here are some reasons why that may be the case.

Useless Meetings

There’s no end to meetings when you work at an office. Make sure you pay close attention to the meetings to which you’re invited. Are you really needed? What’s the agenda? What will you contribute to the meeting, and what will you get out of it?

Think about making a rule to not attend meetings with no agenda since these tend to lack structure and accomplish little in the time allotted. If a meeting isn’t useful to you, then don’t attend. This doesn’t mean that you should be impolite, of course. Rather, be honest and direct with the person who invited you. Sometimes, from that conversation, you can tell whether you’d actually get anything out of the meeting. If you don’t think your attendance is essential, ask the meeting organizer if you’re truly needed. Respectfully decline the invitation if you aren’t so that the organizer isn’t left wondering whether or not you’ll be there.

A final note: don’t fall into the curiosity trap. You shouldn’t attend meetings just so that you can “stay informed” on a topic. That hour can be used to accomplish real work, and you can ask for a summary or meeting minutes after the fact if you’re curious about how things went.

Emails

Writing an application requires long stretches of time when you can concentrate. Email can be your worst enemy in this regard. If you read and respond to emails the second they pop into your inbox, this will suck loads of time from your day as well as break your focus.

The best way to deal with email is to plan for it. Choose moments ahead of time when you check and respond to email throughout the day. Scott Hanselman doesn’t check email at all in the morning and has a separate folder for emails he’s CC’d on. Those rules alone help keep email in its place. Figure out when you’re most productive and choose to use that time to do your work, not answer emails. Set up boundaries that help you be more efficient.

Time Wasters in Your Code

The office definitely provides distractions that make you less productive. However, your own practices and habits can also be wasting time without you knowing it. Here are some coding practices that can make you less efficient.

Perfectionism

Perfectionism is an insidious trap that many programmers fall into. Programmers have pride in their work. They naturally want to write good code that they can be proud to claim as their own. However, obsessively trying to write “perfect” code or find the “best” solution can waste time if your current solution is good enough. This doesn’t mean you should write terrible code that’s unmaintainable for future generations of programmers. Just don’t obsessively refactor a working class at the expense of delivering more functionality. Change is the nature of code, and there’s no perfect solution to any problem. Don’t waste time trying to find it. That’s not what generates value for your client or employer.

Premature Optimization

Have you fallen into the trap of optimizing code that has no measurable problems? We’ve all probably found some information online about efficient memory utilization in our JavaScript code or how we can optimize garbage collection in Java or C#. Then we say to ourselves, “We should do this! Let’s refactor our code everywhere!” and then start digging through our code, making the changes.

Some questions to ask here: What will this optimization give us? Are there any current memory utilization or garbage collection issues we’re currently facing? If not, then updating all code in a codebase is likely not worth the time investment.

The key to performance improvements is data. If you don’t have good metrics that tell you something’s slower than it should be or that there will be a significant and measurable benefit to the optimization, then you’re wasting time. Validate the benefit and then prioritize according to business needs. Don’t just jump in and change all of your code for a 1% increase in load times (that you can’t even really prove). That may not go over too well with your client or employer.

Writing Code

There are time wasters inherent in writing code itself. Programmers can sometimes fall into habits that aren’t the most efficient.

For instance, how well do you know your IDE? The days of writing code with Notepad or vi and compiling it on the command line are largely gone (unless you’re programming with C or assembly). Make use of tools provided by your IDE to make your life simpler and your coding more efficient.

Do you have boilerplate code that you need to write over and over, such as an Angular controller definition or comment documentation? Turn boilerplate code into code snippets and use them frequently to save yourself time. Many IDEs let you type a few letters and hit the tab or space key to fill in a template. Extensions such as SubMain’s GhostDoc will create XML documentation with a few keystrokes. Your time is better spent solving problems, not typing the same thing over and over.

Poor Typing Skills

When you do have to type, find ways to make your typing faster. Can you type without looking at the keyboard? If not, practice. Soon, you’ll type code more quickly and movements will become automatic. Also, keyboard shortcuts for IDEs can be a huge boon to your efficiency. Lastly, try out different keyboard configurations to see which work best for you and make you the most comfortable.

Spend Time Where It’s Really Needed

Programming requires thinking, problem solving, and concentration for productivity. Distractions in the office and bad habits can rob your time without you even noticing. Time wasters can kill your productivity, so don’t let them. Find these and try your best to eliminate them. You’ll finish work feeling like you really accomplished something, and along the way, you may realize that all those things you thought were so important maybe weren’t after all. Happy coding!

Leave a Reply