Scott Hanselman

Task: Remove a Programmatic Crutch

July 21, '07 Comments [17] Posted in Musings | Programming
Sponsored By

Phil DeVeau left a great comment about Podcast 72 on Becoming a Better Developer in Six Months. He said:

Remove a Programmatic Crutch.  Everyone has programmatic crutches, maybe you can't code without coffee, or without music, or more likely you can't do anything without an IDE.

I love the way he phrased it. A while back (do forgive me the self-quoting, you know you're an idiot when you start quoting yourself but...) I said If you're going to develop a habit, why not make it a best-practice-habit?

That was a true and pithy statement, but I was thinking about new habits. I often forget about all the old ones. Here's my "crutches" and I resolve to do something about them...even if that something means deciding that they, in fact, work for me and I decided to keep on doing them. At least I'll be able to say that I haven't lived an unexamined programmer-life.

  • Email Checking: I tend to roll directly out of bed and roll, roll, roll, down the hall, roll into my chair, and immediately check my email. This is insane. There's rarely something crucial that's happened between 2am and 7am that needs my attention.
  • Crackberry: I'm getting better with this one, but still, the "urgency addiction" is strong in this one. I'll try to embrace the freedom of only checking email forty, er, um, I mean, four, times a day.
  • Caffeine: I thought I kicked the junk, but I'm back on it. The Diet Coke is going to destroy me. In the words of Dennis Miller, do I need a soft drink with an undertow? I'll start reaching for water unless I really need a kick to get some code working. Actually, I think that Diet 7UP is probably an appropriate methadone for Diet Coke, no?
  • XM 150-154: I love my XM Radio, especially the four twenty-four hour comedy channels...I listen to them while I code...wait...why is this a crutch? Screw that, I'm keeping this one.

What programmatic crutch are you going to remove during your quest to be a better developer in the coming months?

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. I am a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by ORCS Web
Saturday, July 21, 2007 7:24:58 AM UTC
XM 150-154 do rock (though 151 gets a little too Canadian for me most days). I do think that Intellisense are making us all weak...but I will not give up my coffee...I work in a coffeeshop almost every day and I can't imagine life without my black gold. Of course maybe that makes me an addict...
Saturday, July 21, 2007 8:05:08 AM UTC
Intellisense.

Hahaha. But seriously. I had powered up the work laptop on my home network, and Resharper had disabled itself because I bought a personal license, and it's for as many machines as you like, but only running on one at a time. When Resharper disables itself you obviously lose it's enhanced intellisense, but it doesn't turn VS intellisense back on. I hadn't realised and once I typed objectName and then the . ..... I was so lost.

*sob*
Saturday, July 21, 2007 9:44:26 AM UTC
Fortunately it seems that I generally know what I want before IntelliSense tells me. I also tend to type until I realize that IntelliSense has already pegged at the only possible result and then hit tab.

I used to write lots of HTML and PERL in notepad/vi, and Java/Swing in Borland studio which was just a step above notepad. I usually ended up writing my UI by hand for some projects. Then I found VS, and realized that I'd much rather be productive than l33t.

I suppose that the thing that I could give up that would bring the greatest gain in terms of code quality would be marathon coding sessions. They are really fun, but not always the best for thinking through problems and doing things right.
kettch
Saturday, July 21, 2007 12:25:50 PM UTC
I disagree on the IDE and the intellisense. OK OK, I learned C# in GVIM32 and the .NET SDK with CSC and NMAKE at the command line, BUT I wasn't very productive. Yes, I learned a lot, and I do still encourage people who have never worked this way to do it. If this is what you mean by IDE as a crutch, then I agree.

But I can't even use straight Visual Studio anymore. I need CodeRush and Refactor!Pro. I can't live without them. I know this sounds like an ad, but its just plain true.

Instead of removing a crutch by removing things, how about removing a crutch by mastering the tools at your disposal. Are you getting everything out of VS that you could be?
Saturday, July 21, 2007 12:34:02 PM UTC
Hey, you can't be too Canadian.

I've taken to writing code in Notepad at least once a day, it's a drastically different experience than letting intellisense complete your sentences for you. Often I can get an entire program written in the time it takes the IDE to startup and create a project...
Saturday, July 21, 2007 1:40:31 PM UTC
I have ditched email, mostly. I check it maybe 2-3x a day now, and my windows mobile device doesn't auto-sync/push. The amount of time that has given me back is amaizing.

I'm re-crutching (is that a word?) on caffine (2x double espresso a day) and good trance music. Works so far. My other crutch is my noise cancelling headphones (Blackbox M-14's). But I dont have a door on my cube.

Of course, I can code without them.... really I can. Hey! Get away from my espresso machine!
Saturday, July 21, 2007 3:44:27 PM UTC
Agreed, the Diet Coke *is* gonna kill you. I recently have winnowed down my Diet Coke habit since I started doing a real exercise routine and my buddy kept reminding me that my significant Diet Coke intake was diminishing my returns. So now I am doing water and to be honest I enjoy it less. Even seltzer water doesn't give me the same enjoyment.
Saturday, July 21, 2007 3:56:17 PM UTC

I guess I am different than most people. I drink no soda. I do not like coffee but I *love* chocolate. I can go through 1 pound in 30 minutes.

I love Intellisense and Resharper. I don't have to go "what's that method name again" or use a reference book. Just type along and be more productive. Use 2-3 monitors.
Abdu
Saturday, July 21, 2007 5:00:23 PM UTC
I am addicted to Visual Assist and Code Rush ( when they play nice together) I disable intellisense.
Saturday, July 21, 2007 5:40:38 PM UTC
Maybe the idea should be to regulate some of the "crutches" rather than to get rid of them. I have been attempting (with quite successful results, which was a little surprising to me I must admit) to partition my work hours into three distinct activities: design/code/test, getting up and moving around a little, and doing the e-mail/web page read thing. Effectively, I've given myself "permission" to take 5 minutes every hour or so to get out of my seat and move around a bit and stretch, 5 minutes to check e-mail and read something posted online and the rest of the time I focus on the actual job I need to do.

Knowing that I've got a little mini-break to look forward to in an hour or so actually seems to make me focus more on the task at hand. Prior to trying this out, my internet box was always whispering to me that I ought to, for instance, check the e-mail or see if the stock market is tanking. It was a distraction, honestly.

One thing I really find helpful (even though now I have my own office) is a set of noise-canceling headphones. They are like my "do not disturb for idle chit-chat" sign. Seems to have always worked well at my jobs.

Time for some Diet Coke! ;-)
itsmatt
Saturday, July 21, 2007 6:13:15 PM UTC
an operating system I configured myself for years
with loads of hot keys and shortcuts configured the way I want them

it's probably freedom

freedom to choose the IDE i'm comfortable at and freedom to configure os the way i like

that's my crutch
Saturday, July 21, 2007 7:19:12 PM UTC
Whatever the crutch may be, it's not as important as going through the exercise of intentionally detaching from a dependency. At least you'll learn whether you really need it, and need to put it back in play, or whether it's just part of every last human being's predisposition to addiction response.

A number of contemplative traditions suggest that fear is an ancestor of attachment. Challenging the attachment might provide a clearer perspective on the particular granule of fear that drives all kinds of attachments.

I use test-driven development to challenge my assuredness that I know how to design. I'm attached to that assuredness because it's part of my identity as a tech lead. Detaching from my assumptions that I know how to design lets me be free of the energy drained by sustaining an identity that could be better used to have a sharper perception of the reality that I'm trying to model.

Giving up a crutch is a great idea. Something seemingly as materialistic as coffee could be a gateway to a whole dimension of clarity that we're not presently aware of.

Personally, I think detachment is a huge part of being a better developer and a better designer. better software comes from a clearer understanding of the truth of the models we're working with. Any effort for a programmer to gain clarity will inevitably improve the product of the programmer's mind.

My 2 cents.
Saturday, July 21, 2007 11:49:03 PM UTC
I'm not sure that giving up a habit just because it's a habit is necessarily important. What some people might consider a crutch, others might consider a ritual that helps them get into the zone. (The email thing might fall into that category, dunno.) Programming requires intense concentration, and it you can achieve that concentration fastest by first doing 10 pushups, then checking gmail, and then opening your favorite IDE, hey great. Maybe you can't always do that, but when you can, things go best.

My personal crutch is working at night. I generally attempt to lead a "normal" life of going to bed and getting up within a few standard deviations of most of the working world. But when it's crunch mode, all of that goes out the window, and it's back to the 11 (am) to 4 (am) world for me. Works for me, and thank goodness, I have a spouse who can live with that. It might be possible for me to forgo the crtuch of late nights, but the fact is that I'd just get a whole lot less done. Not sure it's a great trade-off.
Sunday, July 22, 2007 6:17:36 AM UTC
I did the Diet Coke for many years as well (while free for working at McDonalds no less) and it was diet Sprite that got me off the stuff... and after a few years I weaned myself further and went to just water when coding.
Monday, July 23, 2007 9:25:29 AM UTC
My company solved the "coffee addiction" problem for all of us... by putting a vendor machine that does not provide real coffee, but... "a drink that tastes like coffee". Yep. Not kidding here, that's what's written on the label.

On the other hand, I think I'm getting addicted to World of Warcraft. When something goes fine in the office, I now usually say "GG" (Good Game, in WoW), and my colleagues look at me like I was a loony. Now... if only I had my Hand of Eternity to show them... :-P
Monday, July 23, 2007 3:30:24 PM UTC
I can't start programming without reading my "stories" (RSS feeds). I need to fill my brain with wonderful new knowledge before i start banging it against the wall.
Darren Kopp
Monday, July 23, 2007 8:48:30 PM UTC
Scott,

A question -- just out of curiosity -- have you noticed any effects on your blood sugar when using Diet Coke, as opposed to just drinking water?
Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.