Hacker News new | ask | show | jobs
by nickelplate 5899 days ago
""Do X, Y, and Z and your code will improve" is something only managers believe"

The thing is, it is absolutely correct for some definitions of X, Y and Z. There are plenty of programmers in the workplace who just suck at constructing code. They don't know how to write good comments, format their code logically and consistently, use good variable and function names, etc. It goes even further: they do not understand why these things are important. I still see plenty of code like this:

bool nothingToDo; // Is there anything to do

....

if (nothingToDo) {

    // We don't need to continue

    return;
}

or

if (time.elapsed() > 10) // If ten seconds or more have passed

{...}

Requests to refactor such code are often met with "This is trivial, just step through the code and figure it out", sometimes from senior programmers (at least in title). And these are not necessarily stupid people, they are often good programmers but not very good software engineers. Have you ever read some of the code open sourced by Google and found yourself thinking "Sheetz, this code is ultra clean"? I bet the people responsible for Google's coding guidelines have read Code Complete. I have been involved in writing coding standards a few times and I referred to Code Complete in each of those instances.

I also completely disagree that this book was written for managers. A manager with no technical background is very likely to dismiss refactoring or code layout as wasted time.

2 comments

A manager with no technical background is very likely to dismiss refactoring or code layout as wasted time.

But they're very likely to throw the biggest "guaranteed to improve code" book they can find, with the biggest company name on it they can find (Microsoft), at all the programmers under them, whether or not it makes sense. And they're more likely to use the book dogmatically, rather than pragmatically, and much of the book seems structured to encourage this use.

I don't think the book encourages this. There are several instances where it concedes that consistency should take precedence over using the "bestest" practice for example. Also, the dogmatic manager will be dogmatic regardless of the book or standard they use as a reference.
they are often good programmers but not very good software engineers

Agreed. There was a gentleman I had the pleasure of working with years ago who wrote an application in Perl that literally performed an inventory of every switch, router and attached device and did so faster than anything I've seen commercially available.

He quit on negative terms (I can't remember the specifics) and upon examining his code, it was FORTRAN in Perl (http://www.codinghorror.com/blog/2005/04/you-can-write-fortr...).

He was a brilliant individual. Myself and a few of his coworkers enjoyed bouncing ideas off of him, often is areas outside of his expertise. When he didn't have an outright "try this instead", he knew what questions to ask to get us mere mortals to think about the solution differently.

If I didn't know the man better, I would say that he intentionally obfuscated his own code. But I get the impression after reviewing several of his projects that he simply thought differently and that expression was displayed in his work. Unfortunately, it made him an island and all of his projects a one-man effort. His manager didn't know good code from bad and didn't require documentation or review. Nobody could support this guy's code except this guy.