Search Results for: pomodoro

Thoughts on the Pomodoro Technique

It looks like I’ve been using the Pomodoro Technique for way over 10 years now (that’s how far back I’ve found references to it on my blog)!

Most people learn the basics of the technique and run with it: set a timer for 25 minutes and do some focused work, take a 5-minute break, rinse, and repeat. As I’ve coached a lot of people on the technique over the years, I realize I’ve taken it beyond the basics. I remember back when I first learned about it, I did take the time to go through a short book the technique’s creator had up on his website. While I can’t find that version of the book anymore, there seems to be an updated version available.

Here are my general (and I guess some specific) thoughts about my use of the Pomodoro Technique!

You need to stick with it to see it work

Like with any technique, this one won’t produce any results if you try it once and never actually get to practice it, meaning, make sure to do it right, consistently. How can anybody do it wrong? Easy: set the timer for 25 minutes, start doing the work, and 10 minutes into it, go check out that social network notification that popped up somewhere, get your attention derailed for 10 minutes, go back to the remaining 5 minutes of your “pomodoro”, realize you won’t be able to finish your task and affirm that the technique does not work. That’ll do it. I’ve seen it happen.

Be mindful of what you do in your 5-minute break

When taking the short 5-minute break in between pomodoros, do your best NOT to engage in activities that’d get your mind busy with something completely different from what you’re currently working on. A big context switch would be a longer ramp-up time when we start your next Pomodoro, and that is a problem if you were working on a task that spans multiple sessions.

For example, checking emails in that 5-minute break can be detrimental to your productivity. You may get involved with an email that ends up taking 10 minutes of your time, stealing away all the context for the task you were working on. Instead of checking emails in that 5-minute break, set aside a full Pomodoro session dedicated to processing emails.

In a work-from-home setup, I tend to do things like playing my guitar for those few minutes, go outside and take a couple of deep breaths, practice juggling, etc; some simple activities that allow me to live in the moment, give the brain a little rest, and then get right back at it

Task-sizing in Pomodoros

Whenever possible, I like sizing my tasks in terms of the “number of Pomodoro’s”. For example, if I’m working on a given User Story, I may size it like so:

  • Pairing with QA to discuss test cases for the story = 1 Pomodoro
  • Writing unit tests (only the given-when-thens at this point) = 1 Pomodoro
  • Implementing the tests and the initial test pass = 3 Pomodoros
  • Cleaning up tests and code = 1 Pomodoro
  • Test/Code peer review = 1 Pomodoro
  • Creating Pull Request and updating tracking system = 1 Pomodoro

Total: 8 pomodoros (4 hours)

Such breakdown allows me to better organize my day so to make sure I get the uninterrupted time I need to do the work. If I need to pair up with somebody else on the team, it also allows me to be considerate of the other person’s time and have it on the agenda for the day.

Do I always work like that? No, but whenever possible, yes!

Wait, pairing during a Pomodoro?

Yes, I’ve mentioned above that I do pair during Pomodoros. How does that work? Well, both I and the person I’m pairing with are fully focused on the task at hand. Neither of us is checking emails or looking at our phones. This works great for:

  • Pair programming
  • Design sessions
  • Code review

What if those around you don’t do Pomodoro?

I see people walking out of restrooms without washing their hands; that doesn’t prevent me from washing mine!

I use the Pomodoro Technique because it works well for me. As it always happens, people see my Pomodoro Timer and ask me about it. I always take the time to explain and coach them if they’re interested. Those who aren’t interested at least start to respect my focused time and won’t interrupt me when they see I have my timer running.

Be mindful of abandoned Pomodoros

When you’re interrupted, you MUST abandon your Pomodoro. When you do, keep track of it. Write down why you had to abandon it. At the end of the day, reflect upon it and see if there’s anything that can be done/changed so that such interruption won’t happen again. Maybe you had an internal interruption caused by a Facebook notification you saw in a tab on your browser you’ve left open, so you now decide to close all tabs with content that’s not related to the task at hand. Or maybe you had an external interruption, caused by a co-worker that walked up to your desk and started talking about last night’s game, so you now decide to politely ask that person not to interrupt when you have your “do not disturb” sign up, whatever that sign is.

I talk more about managing interruptions in a previous post.

Working in Pomodoros all-day

People often ask me, “do you work in Pomodoros all day?”. That’d be great, but unlikely. I have different meetings at different times of the day on different days of the week.

I normally look at the schedule for the current day and find the blocks of time where I can work in Pomodoros. Any available half-hour is a Pomodoro where I can do productive work. If I can only do one Pomodoro in a given time window, I’ll use that for tasks that would comfortably fit in (a 1-Pomodoro task, as opposed to 3). Maybe processing emails, for example. If I have a larger window, say two hours, than I plan on 4 pomodoros, which is a nice time for focused, deep-thinking work.

If you do something like that, consider blocking those times in your calendar so people won’t reel you into unplanned meetings (just add something to your calendar such as “Pomodoro slot”, “Focused tasks”, or something like that). Over time, people will learn to respect that. Of course, let people know it’s ok to interrupt you during that time if there’s a real urgent matter that needs your attention.

Do you mute the ticking sound of the timer?

The ticking sound of timers drives some people nuts! If I’m deep in thought, that sound actually helps me stay in the zone. Some people also say the sound helps to stay focused (“the clock is ticking… I need to get this done!”).

I also like being able to see the timer. Let’s say I’ve planned to work on a task for 1 Pomodoro. I’m 20 minutes in and I think I’m done with my task. I look at the timer and see there are 5 minutes left. Instead of either “calling it a Pomodoro” or jumping to the next thing, I use that time to review what I’ve done. At times, it works like my “mini-retro” within a task. Maybe I can identify some quick code cleanup opportunities. Maybe I can identify things that could have been done better, but that can’t be done in 5 minutes, so I just take good notes about it, with enough context, so that should I have the time to come back and address it, I can quickly get my mind and thought process back and get it done.

Do you use an app for that?

Yes, I do. I have considered getting an actual Pomodoro kitchen timer, but I’m sure co-workers wouldn’t like having the tic-tac in the office. So I use either an app or a website such as this one.

Now if you excuse me, I need to start my next Pomodoro. 🙂

Leave a comment

Work Soundtrack

I enjoy having some music playing while I work; even more so if I’m using the Pomodoro Technique. But I’m very specific about my work soundtrack!

If what I’m doing the requires deep thinking, I need instrumental music. Most often, that’d be classical music (Mozart, Beethoven, Vivaldi, Bach, Chopin, Paganini, are among my favorite), but it may also be World Music (Kitaro is my top favorite). For shallow thinking, I may go with guitar albums by Joe Satriani, Steve Vai, Steve Morse or maybe movie soundtracks.

When I already know what needs to be done (either because I’ve finished the deep thinking mentioned above or because the task is just busy-work), then I crave some high-energy music (usually heavy metal, but it could be some other things I have in my music library).

Here’s an example:

I’m about to implement a user story. I set two Pomodoro sessions: one session to read through the user story and acceptance criteria, review mockups, etc, and another session to write my specs for it (only the Given-When-Then statements). My soundtrack consists of classical music.

Now I’m ready to write the actual tests and just enough code to make them pass. The soundtrack may be some fierce heavy metal, as I blast keystrokes on the keyboard. As I do this, I may practice the “sing and read” speed reading techinique; as I sing my favorite songs, I read through my tests, write code, read what I wrote, and eventually read it again in preparation for some refactoring.

Do you have a soundtrack?

Leave a comment

Virtual Brown Bag: May 2020 Summary

Lots of goodies shared at the Virtual Brown Bag during the month of May. Here’s a summary (with links to the videos):

May 7: Talks on managing interruptions, Pomodoro Technique, finding opportunities and leveraging them, trust in IT, importance of tests, and a couple more miscellaneous things!

May 14: We talked about Udi Dahan’s Advanced Distributed Systems Design course, C#’s new feature: source generators, Security standards and considerations, Node and NPM, Tribes of Programmers, and some miscellaneous things, as usual

May 21: Arrange-Act-Assert, Given-When-Then, When-When-Then, Refining user stories, Righting Software (book), Architectural book, Software Architecture youtube channel,, Azure App Service Static Apps with Svelte + Sapper, Top-Level Programs in C#9

May 28: George’s “challenges”:,, emacs, Org Babel

Looking forward to seeing what April brings us!

Leave a comment

Multiple screens may NOT make you productive

Several people talk about how having multiple screens makes us more productive. But does it, really?

It’s not the number of screens that matters; it’s how you use them!

Let’s take my current setup as an example:

Those three active screens are the ones I use when doing most of my focused work. Let’s say this is how I use those screens:

Hey, we can see a Pomodoro Timer at the top-left on that picture, so this MUST be a very productive setup, right? I’m afraid not. Consider my current focus is software development work. Let me walk you through the points I’m indicating on the picture:

1. Dead space. Unused real estate. If I’m on my focused time, I should probably not be seeing my exciting track photos, which change every 20 minutes; maybe a solid color would help keep my focus;

2. An email client. My current focus is NOT “email processing”, I shouldn’t keep the distracting email client open like that;

3. A messaging app taking up an entire monitor. Does that conversation pertain to the current task I’m focusing on? If not, then this app should not be there;

4. That is the browser window showing me the software I’m building. That’s the result of my focused work. It can benefit from a little more real estate, no? To add insult to the injury, maybe I’d even have the developer tools open, all squished, docked inside that same window!

5. The IDE. The thing where I produce the result of my current task. The code I’m working on cannot be seen without scrolling horizontally!

So, do the multiple screens make me more productive if used that way? Most certainly not.

Here’s a better setup I believe makes me more productive:

Let me walk you through it:

1. My Pomodoro Timer. Time-boxed task. The time I have left helps me stay focused;

2. A place to drop in notes, screenshots, links, etc., related to the task I’m working on;

3. Any research or supporting material I’m currently using. In that browser window, I make sure to only have tabs related to the task at hand;

4. My IDE. That’s the screen I’m looking at most of the time, so it has to feel comfortable, relaxing, easy on the eyes (not a lot of information or things other than the current code I’m working on);

5. The software that I’m building, which is the result of the code in #4;

6. The Developer Tools (console, debugger, etc.);

7. The terminal (console) window, so I can quickly see if my current changes have broken my local build (also supported by what I may see on #6).

As it has been document on the internets since 2007, I am very specific about how I organize windows and multiple screens. I organize them based on the focused task at hand and I’m always looking for A) better ways to organize it, B) processes and tools to make it easier.

If I’m working in Visual Studio, I may use the Windows Layout feature. Working either on a PC or Mac, I find ways to move windows around by only using the keyboard.

If I’m on the road, away from my normal setup, carrying only my laptop and my iPad, I turn my iPad into an extra screen (here and here).

I’ve just heard about the FancyZones in the Windows 10 Power Toys this morning, and I’ll be looking into adding that to my toolbox as well.

Leave a comment

Managing Interruptions

Interruptions kill productivity in any work environment and it’s no different if you’re working from home or not. In this post I share some of the techniques I’ve been using for several years to help manage interruptions:

  • The Pomodoro Technique
  • Educate your environment
  • Replay what happened prior to the interruption

The Pomodoro Technique

Check out The Pomodoro Technique website in case you’ve never heard of it. Besides working in focused 25-minute blocks, the main thing I got out of this technique has been tracking interruptions and classifying them as:

  • Internal: have I stopped working on my task because I saw a social network or email notification? Or maybe because I opened the web browser to check one thing related to my task and ended up reading the news instead? Such interruptions are considered internal because I didn’t have self-control and focus to stay on target. That’s easily addressed by shutting off all notifications, at least during that focused time.
  • External: have I stopped working on my task because somebody walked up to my desk and started talking to me? Or maybe because I got pulled into some unplanned meeting? These are external interruptions brought to me. They can be addressed by educating your environment. More on it further down…

I can’t stress enough the importance of taking note of the interruptions, classifying them as internal or external, and finding ways to prevent them from happening again.

Educate the Environment

Let your environment (physical or virtual) know whether it’s ok to interrupt you or not.

  • Let people know that you’re in “do not disturb” mode: put up a flag, a post-it note, your headphones… whatever your token is, just let people know. Don’t forget to put it away when you are available (use the status feature if you’re working from home);
  • Let them know why, if necessary: Depending on the situation, when others know why you’re not available, they are likely to help to keep others from interrupting you;
  • Let them know what they should do if they need you: if they have an urgent situation, let them know to interrupt you by all means. If it’s not urgent, let them know to drop a note such as “I need 5 minutes of your time before 3pm today…”. They can leave a post-it note on your desk or a message in whatever communication channel has been clearly defined. Make sure to get back with them (this is essential for the system to work!).

This is what I have right outside my home-office…

Replay what happened prior to the interruption

A big problem with interruptions is that it takes us an average of 25 minutes to return to the original task. If my task is done on the computer, I’ve found ways to decrease the time it takes me to get back “in the zone”:

Take screenshots: I’ve been using TimeSnapper for a long time. I blogged about this 13 years ago! In nutshell, the tool takes screenshots every 5 seconds. If I get interrupted, I can use the tool to replay the screenshots and jumpstart my mind to put me back in the zone.

Git commits: I’ve also used my commits in Git to get back up to speed after an interruption. If I was heads-down working on a user story, implementing my tests, making them pass one by one, and committing after each step, I can then look at the commits to see the work I had done prior to the last interruption, which helps me get back in the right frame of mind.

Summing Up

If you take anything of this post, this should be it:

  1. Realize you’ve been interrupted;
  2. Determine whether it was an internal or external interruption;
  3. Isolate the source of the interruption;
  4. Put some system in place to prevent the same kind of interruption to happen again;
  5. Some interruptions can’t be prevented, so put a system in place to recover from it quickly.

Leave a comment

What Does Your Work Environment Look Like?

Don’t you ever wonder what somebody else’s work environment look like? I do. I enjoy seeing how people set up their work area, hoping that I can pick up some nice tips. I also notice that very often when we have somebody visiting our offices here (people attending training, clients, etc.), they are always poking around to check out our work areas.

So here’s what mine looks like:


  1. Dual monitors: yeah, baby! I love those big monitors in front of me! I absolutely hate when I have to work for too long on a setup where I don’t have dual monitors (this is how I usually organize VS for dual monitors);
  2. Laptop: I’ always have my laptop there on the side for anything that are secondary to the work I’m doing (research, TweetDeck, messenger, Windows Live Writer…). Depending on what it is that I’m doing, I may boot from a VHDthat I have setup as a development environment (as one computer is busy, I do work on the other one);
  3. iPad: I usually have my iPad right there with a book, article, or something like that loaded. That way I get to read a few paragraphs here and there, as I wait for a build to complete, for VS to come back to life, or things like that.

Of course, there’s also a bunch of pictures there as a reminder to what’s really important, and I also, I have a decent view when the whether is nice outside.


beanbag[5]funkychairThe funky chair: the first time I saw one of those chairs was several years ago, when I client came to our office and brought one of those (he had some bad back problems). I just thought the chair was weird. Then, a few years ago a friend of mine had one of his house that he didn’t use and told me I could have it if I wanted. I said, well, what the hell, let me give it a shot. It felt kind of weird for the first couple of days, but then I got used to it, and now I really miss it when I don’t have it. Every once in a while, though, just to do something different, I work for one pomodoro or two sitting on the cool bean bags that we have in the office.

Let’s see… what else…. ah, of course, there’s a whiteboard right behind me that I use all the time. I usually walk to it, sketch something out, take a photo with my iPhone and send it straight to Evernote.


And finally, there’s one of those mini basketball hoops for when I’m taking short breaks. Smile


What about you? What does your work environment look like?

, ,


Setting and tracking some small goals…

A month or two ago, George was telling me about; as the site says “it’s a simple tool to track daily goals”. A thought I’d give it a try.


People use it to set and track simple goals such as decreasing the amount of coffee they drink, setting distances they want to run, and other things of that sort.

I’ve used it for a month now, and am planning on using it for at least another couple of months. In the first month I’ve tracked things such as how many pomodoros I can accomplish in a month, how many pushups, and some other small things I’ve been trying to get better at.

I had set my expectations for the full month based on my guess as to how much I’d get done daily. As it turns out, my estimates were very off. My best estimate came to be about 56% of the actual numbers. The worst one was about 23%. I think the two reasons for it were:

  1. I had set the goals to a number a little higher than what I *thought* I was kind of accomplishing, but not tracking…
  2. Some weekdays I’d just forget about the goals, or just be too tired to care. Most weekends I’d totally forget about everything.

For the second month, I’ve decided to track the same goals, but now I’m putting down estimates based on the numbers I’ve accomplished in the first month, increasing them by about 10%. So all I need is to do a little better than I did last month. If I get into the habit where I at least don’t forget about the goals, hopefully my numbers will improve within a few months.

As time goes by, I’ll probably be changing my list of goals, by either adding and/or removing goals. Here are some of the goals I’m thinking of adding to the list:

  • Play guitar exercises for 10 minutes daily
  • Improvise solos on the guitar for 10 minutes daily
  • Practice speed reading for 10 minutes daily
  • Spend 20 minutes every day learning something

We’ll see. I’ll keep blogging about how this is working for me.

Leave a comment

Some thoughts on the Virtual Brown Bag meeting for October 7th 2010

I’ve enjoyed Scott Hanselman’s “two must have tools for readable web” post, and have been following that kind of workflow for sometime now. I’ve tried Instapaper, but decided to just stick with Evernote for that as well. I use the Readability bookmarklet to get rid of the noise, and send the whole page to Evernote. I then apply a “read later” tag to it, and usually read things later on on my iPad.

I’ve incorporated Posh-Hg in my setup. It gives nice tab completion in Powershell for the Mercurial commands, and it also customizes the command prompt to display some useful information (such as what branch I’m currently on, how many files added/changed/deleted, etc.)

Favorite Things, according to the VBBers


I asked attendees about their favorites things they’ve either learned or shared at the Virtual Brown Bag. This is the kind of things I got:

  • Productivity Tools (we’ve covered a good number of tips and tricks overtime on tools such as CodeRush, ReSharper, Executor, etc., and we’re certainly going to continue doing so).
  • Feeling I’m on the right track with development
  • Knowing I’m not alone in my questions concerning development
  • I appreciate the help of those of us less experienced in development (great, we’ll certainly continue covering things for all levels)
  • Git
  • Rails
  • Pomodoro Technique
  • LINQ tips and tricks, like the .Any(x => x.Condition) instead of the .Count(x => x.Condition) > 0
  • I love what you did replacing a switch using a Dictionary<DayOfWeek.Action>

Things that I’ve personally learned/enjoyed since we started:

  • How people step up and help us keep the VBB’s going:
    • Zach Young: who allowed us to use the Virtual Alt.Net LiveMeeting room to host the VBB, as well as processing the recordings, posting it to Viddler, and listing it at the VAN site.
    • JB: who’s helped out being the host several times when I couldn’t make it (usually because I’m travelling). Not to mention the tons of things he’s shared, besides bringing to life.
    • Ed Evans: who’s taken the initiative to create a wiki page for the VBB
    • Jared Lobberecht: who’s stepped up and automated the process of processing the videos, so they become available online just a few hours after the meeting has ended.
    • Brian Shroer: who’s been updating the wiki live during meetings, with timestamps, notes, links, etc.
  • At one of the VBB’s over a year ago, I was showing SlickRun, and then somebody showed Executor, which I’ve switched to and can’t live without.
  • A few weeks ago, somebody asked me if I could do an intro to Mercurial/Branch by Feature. That was fun. Even though I’m a total beginner with Mercurial, I think I was able to do it, which proves the point that Mercurial is such an easy source control system to use.
  • Sharing both Evernote and the Pomodoro Technique have been fun for me, and I’ve noticed people on Twitter talking about it, so that’s great.

The Live Virtual Brown Bag session at the Houston TechFest 2010 was well attended, and I hope we’ll be getting more and more attendees every week now. At the TechFest we’ve launched t he official site for the Virtual Brown Bag, containing information on what the VBB is all about, links to the Wiki and Recordings, and a place for people to post their suggestions on things we could talk about. Make sure to check it out!