I'm not talking about open source here, though open source is as guilty in this as any other software. Indeed, sometimes more so (e.g., developers writing code for other developers). I'm talking about all of the software world, and particularly enterprise software, though not exclusively so.
I started thinking about this during lunch with my grandmother on Thursday. We were talking about ways she could communicate with my parents down in Argentina (Skype, iChat, etc.) and she said:
I can hardly use a computer anymore. It's constantly changing. I'm just too dumb to use it.
Of course, that self-deprecation is probably exactly what the digerati would encourage, but the truth is, it's not my grandmother's fault. It's the software world's fault, largely building tools for itself that only "the elect" outside Silicon Valley can comprehend.
In part, the problem stems from the geographic isolation in which software gets built (which is why I've encouraged Silicon Valley denizens to take "field trips" out into the real world). But mostly I think it's a callous disregard for average people (99% of the world's population) that drives software complexity.
Open source, theoretically, should have a leg up in the ease-of-use department, because end users can have a hand in writing the code. Except that they can't, because open source favors the geek just as much as proprietary software does. Perhaps more so. (I'm referring to community-led open source here. Arguably, commercial open source should have all the same advantages and disadvantages that product managers and product marketing bring to the development process.)
There are two companies that generally do better on ease of use. Three, actually. Microsoft, Apple, and Google. Small wonder that they're also among the three largest software companies. Also, interestingly, each largely develops their products from "end to end," controlling every step of the development process and the inputs into that process.
We should do better. I'm not sure we can do better, however, until we do a better job of involving normal people in the development process. Back when I was a law student, I remember Microsoft visiting me in my home every other month to watch me work/use my computer. I imagine that Microsoft's observations of me and many others make their way into Microsoft's products, which is just one reason that Microsoft has done so well. The company makes complex technology easier for average people to use.
This is something that open source could learn from Microsoft: how to involve average people like me, like my grandmother, in the development process. The company that does this, wins. Period.