Do you want them to love it or just use it? September 15, 2007
I’ve been sitting on this post for a few days, pondering if it was worth
releasing or if I was just beating a dead horse. I’ve come to the conclusion
that it is worth releasing but not to point out how much Perforce sucks but to
act as a very concrete example of the difference between applications that care
about how you use them and applications that don’t, about how the words you
choose can make a big difference in usage, and how your current position affects
the perception of your actions.
Renaming/Moving a file in
Darcs:
darcs mv bad_name.txt
decent_name.txt
“mv” is known to millions of linux/unix geeks but even so it looks like they’re
renaming the command to “move” just to be even easier.
Renaming/Moving a file in
Mercurial:
hg rename bad_name.txt
decent_name.txt
Can’t get much more obvious than that.
Renaming/Moving a file in Perforce:
p4 integrate bad_name.txt
decent_name.txt
p4 delete bad_name.txt
Integrate:
[v] become one; become integrated; “The students at this school
integrate immediately, despite their different backgrounds”
-
The word choice here is entirely wrong. You’re not integrating anything. No
things are coming together into one, not even behind the scenes. Using the
wrong word makes the command misleading and unintuitive. Merging files
would be an appropriate time to use “integrate” (and they do). But
when a new user goes to look for this command they’re either going to look
for “move” or they’re going to look for “rename”. They’re not going to think
“I want to integrate my file with a bad name into a non-existent file with
the name I want…where’s the command for that?”
-
It would have been trivial to do what Mercurial (Hg) did and add a
“rename” command that simply wraps the copy and delete operations.
Perforce has been working on their tool for twelve years and in all that time
they couldn’t be bothered to spend the 5 minutes (probably literally) it would
have taken to add a “move” command to make their system easier and more
intuitive. Back in the day they probably figured that since they already had an
“integrate” command (which was decently named for what it did) they may as well
just reuse it for something that, under the covers, was essentially the same
operation. In all this time it doesn’t seem to have mattered to them that it is
a horrible and misleading name for a rename operation. Nor do they seem to care
that it makes it harder for new users. It didn’t even seem to matter to them
that by the act of taking money for their product they are setting themselves up
to a higher level of accountability than any free product.
The people behind Darcs and Mercurial aren’t getting paid for their efforts and
they’re taking the time to make their tools easier to use. Git’s commands could
still use some work before they’re ready for general usage but the project is
still new, they readily admit that the commands need work, and they’re actively
working to make them easier for people. Even now, after a little more than two
years of part time work, I believe that Git’s command set is better that
Perforce’s. If it wasn’t I still would have excused them simply because the
project is both young and free.
If you think I’m making a mountain out of a mole hill, I’m just picking on the
“move” command because it’s a simple concept to grasp that’s easy one to
demonstrate to you. There are similar, and worse, issues all over the
place when dealing with Perforce. Alone, you’re right, one or two issues
like this are not a big deal. In concert, they’re an impediment to adoption and
an increased level of frustration and annoyance.
But, it goes beyond even that. It’s the principle of the thing. When faced with
The
3 Pixel Conundrum
Panic
Software went out of it’s way to make things right. The Darcs team is
constantly improving it’s commands and trying to make itself easier to use.
Darcs is molasses on a glacier compared to Mercurial and
Git but its user interface
is just so damn good that people like using it. Google around for
the comments people leave about their experiences using Darcs. They’re like
people who finally got a deep breath of fresh air after sucking car exhaust
through a straw for three weeks.
Why should anyone have to put up with misleading terminology combined with extra
steps and an obvious lack of concern for the users that Perforce shows when they
could use a product that makes them feel the way Darcs makes people feel? They
both get the same job done in the end, but one of them is hard to learn and
miserable to use and the other… well, isn’t. Apps like
Delicious
Library don’t even do much of anything but they are so enjoyable to use that
you want to buy them, and you want to tell your friends to buy them. I bought it
and I love it and I’m still not sure why I need a categorized list of 500+ books
and movies but I know I’ve got a few stacks of books new books that I need to
get in there and I’d have fun doing it. Scan, smile. Scan, smile.
You shouldn’t tolerate Perforce’s approach in the tools you buy. Unfortunately,
sometimes you don’t have much choice, but you most definitely shouldn’t tolerate
it in the tools you make. I expect better of myself and I expect better of
you. I especially expect better of something that people have been
working on for twelve years!
People don’t rave about how great Perforce is. They say it’s reliable and
stable. People don’t say Perforce is easy to use they say I should “learn how to
use it”. Can you see the difference? Darcs has evangelists. Mercurial does too,
even Subversion with all it’s limitations has evangelists. You don’t hear people
saying “I use Subversion because it’s stable and reliable.” No, you hear people
say “I use Subversion because it’s excellent!” It doesn’t matter if you agree
with them or not. What matters is that these tools have paid attention to what
their users wanted, or thought they wanted, and are all trying to make things
better for those users. You have a choice, you can use tools from people who
want you to love their product or you can use tools from people who want you to
use their product. The same choice applies to the tools you make too. Do you
want your users to love your product or just use it, and what effect should that
have on the choices you make in your work? Panic Software and Delicious Monster
want you to love their products, and the effort that they’ve put towards that
goal has paid off.
P.S. Darcs is groovy and all but I’m still recommending
Mercurial.
P.P.S. Delicious Library is really good for keeping track of who you lent books
too, but doesn’t track the books you’ve borrowed. Overall there’s a lot I wish
it would do, but I mention it here because it’s a really good example of what a
difference making your app pleasurable to use can make. It has made it’s
creators a lot of money almost entirely because it’s pretty and easy to use.
Come to think of it… that describes the iPods too. People LIKE these things
and you can’t discard them as crap because of limited feature sets. They do what
the main thing their owners want and they make doing it enjoyable. I’ll take
that over 50,000 features, rote memorization, and a thick users manual any day.
Leave a Reply