TechRepublic : A ZDNet Tech Community

Programming and Development

Host: Justin James
Contact

If you read the ads in development-related magazines or on Web sites, you would think that solving development inefficiency is a great path to making big bucks — and I believe that it is. There are tons of products on the market that claim to improve developer efficiency, from different languages to IDEs, automated build tools to automated build environments. I will try to bust some myths, bring to light a few truths, and show some partial truths regarding developer efficiency.

Myths about what leads to developer efficiency

#1: Drag ‘n Drop IDEs are the be-all and end-all.

Drag ‘n Drop IDEs are great… for building UIs. Outside of using a Drag ‘n Drop IDE as a graphical code generator for UI-specific tasks, they universally stink. Unless you are writing an application so basic that the IDE’s assumptions about how code should be written won’t hurt things, chances are you will rip out at least half of the code that the Drag ‘n Drop IDE put there for you. Go ahead, use Visual Studio or Eclipse — they are great IDEs. But be wary of trying to drag ‘n drop your way to a complete application.

#2: Slumber parties at the office equal more quality work completed.

I call a workaholic programmer who regularly pulls all-nighters The Martyr. It is tempting to think that putting in more hours equals more work, but most developers are spun out by 5:00 PM. Development is brain-taxing work, and you cannot do it when you’re tired or improperly nourished. A late night here and there may pay off, but chances are, the quality of the work done past 6:00 PM or 7:00 PM is low, and the next day your efficiency will be in the toilet. Avoid the late night work whenever possible — you are not nearly as efficient as you’d like to think.

#3: Caffeine, nicotine, and sugar are your friends.

Caffeine, cigarettes, and sugary beverages contain chemicals that might provide a temporary boost in awareness, alertness, and concentration. But the 30-minute jolt that a can of Mountain Dew might give you is followed by a much longer crash that dulls your senses and fatigues your body. This is why you see people with trash cans full of soda bottles, cigarette packs, and coffee cups; they need to continually ingest the chemical(s) of their choice to find a balance. Trust me, I have been there myself (regrettably, I started drinking coffee again a month ago, but I am still cigarette and sugar free). Try to replace the coffee with water, the sugar with fruit, and find a way to quit smoking. Not only will you stop feeling the nasty side effects of coming down, but you will also have much fewer interruptions when you do not need to leave your desk constantly.

Truths about what leads to developer efficiency

#1: Environment matters

No, I am not talking about Al Gore or Greenpeace. If you are in an office, I bet good money that there is a standard fluorescent light bulb over your head. It probably cost the builder $45 or less to install; meanwhile, full-spectrum task lights can easily cost over $100.

Ever notice how many IT pros turn the lights out in the office? It is because fluorescent lights are horrible on your eyes when you’re using a PC; turning the lights off reduces the immediate stress on your eyes that causes the 2:00 PM headache. The problem is that your eyes dilate even more when you turn the lights off, letting even more of the eyeball killing monitor light damage them. In other words, the short term “fix” does long term damage. Go ahead, buy the $100 task lamp; it is cheaper than a new pair of glasses or contacts, and it will improve your efficiency significantly since you won’t be in pain by mid-afternoon.

#2: Practice makes perfect

A lot of developers think that warming a chair for 10 years makes them a better programmer. The fact is that someone who spends time reading about new ideas and trying them out on their own time is going to learn valuable lessons that they can apply in their day-to-day work. If you want to become more efficient, I suggest spending time working on a project (at home or set aside an hour or two a week at the office) that is related to work but that uses techniques that are new to you. You will discover that learning new techniques always pays a huge dividend.

#3: Limit interruptions

Your manager is making you less efficient. Every time he or she stops at your desk for a quick status update or e-mails you a memo reminding the team of the dress code policy, your concentration is broken. Even a slight distraction of a minute or two can take many more minutes to recover from and get back in “the zone.” Add that up over the course of a day, and you could be losing up to an hour’s worth of time where you are fully “in the problem” due to your manager or a coworker interrupting your thought process.

Close the door (if you have one), put blinders on so people near you don’t bother you, and close your e-mail and IM clients. Limit opening your communications software to a few times a day (after a meal, a restroom break, or other similar time is perfect, since you have already lost your train of thought anyway). If it is really important, they can pick up the phone and call you.

Partial truths about what leads to developer efficiency

#1: Code generators may lead to more work on your end.

If you are doing a ton of rote tasks, like creating the accessors for a class that represents a 200 element XML schema, code generators are great. Drag ‘n Drop IDEs make short work of generating UI code, but unless your task is extremely generic, you will probably spend more time tweaking the generated code than it would have taken you to just write it yourself. For specialized tasks, sometimes a text editor that supports regex find/replace or a spreadsheet program like Excel can do a task in a few moments where pricey code generators fall flat.

#2: Language matters some of the time.

Sometimes language matters, and sometimes it doesn’t — it is completely situational. For example, many of the languages that can be written extremely quickly thanks to type inference or syntactic tricks are often difficult to follow when they are maintained. The two minutes worth of typing saved can cause an hour of wasted time down the road. The current mainstream languages (Java, VB.NET, and C#) are all so similar (VB.NET is slightly more verbose) that none of them are particularly more efficient to work with. Some languages do have unique properties and advantages that can significantly impact development time. For instance, try writing something that is as pure logic (or math) as a weather forecasting system in C#, and you’ll be sorry. On the flip side, a typical Windows desktop application written in Fortran will probably take forever. Library support matters too; some languages, despite being weaker, in and of themselves, have library support that makes up for it.

#3: Personal life

Developers who get phone calls from friends and family for a total of two hours a day are probably not going to get much done. However, locking people down is not going to fix the issue of personal calls either. For many people (particularly those with children), a five minute phone call might save a trip home. In an ideal world, developers would not let their personal life and issues affect their work. In the real world, an argument with a spouse, money worries, the kids’ grades, and so on can and will spillover into someone’s work time.

So, for all you managers out there, while personal telephone calls represent an obvious inefficiency, it’s fairly useless to have a programmer in the office who has something heavy on his or her mind. They won’t be able to concentrate anyway, so go ahead and let them do what they need to do within reason.

What would you add to this list?

I would love to hear some developer efficiency myths, truths, and partial truths from you. What do you think is making you less efficient? What do you think would make you more efficient? Share your thoughts in the discussion.

J.Ja

Justin JamesJustin James is an employee of Levit & James, Inc. in a multidisciplinary role that combines programming, network management, and systems administration. He has been blogging at TechRepublic since 2005. Read his full bio and profile.

Print/View all Posts Comments on this blog

More Myths and Truths Paul W. Homer | 11/09/07
Mythical Date Creature EM1109 | 11/09/07
As long as you don't confuse less code Tony Hopkinson | 11/09/07
So Called "Full Spectrum Lighting": Link at rpi.edu gregpf_at_briodotcom@... | 11/12/07
I have read them Justin James | 11/12/07
RE: Developer efficiency myths and truths shubalubdub@... | 11/09/07
For those of us who have been around awhile TiggerTwo | 11/09/07
You would be surpised Justin James | 11/09/07
Not to mention... Justin James | 11/09/07
a LOT of things should be taught at a university that aren't keeleyt83@... | 11/12/07
University IT Education McMedics | 11/16/07
a LOT of things should be taught at a university that aren't wcannon@... | 11/16/07
I'm not so bothered about the language as the fact Tony Hopkinson | 11/17/07
Beware the global search and replace, especially w/regex SnoopDougEDoug | 11/12/07
Been there, done that! Justin James | 11/12/07
Oh yeahhhh.... Litehouse | 11/13/07
me too... Locrian_Lyric | 11/15/07
That is one of the most frightening things I've ever heard Tony Hopkinson | 11/10/07
Symbols vs. text Justin James | 11/11/07
I'm confident about my stuff Tony Hopkinson | 11/11/07
Re: Developer efficiency myths and truths Bad Boys Drive Audi | 11/12/07
RE: Developer efficiency myths and truths prashant.jalasutram@... | 11/11/07
You read it wrong Justin James | 11/11/07
RE: Developer efficiency myths and truths vijays@... | 06/19/08
This time you wrote a good one ... with one minor exception kovachevg@... | 11/12/07
Bad call on IDE michael@... | 08/14/08
Nice one Justin edmundward209@... | 11/12/07
Thanks! Justin James | 11/12/07
Amen rhend@... | 11/12/07
Comment from my wife last night at the dinner table: rclark@... | 11/15/07
Music is your friend jasocher@... | 11/12/07
Music Justin James | 11/12/07
Music is a must in my environment rhend@... | 11/13/07
True Murali Bala | 11/16/07
Improving efficiency everywhere else: "code" hinting stephen.scholtz@... | 11/12/07
In code syntax and semantics are fixed Tony Hopkinson | 11/12/07
OO hints words Saurondor | 11/12/07
Hinting... Paul W. Homer | 11/12/07
Typing, we had a thread that went into the thousands on that Tony Hopkinson | 11/12/07
Code hinting and such Justin James | 11/12/07
Code hinting and such, all of it tuomo@... | 11/12/07
I agree with Homer don.gulledge@... | 11/15/07
And I agree with you tuomo@... | 11/16/07
... column cut 'n paste. Marty the Borg | 11/19/07
A couple more Saurondor | 11/12/07
The first thing about making your code changeable Tony Hopkinson | 11/12/07
All code changes Saurondor | 11/12/07
That's what I said Tony Hopkinson | 11/12/07
Testing Justin James | 11/12/07
RE: Developer efficiency myths and truths edmicman1 | 11/13/07
I wish I had... Justin James | 11/15/07
RE: Developer efficiency myths and truths lalkishor@... | 11/14/07
More re: Developer efficiency myths and truths wcannon@... | 11/14/07
I am a guilty Notepad Webdesigner rclark@... | 11/15/07
Well Said. don.gulledge@... | 11/15/07
That's how I did it! Bad Boys Drive Audi | 11/16/07
Must confess I use notepad as well Tony Hopkinson | 11/15/07
The Crystal Singer by Anne McCaffrey rclark@... | 11/16/07
Thought you'd posted to the wrong thread there. :D Tony Hopkinson | 11/16/07
Or worse rclark@... | 11/19/07
RE: Developer efficiency myths and truths salbert@... | 11/15/07
RE: Developer efficiency myths and truths mark.carolan@... | 11/15/07
re: Developer Efficiency wcannon@... | 11/16/07
The Greatest Myth Paul W. Homer | 11/15/07
Well that depends on whether you interpret abstraction Tony Hopkinson | 11/15/07
Abstractions Paul W. Homer | 11/16/07
Well we have different experiences then Tony Hopkinson | 11/16/07
Modeling wcannon@... | 11/16/07
That can be a hard one Tony Hopkinson | 11/17/07
re: That can be a hard one wcannon@... | 11/18/07
No argument there Mr Cannon Tony Hopkinson | 11/19/07
Absolutely. But abstraction for abstraction sake is just as bad. rclark@... | 11/19/07
RE: Developer efficiency myths and truths david.cuthill@... | 07/28/09

What do you think?

White Papers, Webcasts, and Downloads

Recent Entries

TR on Twitter

Archives

TechRepublic Blogs



500 Things Every Technology Professional Needs to Know
Did you know Microsoft's RegClean does not work with XP but you can use shareware to clean your registry? Did you know most wireless access points don't have encryption enabled by default? Did you know there are 500 tidbits of information contained in TechRepublic's 500 Things Every Technology Professional Needs to Know that will help you become a successful IT professional.
Buy Now
Quick Reference: Linux Commands
Reduce stress and speed up resolutions with the easiest command references right at your fingertips. You'll receive a PDF file covering Linux, packed with the most common commands you'll need and use daily.
Buy Now

SmartPlanet

Click Here