This is why I like things like Android -- it allows the hardware people to make hardware, and the software people to make software. Android may not be perfect but it's better than anything hardware manufacturers put on their phones before. (It would be even better if it were GPL3, so that users could actually change the supposedly-free software on their devices.)
I agree but from having been doing some recruitment lately I can truthfully answer that the worst code I've seen recently is not my own... It's scary to recruit programers...
I agree with most of the article, but I wish Jeff Atwood would stop telling us what programmers should be like and who we should not hire. He has good observations, but he's talking like a cult leader and that's annoying.
I used to really enjoy such posts - ones that celebrated the weirdness and unpredictability of software. The Zen of the argument Jeff Atwood presents is appealing for some reason. However, reading such articles now I cannot help but think they contain too little substance.<p>As I understand the reasoning it is this: I'm a relatively good programmer and yet I'm incompetent => The world is full of bad programmers => Most software is badly written => I hate software. Perhaps that currently holds. However, to imply that it will <i>always</i> hold is intellectually crippling. To demonstrate this, all we need to do is look at our premise (axiom?) and rephrase it slightly: "Any good programmer is still incompetent". I personally don't see any reason why this should be self-evident and every reason to find ways to change it.
Wow, I thought it was just me. In life I'm pretty laid back--it generally takes a lot before I get riled up by another person. But trying to get something done and running into dumb bugs in bad software makes me rage. I don't rage at my own code though, like he suggests--at worst it's just embarrassing. No, I only rage at other people's bugs. And only when I'm not in a position to debug or fix it (proprietary binaries, web apps, etc).<p>I think that's why I find my Debian system so comforting. Despite things often going wrong I feel secure using it because no matter what goes wrong I can get the source and fix it (well, within reason--I still can't figure out why my %$#@! sata disk drives randomly hang up for multiple seconds at a time).
I bought a business lXnXvX laptop, and guess what? There is a pile of junk waiting for me named as <i>enhanced experience</i>, well thanks it really made my day by continuously bringing up pc diagnosis software at ridiculous times and asking me needless questions. I became a pc doctor now, installing and updating my computer and making sure it stays healthy. That's my primary job anyway, to keep my pc operational and as healthy as possible. If there is time left from that duty, maybe I can use it for other things. The reason I am angry is this is a premium product and I am obliged to pay $2000+ for this.
Since I managed to run GNU/Linux properly, I thought that software can also be good. Grewing I started to put my hands in software development, and now I'm aware that everything sucks. I realized this by myself, than I read this article and ...well, I totally agree.<p>There's no good software out there. There's just software that sucks less.
It's not true. I don't hate software. In fact, I quite like it. But I do sometimes hate the things which people make software do - such as spyware/malware/DRM, etc. And you only need to fear blue screens if you're running Windows.<p>Software is never perfect. You can tinker with it endlessly. If you're a perfectionist then software development is probably not the career for you. I look at writing software in the same way that an author might look at writing a novel. At some point you have to publish. There are always alternative plots that you can think of, the characters aren't always as interesting as they could be and sometimes there are regrets and missed opportunities. Also readers will have diverse opinions about what you wrote, which may be quite different from how you imagined the novel would be interpreted.
As most of the comments on the post demonstrate, his demand that all software developers hate their own code more than anyone else's code is a little unreasonable. If he's been fortunate enough to always be the least competent on his team and therefore has saved himself the frustration and his co-workers only produced code which he admired, then he is definitely lucky.<p>That's not to say that most of us are great programmers -- most of us, as you might expect, are average programmers. It's just to say that there's a lot of code out there that's not even written by programmers at all. You get the designer who's been copy/pasting every snippet he could get his hands on until it just made the dumb thing work, you get construction workers and plumbers who were attracted to the glamor of a desk job after throwing out their backs, or whatever.<p>One of the last codebases I worked on was a website that ran a whole company but didn't have any ID fields anywhere and all joining or other inter-database matching had to be done by text comparison. This system was written by an ex-construction contractor who'd fallen hard on his luck, learned HTML one day, and became this company's de-facto programmer, so it makes sense that it would be like this; the concept of an ID field, after all, is not self-evident to one without training.<p>Much code out there is "written" by people who have no idea what they're doing. I don't mean that in the self-effacing, most-programmers-are-average-programmers way, but I mean it in the way that "your system was built by someone who was literally just as qualified as your receptionist or janitor" kind of way.<p>Given these circumstances, I don't think it should be an immediate writeoff if you can do better than the last codebase you were brought in to fix.
I had some serious deja vu when reading the anecdote about a woman and camera software. I was in pretty much the exact same situation, except it involved my Mac... so not only was it about to be tainted with crappy software written by hardware people, but it was also likely that it was crappy software written by hardware people who were used to writing their crappy software for PCs.
Random thought spurred by this article: camera and camcorder ads in pregnancy-related pages probably convert pretty well. IME, it's when your firstborn is coming that you realize your phone's camera isn't good enough.
I found this somewhat reminiscent of Socrates' paradoxical "All I know is that I know nothing." Or, knowledge of your own incompetence is a sign of competence.