brady gaster

yadnb

"staying focused"

i'm reposting this from my other weblog. mainly, i think this is a topic we'd all love to hear more about. if you have any of your own theories, comment away!

so today it happened again. a conversation over email i feel i must share with the world. here's the first message in the series, from a friend and colleague, posted to a mailing list we're both on.

So I'm a programmer. What does this mean? It means I'm responsible for delivering a product based on some specs, Right. We're all pretty much in the same position.

I have found myself these last two weeks, really getting a ton of coding done. I seem to go in streaks; sometimes I feel useless, and other times I feel like the day really rocked and I got a lot done.

Here's my question?

What do you do to stay focused on coding, to be productive. There is so much other crap to interfere with this all day. E-mail, meetings, phone calls, MSDN, coding tips, those damn user groups :), girlfriends/boyfriends, lunch, snacks, internet surfing, day dreaming, planning, paying bills, reading forums, researching (which I count as productivity if it's work related).

As you are reading this (if it's during the work day) you're slacking; Right?

I'm thinking of only checking my e-mail 2 times a day. Once in the morning, before I leave for work, and once after lunch. It seems like e-mail is where most of my time gets wasted. This message is a perfect example :)

What tricks do you have to help me be more productive?

Thanks for the help

i had to contemplate this, once i (ironically) had enough time to read it. my response is listed below:

I never stop coding. That's just it. You figure out the mentality that works for you when you're coding, and you stay in that mode. Always. When you're coding, of course, but when you're showering, driving, moving to a new home, doing anything. You take a consistently analytical view of the world and spend each and every waking moment contemplating something. You never, ever allow yourself to get too far "away from the machine." Here's some more things of a virtuous nature, that when adopted will allow you to keep trucking.

Drive
Think of Einstein. He had 7 suits, all exactly the same, so that he didn't have to think about "what to wear."

Consistency
Always do something. Read something, sit down for a little while just to write a simple class. Think of a problem you had this week, write a class to fix it. You can always find a few moments to do something in your code. So when you get those moments, write some code.

Reliability
Maintain a repository. Or 4. When you're exercising previous habitual behavior, do so in your repository.

Read
Need I say more? If you're on the web, spend time reading stuff that's relevant. With rss, this process is expedited for you. Your news and that which you're interested in will find you. All you have to do is take a moment to read it.

Concentrate on Efficiency
No matter what you're doing - driving to the mall, talking to a friend, riding a bike, shopping for groceries. Make sure this is a-priority numero uno. Keep your eye on what you've got to do, prioritize according to the size of explosion that will incur if you don't meet respective deadlines, and push on.

Simplification
Make your life simple. If work is of the essence, chances are that your priorities are completely out of whack. Partners hate your code. Parents don't understand and think you're playing games. Co-workers hate that you aren't personable, because you're always sitting there, headphones blaring, coding as fast as you can. Whatever the case may be, the more into this world you are the faster you work. The faster you can work the more you can get done. Find the simplest way to code, and you'll most likely simplify your work.

Given that you're in this because you love it so much and that (if you follow these simple guidelines :) ) you can now execute much more efficiently, you'll have time for all the other stuff you like to do.

Coding. Its not just a job, its an adventure.

Comments

Doug Thews said:

I think it's too simplistic to say you'll just code all day. However, I've found that the majority of problems related to programmer productivity are interruption related (phone, e-mail, meetings). As a Dev Manager, what I encourage is that we (myself included), schedule specific uninterrupted time (just like meetings) where you can close your door, cube area, what have you, and just concentrate on the job of development. That means turning off Office notifications, put the phone on forward, and turn off that cell phone.

Also, as a Dev manager I like to limit the numbr of meeting hours for developers (not including design sessions with the customer). Weekly group meetings are redundant - a good manager shouldn't need to get everyone together just to get status. If there's somethig good to discuss (like a new product release), set up a special (SHORT) meeting to give the folks their props. But stay away from those project status meetings just for the sake of management ... and if you're one of those managers, get off your butt and walk the halls to find out the information you need to know.
# August 1, 2003 7:15 PM

brady gaster said:

i guess what i meant to say was this - "don't stop thinking like you're coding." not ever. just keep pushing in a systematic way. keep yourself going. and maintain.
# August 1, 2003 7:57 PM

Darren Neimke said:

Here's how I go about it:

http://weblogs.asp.net/dneimke/posts/3593.aspx

I wrote that back in March but, I'm still following that pattern and it's still working for me!
# August 1, 2003 11:08 PM

Scott Cate said:

Brady was talking about me, as I started the thread. It's been interesting reading the feedback, not only here, but from our Arizona .Net user group (The list he mentioned).

So far, limiting my email has helped, but it's also hurt a little, as I've missed a few items. So now I'm trying to "glance" at outlook a few more times a day, abut only respond to important items. Then response times are limited to twice daily, barring exceptions.

The other thing that really helps (me anyway) is to put my trillian on "Busy" mode. This isn't something I've done before, but it seems most people respect it.
# August 3, 2003 2:50 AM

Adam said:

Maybe I'm in the majority, but I really have no problem working while at work. I constantly switch between IMs (which admittedly is very limited -- only a couple people and never full fledged convos), email, human interaction and work. I put on some headphones when I want to focus, however I don't ever indicate to anyone that I don't want to be bothered.

Maybe a benefit I have is that I can very easily get into "the zone". Almost every day I find myself losing an hour here or there simply due to being incredibly focused. I would guess that I refuse to have any program pop open windows covering my main window that I'm working in probably helps (for instance, that "You have new mail" dialog in Outlook is evil, I make sure it's not on). But anyway, I typically just put on some headphones (real headphones that could block out the sound of a nuclear blast, not those wimpy $7 kind at target), turn my music to a decent volume and just start coding.
# August 3, 2003 7:40 PM

Adam said:

Damn it. That was supposed to be:
"Maybe I'm in the minority"
# August 3, 2003 7:42 PM

Sally said:

Staying focused is a gift. I play a lot of golf
and I was just looking for some ideas from others about staying focused during a golf tournament. It is hard for me to do. I have heard people talk about being in the zone. How do they get there?
# October 28, 2003 11:21 AM
Leave a Comment

(required) 

(required) 

(optional)

(required)