Jon the incompetent
Yesterday I wrote about Greg, the guy who thought keeping everything he did at work a secret was a form of job security. Today I'll tell you about Jon, a guy I'm sure you all have worked with.
In 1984 I left Univac to work at a company that did automated warehousing. The work was the most stimulating of my career. I learned multi-tasking programming and much more. It was great except for Jon.
Jon was a self-proclaimed expert at serial communications. He was given two parts of the project to work on: The low-level communications code in the device, and a device simulator. One of my tasks was the code the next level up. My code processed the messages once the low-level code transferred the data.
Jon worked for six months on the simulator. I needed it to fully test my code. For two or three months Jon said he was a few weeks from finishing it. Finally I had had enough. I looked at Jon's code and wanted to barf. It was total garbage. I took what I could from the code and totally rewrote it. It only took three days to have it all working. Next I rewrote the low-level code in the device. My code is still in use today.
I went to the boss and told him that Jon couldn't program. Whatever. After 10 months I left the company for an offer I wanted to refuse but couldn't. 29% increase and Fridays off. After 3 years there I returned to the material handling company. Jon was still there. I avoided directly working with Jon for ten years, then had the misfortune of being on a project with him again. He still couldn't program, but claimed to be the best programmer anyone could ever meet. I re-wrote his code once again as soon as he was off the project.
June 24th, 2009 10:11am
oh yeah. known a few of those, the worst was a guy in Dublin. Nick. wow, what a fuckup he was. legendary.
June 24th, 2009 10:13am
the dude i knew was supposed to write me a test fixture for a board we were working on. first thing he did was this impressive GUI in visualBasic or something. Our manager (just as much of a fuckup) was dead impressed.
underneath was just fucking nonsense. like, utter incomprehensible crap. overcomplicated design, impossible to understand the logic or intent.
rewrote the thing as a command line util that ran directly on the target board, off we went ...
mind you, that whole company was a fuckup.
June 24th, 2009 10:17am
Re: Jon. There's a particular kind of shitty programmer found in some organizations - due to technology shifts, I believe that the breed is dying out or has already, but it was once pretty common.
The type I'm referring to is the so called "embedded" or "low level" programmer who knows a very few very particular things about some specific subject matter, like serial IO or controlling on-board hardware. Usually the culprit is an EE or otherwise who has no specific computer training, coursework or background.
The crux of the problem is that this type doesn't take programming seriously, and their thought and reasoning process is deliberately chaotic. If you observe that some of their code is shitty, they will defend it with torrents of defensiveness that they have been deprived of good programming practices and they are really a "hardware guy."
- The breed doesnt' give a good **d damn about craftsmanship. They are too stupid, lazy and inattentive to pay attention to other people's good code and pick up techniques for their own use. They deliberately know just enough to get by.
- Their "hard to learn" and esoteric skills usually are extremely narrow and could be fully documented in 20 pp or less.
- The real problem, and the reason that such guys have such power to suck, is that most traditional programmers - I mean all programmers as a group - tend to be cowed pussies who refuse to open their minds and learn about some non-CS domain like flipping a few bits.
- A few stupid managers are afraid of and very respectful of this person's skills, because they simply can't identify anyone else with the few comparable niche skills.
But like I said, I think that this type is dying out, mainly because embedded and hardware control opportunities are fairly rare and declining, and really simple hardware like UARTs (serial devices) are less common in board designs today.
Good riddance, I say. Mainly what I am describing is a breed of unprofessional hack.
June 24th, 2009 11:24am
The lack of other responses leads me to think that the specific type being discussed in this thread is pretty much extinct, since these stories apparently don't resonate with anyone else.
The "hardware guy who is a self consciously shitty, disorganized and incompetent developer" was pretty common even in the early 90s.
I only know one guy like this today and he is an older, semi-retired, *very* part time freelancer.
Sigh... I've been in this dumb industry too long.
June 24th, 2009 3:29pm
Frankly, BB, I am kind of tired of your consistent complaints of this sick industry.
I DON"T WANT TO HEAR ABOUT IT!!!!!
June 24th, 2009 3:32pm
Then stop reading about it.
June 24th, 2009 3:33pm
Sure I will. Just want to let him know since he's a little puzzled by the lack of response.
June 24th, 2009 3:35pm
I, for one, enjoy reading Bored Bystander's posts and his stories about current and past issues in our field.
Actually, !!!!!!!!!RICK!!!!!!!!!, it wasn't even a complaint this time.
I consider the "hardware head hack" to be part of the color and folklore of the programming occupation.
This is really a less colorful industry than it used to be. Hardware-knowledgeable hacks who could care less about things like global variables and good program structure were once the proud, rugged individualists of the industry.
Their studied and deliberate ignorance defined a creed of self promotion. The less they knew about "good" programming techniques, the more solidly embedded they were in the local politics of the company.
You'd have the sissy-boys with their CS degrees fussing and tsk-tsking over code that the leathery, he-man EE wrote by dint of pure labor. Each line laboriously copied and pasted, no loops! No parameters! All variables shared as God intended! Handcrafted in much the same manner of Brice Richards.
Now go tend your mushroom farm, Rick. Wiener.
June 24th, 2009 4:05pm
It's not funny. We (CS nerds) still need to compete with all those EE grads!
June 24th, 2009 4:07pm
Rick has obviously never had to deal with a communications "protocol" designed by a electrical engineer.
Think: INI file sent over a serial link.
With binary-encoded optional blocks.
June 24th, 2009 4:09pm
>> Think: INI file sent over a serial link.
>> With binary-encoded optional blocks.
Oh, stop, you're KILLING me!!! LOL!!! So familiar!
June 24th, 2009 4:11pm
Of course not :) Not at work for sure.
When I started working Gopher, ZMODEM, KERMIT and stuff like these were (almost) history.
June 24th, 2009 4:16pm
And.... another funny thing about electrical engineers who insisted on coding (the INI file thing above set me off):
THEY WOULD *NEVER* EVER (ever!!!) ASK ANYONE *ANYTHING!!!!* EVER!!!
Zero, and absolutely NO collaboration. And PROUD of it.
The "electrical engineer who coded" would blindly and stupidly code his way around the universe and produce a hideous abomination rather than spend 2 minutes running his idea past someone else for a reality check.
NO electrical engineer worth a crap would EVER soil his reputation by asking a mere SOFTWARE PUKE to look over a design or to recommend an approach. EVER!!!
It was quite miserable to deal with on the job. But pretty funny to think of such lame asses being central to a lot of tech departments.
June 24th, 2009 4:24pm
I was only quiet because this became more an EE post than a CIS post.
Engineers are rugged individualists - if it doesn't blow up, it works. None of this namby-pamby programming stuff. Boss: "Why are you asking me, you are an engineer!...cheater." I'm guessing Jon did other things and wasn't too fond of programming, anyhow (unless it was something like embedded logic programming).
June 24th, 2009 5:00pm
Yeah, EE's hate the word 'soft' in the word 'software'
They prefer things to be crisp and unambiguous.
Which doesn't explain why there were holes in his protocol you could drive a Ford E-150 passenger van through.
"You didn't cover this case"
"My code won't ever send a file that looks like that"
June 24th, 2009 7:11pm
Really, I think it's a case of cargo-cult programming.
They write protocols which *look* like other protocols, but lack their substance.
Like line-oriented "XML" formats.
"You need to read this file from top to bottom"
"Why? It's XML. I'll load it into the DOM and query the values I need."
"You don't need to use one of those because I made sure all the references within the file were forward references so you'd know about them when you encountered them later."
"That's not necessarily a valid way to process XML.. oh what's the use?"
June 24th, 2009 7:14pm
The discussion on EEs doing programming strikes a cord with me. I've seen lots who should have been doing something else. Some, however, really have it together.
Jon, on the other hand, was not an EE. He was a CS major. The "low level" programming he was doing was not as low level as the UART level. It was all Pascal code, then later C code. It did require designing then implementing a protocol. The later work I re-wrote wasn't communications related at all.
Jon simply was totally incompetent. I don't know how he remained employed for so many years.
June 24th, 2009 7:39pm
Sounds like Jon should write a book on how to be a successful poser. ;-D
June 25th, 2009 12:07am
Wow, you're lucky Jon didn't learn Fortran first...
June 25th, 2009 8:58am