What are people's tips for an efficient workday. For example, sometimes I find myself procrastinating over something, generally just putting it off (especially if there is no deadline breathing down my neck). To counter this, I sometimes try creating a list of things to do for the next hour or so. This often can work, but I'd still occasionally find my mouse heading towards the firefox icon.

How do you get maximum productivity out of a day spent designing/coding/debugging etc. (with the occasional meeting thrown in)??

14 accepted

Things which helped me:

  • Make a ritual of starting. Since for me the hardest part is getting started. I developed a ritual I go through every morning. Which includes, watching a episode of a series, eating breakfast and enjoying a cup of coffee. I now don't have to think of starting it just happens to be.

  • Try to concentrate on features. It's easier to get things done and feel good about it, if you just want to implement (for example) the open id login today. If you find yourself implementing a feature everyday, you probably do more than trying every day building your application. Also you will find yourself implementing features pretty quick, which motivates you and you find yourself implementing another one.

  • Get Real: If you find yourself at a point where you are working too long without getting forward or you realize the motivation start dropping fast, you probably trying doing too much. Maybe try an more easier approach to your problem. Ask yourself if you really need every feature? Ask yourself: if you have to ship this product today what would you implement? - this one helps me a lot! I make it a habit asking myself everyday those kind of questions. (http://gettingreal.37signals.com/ is a really nice book)

  • Also asking yourself "when can I start?" and not saying "you have to start". Do not cut back on your social life. It's ok if you want to surf, just ask yourself when you actually feel good to start. I realized, that when I think about when i can start (especially when I'm not in my routine) it helps me a lot if i don't always think "you have to start working on that project" realizing that the world will turn even if you don't start, but you can start if you want to and when you want to is a pretty amazing tool.

  • Take at least 2 days off per week.


This is going to sound odd, but I like to give myself "rewards", so for instance if I want to check out a particular website, I just tell myself that I can do that after solving problem X.

Keeping a written list of things that have to be done on paper is also helpful, and the feeling of physically crossing things off a list is strangely addictive.

Sometimes I even put "Browse website X" or "Check out new thing Y" on my to do list and prioritise it down the bottom after the work stuff.


This often can work, but I'd still occasionally find my mouse heading towards the firefox icon.

  1. No surfing fun sites at work. I'm an inveterate web browser, and I can easily waste an entire day that way so I sympathize. To deal with this I've just made a rule that the only way I'm allowed to browse the web at work is using my iPhone. The iPhone is a pretty good web browsing platform for a phone, but it's not good enough that I'll waste a lot of time online.
  2. I'll second those who've recommended Getting Things Done
  3. Clean out everything in your e-mail inbox. Yes, everything.
  4. Turn off the 'new e-mail has arrived' ding on your e-mail client. Interruptions like that just kill productivity.

Some of my favorites:

  1. Time Snapper - records what you do on your pc during the day.
  2. Joes Goals - to track repetitive objectives like "commit to repository"
  3. Remember the milk - tasks with priorities.

I use some of the techniques in this PDF and I also use speedfiler to organise my inbox. If you don't have speedfiler I'd strongly recommend you at least try it. It's freaky good at working out where your emails need to go.


Keep track of time spent on things. This works well if 1) you are billing hours (wage, not salary) 2) you don't need to bill 8 hr a day and 3) you can't talk your self into billing time for goofing off.

It keeps you aware of where your time goes but lets you do other stuff (with full knowledge of the side effect)

OTOH if you don't bill for time spent goofing off, do you bill time at home when you think of a solution to a problem? What about if you wake up in the middle of the night and know the answer? Do you bill from the time you went to sleep? What about if the answer comes while you are... (Um I better stop before this is NSFW)


Personally I that browsing sites like Reddit or Digg in the moments where you are not concentrating very helpful. I'll write a few lines of code, test it, read a link on reddit, write a few more lines. test. read. repeat. It makes the process a little slower than if you were just pounding out the code, but it's much easier on the brain and you keep a steady pace of productivity. as long as you dont get too sucked into your browsings.


I also use a list most of the time but I try to be very specific about that list.

Not just write "Create a Windows Service" but break the problem down into little peaces and try to aproximate the time you think you will need for every features. Reaching little goals every 2-3 hours motivates me a lot more than every 2-3 days.


Check out this question I had posted Howto be a programmer who gets things done.

Got some excellent answers.

And as Orion pointed out - stop reading Stack Overflow ;)


I find reading Stack Overflow helps immensely. err, maybe not.

Seriously, try these two things:

  • read "Getting Things Done". It's a great way to organize your workflow and lifeflow.

  • procrastination is sometimes related to a fear of failing... when you're not finished you haven't failed. There's lots of books that cover this, and sometimes your workplace or school has some resources that can be useful.


I don't think it's possible to go a whole work day without screwing around and looking at the internet for a little while. Just make a habit of asking yourself "Now what was I supposed to be doing again?" to help keep yourself on task as much as possible. Usually once you remember the answer, you'll drop what you were doing and get back to work.


I find relying on some product to make yourself efficient doesn't work without some self-discipline. Start with these suggestions:

  1. Break a large task into chewable chunks and do them one at a time. For each part, give yourself an achievable deadline (1 hour, the whole morning, etc).
  2. If you have large and small tasks, start with the bigger and more complex ones first. It'll give you a sense of achievement once they're done. The smaller ones'll be a breeze after that.
  3. For something you absolutely must get done today: if you get distracted by emails / internet / people knocking on your door, reserve a meeting room for yourself and get your work done there.

I found I had a serious problem with surfing the net. A whole day could go by that started with "just five minutes." Check out leechblock for firefox. You set up specific websites and specific times you can't surf them. Helps to stop surfing the time-leeching sites if you can't access them.

But I also second what someone said earlier about procrastination being about fear. Unfortunately if you are probably going to procrastinate with surfing you are going to find another outlet. Find a way to deal with that fear. A therapist can really help.