An outrageous, insightful, and sadly accurate commentary on programming. I found this an extremely entertaining read and agree with most of it. It doesn't offer solutions, but certainly highlights a lot of the problems.
"Double you tee eff?" you say, and start hunting for the problem. You discover that one day, some idiot decided that since another idiot decided that 1/0 should equal infinity, they could just use that as a shorthand for "Infinity" when simplifying their code. Then a non-idiot rightly decided that this was idiotic, which is what the original idiot should have decided, but since he didn't, the non-idiot decided to be a dick and make this a failing error in his new compiler. Then he decided he wasn't going to tell anyone that this was an error, because he's a dick, and now all your snowflakes are urine and you can't even find the cat.
Personally, I think things will only get better (including salaries) when software development is treated like other engineering disciplines.
(Score: 4, Insightful) by Ethanol-fueled on Thursday May 01 2014, @02:47PM
If you work for a place that does things properly as you suggested, there will already be numerous strict specific guidelines and a version control system for software/firmware departments.
If you work in a place stuck in a garage mentality like I do, where the version control system is e-mail and stashing your fistful of source files in some shared desktop folder on the Starcraft server, chances are the engineering department's gonna be similarly run.
Sure, there's a document-control system and a numbering scheme, but people are going to be pencil-whipping those drawings when they should be checking them, and then once those changes are implemented an ECO or whatever is released but nobody is made aware of it, and then you have a NASA-style disaster where people are building stuff in SI units while the drawing now calls out inches and shit.
tl;dr - Both software/firmware and engineering departments can be run well or like shit.