Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

Editor's Forum


CUJ Editor's Forum


Stupid Tricks

After the heavy reader response to last April’s forum on "Quirksort," I decided this April to make a fool out of myself instead of you. You’ll be back in the line of fire next year. (Be ready.)

I had just returned from 22 months of service work in Brazil in 1973 when Richard, an engineer at Lockheed, hired me to paint houses for the summer. It was a side business he had mainly for tax purposes, so he wanted to hire people who needed little supervision. He assumed that Stewart, another young man (age 21, just like me) with similar experience, and I would work well together and turn him a tidy profit.

He was right about Stewart. It seems that I, on the other hand, had a flair for the artistic. I took care to ensure that every line was perfect, that every stroke of the brush blended with its fellows to uniformly cover its target. Clients were pleased and I was in hog heaven -- for two weeks, anyway. I was being paid by the hour and just wasn’t fast enough, and Richard evidently couldn’t afford to fund works of art. He had to "let me go" (a favorite euphemism). I was canned. Sacked. Fired. For painting too well.

I deserved every bit of it. I’m no businessman (obviously), but I know enough to realize that to be profitable, a business must walk the fine line that provides sufficient value while expending only a modest amount of resources. Perfection is not an option. I was overindulging my inclination to "do my best" and refine my personal abilities in a way that Richard’s business model didn’t allow for.

Unfortunately, too many businesses in our industry follow the same business model, while at the same time it seems too few programmers lust after quality. Surely there must be some common ground between the two parties that allows for excellence.

I once worked for a manager who believed that training should be offered only on rare occasion and to a precious few as a perk for a job well done. Seems sort of backwards, doesn’t it? There needs to be resources allocated for "sharpening the saw," to borrow Stephen Covey’s term, else programmers and product turn very dull indeed, yet the blind spot induced by the short-term, quarterly-bottom-line mentality of today’s management force keeps training, mentoring, and personal development off the priority list. Stupid management tricks.

I have also observed programmers who, like Godot’s anticipants, take no initiative to expand their competence, preferring instead to be spoon-fed by the next code inspection (if indeed these occur at their shop) or by some training course that, because of their irresponsible attitude, goes in one ear and out the other. Stupid programmer tricks.

Over the years I’ve learned to better balance my yearning for learning with my employer’s penchant for profit. Meeting in the middle has required some late-night study, an occasional job change, and regularly making my share of mistakes. Those mistakes, over the years, have included: copying and pasting code instead of factoring it into a separate module, thus using my editor as a bug replication tool; not using assertions; putting real work into assertions (which of course disappear in release mode); returning a reference to a local variable; providing a complex solution when a simpler one would do; and letting myopic managers get under my skin. That’s just the Short List, of course. But hey, I’m not as stupid as I used to be. That’s something. (But I still paint real slow.)

Chuck Allison
Senior Editor
[email protected]


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.