First off, not my phrase: http://www.whattofix.com/blog/archives/2010/11/to-code-quickly.php Props to Mr. Markham.

BUT, it got me to thinking about a lot of questions I have seen about being able to get things done.

The approach advocated (setting a timer for a set period, in this case 50 minutes, but I've seen people talk about breaking procrastination by setting times as short as five minutes on tasks that you just cannot bring yourself to do, and then taking a short break) seems to be common sense, but lots of people advocate getting into the "zone" and staying there as long as possible, maybe many hours, rather than break their groove.

I keep trying different approaches and find that each has its own strengths and weaknesses.

What kind of technique do you use to be more EFFECTIVE (i.e., getting work done to the quality level demanded by your client / boss / etc. in the time frame allowed) in your software development and not just to spend more time at the keyboard?

  • 3
    I'd like to use this as an opportunity to plug another (proposed) SE site, Personal Productivity and Organization: area51.stackexchange.com/proposals/4296/… Nov 12, 2010 at 16:14
  • Ooo - awesome - I've gone over and committed. Thanks! Nov 12, 2010 at 16:35
  • the proliferation of niche SE sites is getting to be borderline absurd.
    – Kevin
    Jun 9, 2012 at 14:13

4 Answers 4


I use that technique daily. My timer is 45 minutes of work for 10 minutes of rest.

I also maximize the time on the computer to 4 hours per day. I understand this is not possible when your main task is coding. The rest of the time, I do any task that doesn't require a computer.

The tool I use is a WorkRave. The author wrote it because he started to have physical problems due to its inability to stop coding for long hours.

I'm less stressed and it affected positively my productivity.

Since a few weeks, I also try some mindfulness techniques during the pause times. Delicious.

Now regarding anti-procrastination techniques, I have one that beat everything I tried before:

I manage a single task list, prioritized by importance. I pick the first in the list.

I maintain the list (and calendar) with a combination of GTD and 7 Habits.

To enhance the list effectiveness, write your tasks as next actions instead of descriptions (see the chapter Actions, Contexts & Projects in this Blog Post)

  • 1
    Can you give an example of a task written as action vs as a description?
    – Adam Lear
    Nov 12, 2010 at 15:07
  • Sure I added the reference to a more complete article in the answer. Here is the link again (it describe the whole GTD technique): zenhabits.net/the-getting-things-done-gtd-faq.
    – user2567
    Nov 12, 2010 at 15:11

I'm unimpressed with that essay; he spent what, one day trying out his new method?

That said, Pomodoro & similar techniques seem to have a persistent niche popularity. Typically I try to sort my days into "focus days" and "misc days". Focus days I show up in slightly more relaxed clothing, maybe a bit earlier (or stay later). I don't have any meetings those days, so I can basically write my own schedule, which lets me focus better. On the other days, I have meetings, appointments, and so forth. I won't have the time to concentrate, so I try to schedule smaller and easier tasks to fill my time in.

One good way to increase productivity in coding is code generation of any boilerplate bits; refactoring anything that gets duplicated, etc.


The key thing to remember here is that there is no "one size fits all" solution.

There are lots of techniques for improving your ability to "get things done" and one of the reasons is that different things work for different people.

Some people do very well with this sort of methodology (c.f. Pomodoro Technique) and some people will find it destroys their focus - I really don't like stopping in mid task and that's almost invariably what timer based systems do to me... conceptually good, implementation challenging (true of the majority of structured methodologies for time management and other things)

  • I'm just looking for lots of input. As you say there is no "one ring to rule them all" approach, but I'm interested to see how other people approach it. Nov 12, 2010 at 16:41
  • Oh absolutely - and I agree with the question (-: But the above is a point that needs to be made as people who have systems that work - for them - can get a bit enthused.
    – Murph
    Nov 13, 2010 at 12:01
  • I think this is a good point. What's more, I've found that some techniques work better or worse for me depending on my mood, what type of work I'm doing, etc. There are times when I have no trouble coming in to work and working productively all day without any system. Other times, I need something to keep me focused and on track. At times, when I've been going through a funk like that, I've found Pomodoro to work pretty well for me, though I would occasionally skip a break when I was on a roll. Nov 16, 2010 at 1:07
  • Tempted to downvote just because this doesn't really add a subjective opinion - it just states "it depends". This can be said of almost anything and be true for just about anything. Dec 11, 2010 at 21:50
  • @Magnus can't argue with that particularly but equally the point has to be made. Too many people go hunting for the golden bullet.
    – Murph
    Dec 12, 2010 at 10:56

Since coding is the problem at hand, in addition to the techniques mentioned by Pierre, I would suggest coding in a dynamic language, if at all possible (Python is a delight to work with, for instance): such languages allow you to be extremely productive (measured coding times show an improvement factor of 2 to 10, compared to C). They're so nice to work with that you might basically never "just spend time at your keyboard".

  • Why the downvotes? The answer above does address the question "What kind of technique do you use to be more EFFECTIVE (…) in your software development?". Mar 17, 2011 at 10:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.