How awesome is that? (A public service announcement for using gems, plugins, and otherwise tested code)

Ok, so let's say you have some code from some guys you worked with once, some really really smart guys, and the code is... well, no, the code is awesome. It extends Rails in such a way that you can do all sorts of hitherto unheard-of magical transformations that make your life so much easier, and your code so much easier to read. And to write. And to understand.

OK, now, when you say it extends Rails, you don't actually mean like a patch or anything. And, actually, you don't even mean like a plugin or a gem. But it extends Rails in a really really awesome way.

OK, so what if the code is untested, really...dense, difficult to read, impossible to understand (even if you really really wish you understood it), and reliant on many other files? And so what if the other files the code depends on aren't in a plugin or a gem. Well, technically, some of them are. But some of them aren't! Which is fun! Because then it's not all conventional-like. Just super magical. I mean, who cares?

Because this is awesome. It gets even awesomer, because as you're busy using these magical transformations -- you don't even have to learn how to do things the regular way. You can just awesome it up and go home.

Which is fucking great. Until you decide to upgrade your application into the future, where everyone else has been living for a while. You know, Rails 10.11 -- or something really awesome like that.

And then, wait a minute, all the code breaks.

The app doesn't start. The code is no longer compatible. And worse, it's no longer compatible in a really really obscure way. That you really wish you understood. But you don't.

How awesome is that?

Design By Caste

Recently, en route to NYC, I was navigating through Chicago’s Midway airport. When I came to the Security Check there was a discouragingly large crowd of people pushing towards the gates. As we moved forward a few steps we came to three signs -- each marking the entrance to a separate line.

Each sign had a label and a graphic. Each traveler had a choice.

The first sign, I forget the label: but the graphic was of multiple people, including children, with multiple bags, crowded rather lumpishly into the frame. The label said something along the lines of Unfamiliar Travelers, High Maintenance Travelers, or People You Never Want To Be Stuck Behind In Line. I was definitely not joining this group.

The second sign had a line drawing of a fit young man in his thirties or forties. He sported a shoulder bag and a trendy hair flip. His sign? Casual Travelers. I hesitated in front of it and noted a feeling of fleeting disturbance that this representation of casualty and ease was male.

And then… sign three. Expert Travelers. It featured a woman in a pencil skirt, obviously traveling like an expert. My disgruntlement vanished. The line it flanked seemed short and swift.

I paused.

Read the rest of this post »

Love, Software, and Squeals of Delight

[cross-posted on devchix]

Media_httpimgskitchco_xyczr
Software does more than crunch your numbers or take your picture: it can make you angry or bring you joy. And those are the things that we, as developers, have to tune in to if we want to make our products stand out.

Skitch is one of a handful of products I’ve used recently that remind me what makes a product successful. Utility is important, of course, but the love and emotional connection it engenders in its users is where it's going to live or die.

Let's start backwards, with the logo, since it's the first thing you see. Their logo says nothing about their product's functionality. There's no initial, no recognizable signifier (thanks for sparing us the paintbrush), or even an abstract swoop. It's, um, a heart.

Read the rest of this post »

Don't go splurging at the Widget Store

It is easy for clients, I have noticed, to mistakenly conflate adding widgets, effects and acronyms -- Sliders, Sorters, Expanding-Menus, Oh My! -- with implementing an idea. The client talks excitedly, rattling off a Rube Goldberg chain of widget-to-widget interactions, their voices rising, the importance of each and every widget in the chain perceived critical to the achievement of the Internet Holy Grail: Angel Investment. Or at least, a really slick site. Don't get me wrong. I think everyone is in favor of a well-placed widget.

Read the rest of this post »