Thursday, November 15, 2007

Usability Rule: A feature doesn't have real existence unless it's easy to use

I know someone has probably said something like this before, but it hit me today while using Git (well, git-svn) on a project.

A feature isn't really available until it's easy to use.

I have to ship off some skinning work to a remote team, but at the same time, I'm reacting to a fundamental change in the data model that I didn't expect. I don't want to be dancing around the skinning changes, so I made a branch for myself with git.

There's nothing exciting about any of that because that's exactly what I should be doing. The difference with svn is that I'd never think to do that. I may think of it in a "lab environment" or suggest it as a solution to someone else, but I'd probably never think "Oh, I should branch this guy and avoid pain later" in the situation I related above.

It's not because svn doesn't have an answer to branching, it's that branching isn't the first answer when it should be. I probably would have just tried to dance around the remote team's changes if I wasn't using git-svn.

You could argue that branching is a complex concept, but implicit in the story is that in svn branching is harder than in git. Since branching is hard enough for me to avoid it, svn is penalizing me for doing the right thing.

Of course, you could call me dumb or lazy, and I'll accept that. But not so dumb that I won't use git-svn or just git from now on.

No comments: