Tuesday, June 30, 2009

Sharpening the saw

I follow coding horror and recent read an interesting piece titled "sharpening the saw". This resonated with me and I felt compelled to expound on the concept a little.

In brief, sharpening the saw refers to the notion that working harder with a dull saw is not as effective as sharpening the saw, then cutting the wood. Obviously this is a generalization, but it alludes to a problem I see all the time and I honestly like the metaphor.

Leaders in software development organizations need to build an understanding about the importance of keeping their developers on the cutting edge. A developer using vi or notepad to write software is wasting quite a few brain cells on things that a modern IDE can do. In addition, a developer who only uses COBOL and has done so for 20 years is having their brain turned into a solid rock that will eventually be unable to produce anything helpful (note to COBOL programmers, this applies to java, fortran, ANY development language/tool)

I know, I know, there are a number of alpha geeks out there who code everything in vi, as a matter of fact, there are probably a few folks who actually write bytecode by hand. They will also all say "and I'm still faster than (name crappy programmer they've compared themself too)". In addition, someone will probably also send a link to a web server/3d rendering too written COBOL. What they're missing is that they're not as fast or effective as they could be.

The important point, however, is that a technology leader needs to help build an understanding among all the players about the importance keeping the saw sharp. Programmers know what they are doing and what the state of the art is. They also need to be given the best tools that are economically feasible so that they aren't wasting energy because of the tools they've been given.

If the excuse you use is "there's no TIME to do any of that" then you either #1 aren't fit to be a tech leader or #2 your leader is crushing your team. Either way I would encourage you to take personal responsibility for keeping your saw sharp.

Some specific examples of dullness:

#1 Do you have web developers with 13" monitors that flicker ? - Compared to the annual salary of even an entry level software developer, the cost of a 22-24" widescreen is trivial. Having workmen's comp claims from blind developers with migranes is going to be a fruitful legal area in a few years....mark my words.

#2 Do your developers go to the same tool for EVERY solution (java, C#, COBOL, whatever)? This is closely related to the Golden Hammer problem, but is really a symptom of developers not being exposed to new ways of doing things.

#3 Do you routinely hear things like "that's impossible, because {insert some problem that is highly technical, but irrelevant}"?

1 comment:

john_doe said...

Have you been using stackoverflow and serverfault?

Hands down, one billion times more useful than expert sex change.