

Nobody Hates Software More Than Software Developers - psawaya
http://www.codinghorror.com/blog/2009/07/nobody-hates-software-more-than-software-developers.html

======
jrockway
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.)

~~~
pvg
It's not as good as something one hardware manufacturer (Apple) has put on
their phone (iPhone OS). No user (statistically) cares about GPL 1, 2 or 3 or
the possibilities some modular design opens for either hardware or software
developers. They care about the UI not sucking. At the end of the day, that's
the gap Android has to bridge.

~~~
barrkel
I've had an iPod Touch and my girlfriend has had first an iPhone 3G, and now
3GS, for about a year; and on Tuesday I got my Nexus One. I think the Nexus
One is the better device. There's a lot of polish missing, with too many taps
required for some things, not enough finger-swipes etc., but everything else
considered - especially background apps - I would not swap it with an unlocked
iPhone. (And I have a fair choice of networks, being in the UK.)

The ability to go onto the marketplace and download e.g. a battery monitor app
that could display a number on the notification bar rather than the 5-state
default was refreshing. I had to jailbreak by iPod Touch to get similar
functionality. I similarly had to jailbreak it to disable auto-rotation;
that's a default option in the N1. And the sense of freedom in being able to
e.g. download Opera and replace the browser is refreshing. This is a device
that doesn't necessarily need Google to improve it - competition can play its
part too.

~~~
pvg
_There's a lot of polish missing, with too many taps required for some things,
not enough finger-swipes etc., but everything else considered - especially
background apps_

At this point you are in the far distant percentile of
power/advanced/ideologically-inclined users, though. Obviously some people
will care a great deal about the precise display of their battery status. But
you have to recognize they are far fewer than the number of people who care
about being able to do basic things with 3 fewer taps.

~~~
barrkel
The effect is more subtle than that, and hard to explain. The iPod Touch seems
relatively primitive to me now. The screens are miles apart, while the Apple
device has smoother scrolling etc.

The best way I can think of to describe it is like a Mac vs PC, except with
the Unix subsystem made completely locked-down on the Mac. PCs are just better
and more productive machines for my way of approaching the world. It just
feels more industrial-strength, more adult, less toy-like, at an emotional
level that's very hard to express concisely.

------
gommm
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...

------
cool-RR
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.

------
lyudmil
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.

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 _always_ 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.

------
__david__
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).

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).

~~~
nitrogen
What motherboard and chipset do you have? My brother began experiencing
similar random hang-ups when he added a second hard drive to his C2D E8400
system running Vista.

~~~
__david__
I've got an Intel DX58SO (the only core i7 from Intel I could find at the
time). Usually Intel motherboard "just work" with Linux...

------
Aegean
I bought a business lXnXvX laptop, and guess what? There is a pile of junk
waiting for me named as _enhanced experience_ , 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.

~~~
vetinari
The best bargain got the lXnXvX buyers, who bought vista machines eligible for
win7 upgrade - they received pristine win7 oem discs, without any enhanced
experience or other garbage.

------
dacav
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.

There's no good software out there. There's just software that sucks less.

~~~
bruceboughton
That's a little strong. Of course there is good software out there. There's
even great software out there, just not much.

In a field where the barrier to entry is so low it is natural that the average
quality will be lower. Compare this to say, aircraft design, where the bar to
entry is skyhigh (pun intended) and as such average quality is higher.

------
motters
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.

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.

------
cookiecaper
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.

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.

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.

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.

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.

~~~
blasdel
_If he's been fortunate enough to always be the least competent on his team_

He's Jeff Atwood -- the hand of fortune has no role in his relative
incompetency.

~~~
jrockway
Ouch.

------
mambodog
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.

------
rubinelli
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.

------
msluyter
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.

------
freebsd_dude
His argument points out the benefit of web applications- your software may
suck now, but maybe not so much next week.

