When To Optimize For Pleasure

1 Oct

This weekend, I finally got to watch DHH (the guy who started Rails) talk about Rails and Backbone.js in a recent meetup at Manilla that I missed. The talk was almost two hours, but I highly recommend watching all of it. Here it is in case you missed it:

Here are a few takeaways that I absolutely loved:

Code In The Language You Enjoy Most

At several points, DHH mentions that the reason he uses Ruby over other programming languages is because Ruby is the most pleasurable language to work with for him. That is what he optimizes for – enjoying what he’s doing. That’s pretty awesome.

Do The Work For The User

Ultimately, the user experience is the most important. So if we, as programmers, have to do more work to make the user experience more pleasurable, then we need to do it even if we might not fully enjoy the work.

One example DHH gave was filling out forms. If the user enters incorrect information, it feels horrible for the user when the application tells her there are errors in the form and it was not actually submitted (e.g. your username has to be at least 6 characters). Try to minimize the errors that the user sees as much as possible, even if that means you have to do more work like decoding weird characters on the back-end.

Don’t Get Overly Excited By New Stuff (unless it brings you the most pleasure)

Backbone.js is not as fun to work with as Ruby. So while some companies have gotten on the popular Backbone.js wagon full force, 37Signals, where DHH works, only used Backbone.js to do things that were absolutely needed but impossible to do with Ruby.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s