This is where we write about our company, the industry, software development, and more

September 16th, 2010, by Ale Muñoz in Movida, design

On love and design

We are about to push a new feature for Movida: the ability to create new series. Before this, our users created series via an excel import; but we hate Excel, and we think we can do better (see “Laziness, Impatience & Hubris” for some hardcore discussion on whether this arrogance is a good thing or not :)

It is a very simple thing, really. Just a form with a button. Here’s how it looked like in our prototype:

First draft

Of course it’s ugly, that’s what prototypes are for.

Our workflow when creating a new feature is pretty straightforward. We first agree on the functionality, and then create a working (and usually very crude) prototype. While this prototype is being coded, we take out our crayons and start playing with the look and feel of the feature.

Let’s make it nice

There’s only so much stuff you can do with a form.

On the other hand, we are fans of time-boxing and usually allocate a fixed amount of time for developing a new feature. This “we have a lot of time for this small thing” approach allowed us to spend some quality time with input fields, thinking how we’d like them to look like if they didn’t look like they look like by default.

Here’s our first approach:

Design, first draft

And this is how they looked like in place (I like to start coding HTML pretty early in the design process, so I can see whether my ideas actually work in a browser):

HTML, first draft

Once our text fields were looking nice, it was time to think about the behaviour of the form.

Make mine fast, please

A beautiful application is useless if it does not help the user work better, faster and smarter. So we spend an inordinate amount of time worrying about the small details that make or break the functionality.

For this form, our main focus was “speed”. When you are assigned the daunting task of adding two hundred series to the application, the last thing you want to deal with is a pretty form that gets in your way.

So, we concentrated on these points:

Keyboard friendlyness

You should be able to complete the task of adding series without reaching for your mouse.

Progressive disclosure & flow

When creating a series, you may want to add the episodes for that series. But not always. That’s why we hide the fields for the episodes unless you select a checkbox:

Add episodes

The checkbox is selected when you tab out of the previous field, so the flow is not interrupted (bonus point: hitting ‘space’ to check the checkbox will take you to the first Episode field)

Another little tidbit: you can save a new series and inmediately create another.

Save and create another

Be as smart as possible, but not smarter

Adding some intelligence to your form can save you a lot of time, but not if you end up building another Clippy.

One of the features in this form is the pseudo intelligent prefill we added to External ID fields (an External ID is some unique identification for an item in our system).

These IDs are usually sequential, so when you fill one, the next External ID field is automagically prefilled with the most probable next ID:

External ID prefill

(Bonus points: it works with letters too!)

External ID prefill

By the way, External IDs are completely optional. If you don’t add an External ID to the series, the episodes won’t even display that field.

The finished form

Finished form

And where is this love you talk about in the title?

The amount of work required to turn a prototype-level thingie into a completely functional and helpful feature grows exponentially with the amount of polish you want in it.

There is only one way (that I know of) to accomplish this while not jumping out the window: love.

This is what I posted on Campfire (the chat we use at BeBanjo for work-related stuff) this morning:

I really wish every web developer out there poured so much love into every form as we did with this one.

4 Comments »

4 Responses to “On love and design”

  • lovely!

    mamuso

    written on September 16, 2010

  • [...] check his forms for BeBanjo and you’ll [...]

    Forms, love and design - THE COSMONAUTS

    written on September 16, 2010

  • (Editor note: I have translated your comment to english, I hope you don’t mind. I’ll post a reply in english and spanish : )

    English translation:

    As Javier stated in his post, you can tell from a distance how much love you poured into this : )

    A question for all: won’t the button-like appearance of labels confuse users? They look quite different from action buttons, but I’d like to know your opinion.

    The HTML standard allows for field selection by clicking on their labels, but non-web applications don’t behave like that. Also, I don’t think users do this normally.

    If you do user testing for this changes, it would be nice to get that information.

    Original version:

    Como dice Javier en su post, se nota el cariño puesto, de lejos :)

    Una pregunta para todos, ¿el aspecto de botón en los “label” puede llevar a confusión? Están bien diferenciados de los de acción, pero quiero saber vuestra opinión. El estandar html hace que se puedan seleccionar así los campos, pero no ocurre así en las interfaces no web. Tampoco los usuarios creo que lo tengan como uso normal. Si hacéis test de usuario sobre estos cambios, estaría bien conocerlos.

    Roberto A.

    written on September 16, 2010

  • Roberto,

    about the button-like appearance of labels, I don’t really think they will confuse users. I don’t have hard data to backup this, but I’d make an educated guess that the difference in appearance between them and action buttons is more than enough. Anyway, if the user somehow thinks they are buttons, clicking them focuses the input field, so the functionality is not affected.

    As for user testing, we do the hardest kind of user testing there is: we handle support for our application. If something is confusing or hard to use, our clients / friends usually let us know pretty quickly about it : )

    Spanish version

    Roberto,

    sobre la apariencia de botón de los labels, realmente no creo que genere confusión en los usuarios. No tengo estadísticas que respalden esta afirmación, pero puedo hacer una estimación (basada en mi experiencia) de que la diferencia entre los labels y los botones de acción es más que suficiente. En cualquier caso, si un usuario pensara que un label es un botón, al pulsarlo el input adquiere el foco, con lo cual la funcionalidad no se ve afectada.

    Sobre test de usuario… hacemos los test más duros que existen: dar soporte a nuestra aplicación. Si algo es confuso o difícil de usar, nuestros clienteamigos normalmente nos lo hacen saber bastante rápido : )

    Ale Muñoz

    written on September 17, 2010

Leave a Reply

Required, but it won't be published