5 Apr

Discarding useless features

April 5th, 2007 — 10:12 pm Chris

I have a secret: I want to tear slate apart. Yes, you heard me. But before you think I’m crazy, let me explain.

I think slate is a great product. It works surprisingly well, and has a bright future. That’s not to say there aren’t kinks in the system, of course, but overall I’m quite happy with how it’s turning out.

Yet, there are some aspects of slate that nag me. Largely, aspects that originally came from a set of specs/requirements (boo!). For instance, we have a rollback feature. We also have a fine-grained permissions system, with roles and all that hoopla. And roles can be assigned to Pages, effectively providing object-based permissions.

This all sucks.

Yep. Not really the implementation (the permissions module is actually cool from a programming standpoint), and not really the interface (which is much better than it has been). No, what really sucks is the whole concept. Permissions suck. And here’s why: they get in the way of the user. They don’t help the user accomplish a task, they prevent it.

Typical slate site

The typical scenario for a slate site is this: one person, which we assign as site administrator, and… that’s it. Perhaps originally we were planning on something a bit more grandiose, but it hasn’t happened. Perhaps we envisioned that site administrators would register multiple people into the site and create unique roles for various tasks in the system. Perhaps we were wrong.

Do you want to know why? I suspect it’s because our users think permissions suck, too. One of the things I read in Designing the Obvious that has stuck with me is this: users aren’t like us – they aren’t using our applications just because the applications are cool. No, users use them because they have to, because it’s their job. Most users just want to get that link posted or that file uploaded and be done with it. They don’t care that there’s a fine-grained permission system under the hood making sure they don’t try anything they shouldn’t.

So, what does happen? If (and I do mean if) more than one user gets assigned to a site, a role is created that has every permission enabled, and it gets assigned to the second person. To me, this is a clear sign to what I pointed out before: users think permissions suck. The site admin doesn’t want to think about whether or not this other user should have the Rollback permission, so he does what any sane person would do – he checks off everything. He’s also fairly confident in his trust for this other user, so it doesn’t bother him. All of those checkboxes just got in the way.

Scrap permissions?

I realize there is a place for permissions. However, the level of permissions that we have in slate is too much. It needs to be severely simplified. If all our users typically do is assign someone “all or nothing”, then that’s all we need. The upside to simplifying is two-fold: our users may actually use the feature because it won’t be so complex, and we can more easily maintain it because there’s less to go wrong.

Rolling back

I mentioned Rollback earlier. This is another bone of contention (is that the phrase? weird…) of mine. I hate to admit it, but Rollback is useless. I mean, not totally useless… it does let you, you know, roll back your content. But why bother?

Here’s another typical scenario: user is assigned site administrator and… well, we wait for content. And then we wait some more. And most sites aren’t being updated, despite the fact that slate makes updating easier than say, Dreamweaver (dealing with FTP, etc.). So, if it’s so hard to get content in there in the first place, rollback doesn’t really serve much purpose. Oh yeah, and the interface sucks (my fault, sorry :-D)

Dave calls rollback a “checklist feature” (I think that’s the expression he uses), which makes me think of a giant rubber stamp that says “File under T for Trash” getting slammed down on it. There is no room or need for “checklist features”. The goal of slate, in my mind, is to be a tight, focused application. That means only the essentials. Everything else will be filed under T.

#1: John Nunemaker said on Apr 6 at 10:16 am

Great post. I’ve found myself wanting to say, “Just tell them not to” rather than building some massive permission system for the cms I’m working on. Like you, each site that will go in our cms is typically managed by one user.

#2: Dave said on Apr 6 at 9:01 pm

To clarify rollback and “checklist feature.” I think at the outset it seemed like a real feature but:

  • it’s always been really awkward to use
  • no one seems to use it
  • the whole five saved versions gets awkward if people don’t use ‘save over draft.’ at some point you can lose access to the production version.

So what we end up saying, “And it has versions! How cool is that? This other app doesn’t.” Not that it’s really usable or going to be used. Hence, “checklist feature.” It’s simply a point, a concept to highlight.

And chris stole a topic I wanted to write on ;)

#3: Robb Shecter said on Apr 20 at 4:25 pm

You haven’t yet quite persuaded me about rollback yet. :-)

“the whole five saved versions gets awkward if people don?t use ?save over draft.”

It sounds like you might not be totally invested in the rollback concept and/or the UI is confusing wrt it.

I imagine the versioning that’s provided in Basecamp. It’s there, it works, it’s simple. It’s ridiculously easy and convenient to glance back and forth at different versions and see what changes were made.

(Caveat: I use versioning for EVERYTHING I do: I store every folder and file I have in subversion.)

#4: Dave said on Apr 20 at 4:56 pm

I think the methodology is screwed up. Here?s an example of a very common usage of our set-up where I personally feel our rollback fails:

  • user has published version
  • they edit the content and save a draft to review
  • make minor change, save a full draft before previewing
  • make a minor change, save a full draft before previewing
  • make a minor change, save a full draft before previewing
  • user is happy and publishes

Does a user need to save before previewing? No. But users feel way more comfortable about it because there?s no chance it?ll get ?lost?. Could they click the ?minor edit? feature we have just like writeboard? Yes, but they don?t because they?re lazy/forgetful and I include myself in this.

So at the end of the process the user has access to? their currently published version and 4 drafts leading to that published version. The kicker to me, and why I feel this fails, is that the user has no access to the last published version, the actual version that other people saw and, if necessary, would be the version a user would need to fall back to.

So the answers are:

  • have a lot more versions.
  • offer one draft version at a time with an auto-save and offer rollback only to previous production versions. sort of like email.

The former will just get cluttered. The latter to me is the simple and useful solution.

#5: safWrelakaf said on Dec 6 at 12:27 pm

hm.. why this page loading so slow?

#6: Dave O. said on Dec 6 at 2:59 pm

Problems in our network here on campus. It’s making access to and from campus really slow. I apologize for the inconvenience.

Add comment

You are adding a new comment