Creating a hyperlink is one of the simplest things we do online:

  1. Select the text to be linked.
  2. Choose something like Add Hyperlink (usually via shortcut keys, a context menu, or a link icon).
  3. Type or paste in the target URL and save.

Pretty straightforward.

But there’s a way to make it harder, as I discovered when using an authoring/content management application. In this application, everything is stored in a database as a separate “object”: Documents are objects, pictures are objects, text fragments are objects, and yes, hyperlinks are objects. The hyperlink object has properties, such as the type of link (internal or external) and the link destination (internal document or external URL). This structural design makes sense in terms of content management and has some clear advantages.

In the application, the process of creating a hyperlink reflects this structural design. But as a result, it’s a lot more complex.

  1. Select the text to be linked.
  2. Choose Add Hyperlink. I get a list of names of hyperlink objects. Turns out I can’t just specify a destination; I have to use an existing hyperlink object or create a new one. Trouble is, it’s not apparent where any of them are pointing, so I can’t easily tell which one to use.
  3. Start opening hyperlink objects to try to find the right one:
    • If I find it, I close the object, then double-click to select it.
    • If I don’t find it, proceed to step 4.
  4. Click New to create a new hyperlink object.
  5. Name the object, specify the target document or URL, and save. The new object is now automatically attached as a hyperlink to the text selected in step 1.

Does this process make sense based on the underlying structure of the application? Absolutely. But as a user, do I care or even need to know about the underlying structure when creating a hyperlink? Not really; I just wanted to get the job done as quickly and easily as possible.

And here’s the thing that’s easy to lose sight of: the process did not have to reflect the underlying structure. It could have been handled behind the scenes like this:

  1. Select the text to be linked.
  2. Choose Add Hyperlink.
  3. Point to an existing internal document or type an external URL and save. Behind the scenes, the application checks to see if a hyperlink object already exists, based on the target I specify. If it does, the application uses it. If not, the application creates it.

As interface or process designers, it can be tricky to step out of our world and into the users’. It takes thought and observation to determine what matters to them. It can even be hard to give up a design that makes a lot of sense to us or to the software developers, but which doesn’t serve the users. And simplifying the process for users almost always requires more work on the back end. But the result is a more user-friendly, efficient design and process, and that pays big dividends on an ongoing basis.