One could say it works both ways. developers do not fully understand the
user's needs and it's all about "look at this new code! so cool!" while
the users are going "just fix it you stoopid geek" etc.
But Linus has a good point about end users. You could have the most
fantastic recursive whale saving algorithm (which unlike Johnny's
algorithm, uses B+ trees instead of linked lists and heaps somewhere)
on the planet but it is no good if your target audience cannot use it.
If the target audience can use Johnny's algorithm but not your more
super efficient one, they'll use Johnny's algorithm even though it is
a hundred times slower.
A classic example is Heidi Eraser - was a fantastic product until
the head developer guy decided to use .NET (in version 6.0) and now when
people complain about it he ignores them and just goes "Oh the code's a
lot better and much cleaner than before and it doesn't matter what the
end user thinks..." and shit. Sure the code *might* be better but now
you have a huge runtime, shit that runs in the background, and a crappy
and difficult to use interface. And you've lost Windows 2000 support.
Needless to say now I am writing my own erase utility since even that
is an easier task than attempting to use their stupid interface. While
that is being written I'm sticking with the older version.
This also brings me to another thing about massive changes in code: if
it ain't broke then don't fix it.
I agree with Linus on this one.
On Wed, 28 Sep 2011 13:56:52 +0400
Aleksey Bragin <aleksey(a)reactos.org> wrote:
FYI:
This is Linus' interview.
http://h30565.www3.hp.com/t5/Feature-
Articles/Linus-Torvalds-s-Lessons-on-Software-Development-Management/
ba-p/440
He very correctly outlines many things. One of the most important:
"The other thing—and it's kind of related—that people seem to get
wrong is to think that the code they write is what matters. No, even
if you wrote 100% of the code, and even if you are the best
programmer in the world and will never need any help with the
project at all, the thing that really matters is the users of the
code. The code itself is unimportant; the project is only as useful
as people actually find it.”
And this:
"Way too many projects seem to think that the code is more important
than the user, and they break things left and right, and they don't
apologize for it, because they feel that they are ‘fixing’ the code
and doing the right thing.”
WBR,
Aleksey Bragin.