Archive for October, 2006

Lessons from AIGA of MN: How to Piss Off Users, and Justify in Robot-Speak

I came across this doozie today while trolling for interesting design links in Minneapolis. On the AIGA Minnesota homepage, a post announcing a recent site-redesign showed 51 new comments, so I thought I’d take a look at some of the praise.

Um, not quite. Here are some of my favs:

  • “I can’t believe that you have now made the jobs password only. That hurts.”
  • “BOOOOO! I think the new site is horrible”
  • “Bring back the free job postings!!!!”
  • “Soon we might have to pay to comment on the website.”
  • “I can’t believe it costs $100 to post a job. That is a rip off. What are you thinking by instituting this?”

Well, I wonder what these users would like. Free job listings, perhaps?

Continue reading

New Agile Software Development Process: “What would I bitch about next?”

Kathy Sierra has numerous posts about helping the user “kick ass.” It has been helpful for me to run the “kick-ass” filter on every feature I consider for my projects. Invariably, I find myself cutting out features that might be new and fun to develop but don’t actually help regular users kick ass. It’s similar to the idea that “nobody loves your kids like you do” – the more you know your product, the less objective you are about what feature it ought to include.

So, let’s say you’ve gone through your set of features and decided what will actually help the user kick ass, and you’ve cut out the features you slipped in there merely to pique your developer curiousity. Now that you have a list, how do you prioritize? Or better yet, how to you prioritize features from the user’s point of view? If you don’t have a user around, and it’s just you and your buddy working on a social-networking app for cat lovers, just ask yourself this question: “what would I bitch about next?

Unhappy

Continue reading

Which Rounded Corners Solution Sucks Least?

Ah, rounded corners, how I loathe thee…

It goes without saying (so I’m saying it) that you can’t really do a Web2.0 site these days without having some rounded corners. And I’m fine with that, I think they’re a popular and appealing design tactic for a reason: they work. They give some visual interest and dimension while softening the look of your site.

But are they ever a pain in the ass to implement. Let me count the ways:

- CSS rounded corners are lightweight, but require extraneous markup.

- Image-based corners are prettiest, but aren’t very flexible and also add non-semantic markup.

- Javascript corners are slow. Period. They look good and they’re flexible and they don’t add markup, but they’re eye-glazingly slow.

Continue reading

More RESTful helpers: hash_for_resource_url

When declare a resource in your routes.rb file in Rails, the Simply Restful plugin (now in core) will generate a set of named urls for you. For example, if you do map.resource :users, you’ll get named routes like user_url (#=> users/1) and edit_user_url (#=> users/1;edit). But these named route helpers only give you the string representing the path you’d use to access that particular action. Sometimes you need to merge other parameter into that string.

Well, Rails actually has a helper for that too! When you do map.resource :users, you also get a hash_for_user_url and a hash_for_edit_user_url, which you can then user like this:

link_to user.name, :url => hash_for_edit_user_url(:user_id => user.id, :status => 3)

The keys you supply as arguments to the helper will automatically get merged into the hash. So for the link_to above, you’d get the following URL: /user/1;edit?status=3 .

resource_hacks: A Restful Plugin You’re Likely To Need

The new app I’m working on is using EdgeRails, SimplyRestful and all the rest, so I’ve been learning a lot and bumping into situations I don’t immediately know how to handle. One of those is how to access resources using arbitrary keys in the URL.

For example, let’s say you want to show all the items in your application that have been tagged with the word ‘rails’. In the purely Restful world, your URL for that would be mapped like this:

map.resource :tags

which would give a URL like this /tags/:id where :id represents the unique id of the ‘rails’ tag in the database. While that may be correct, it’s not pretty, and it’s not intuitive for users.

You could hack something together so the system still used a numeric id but appended some textual “meta-data”, as John Susser has discussed. But in my opinion, for this example even that is inadequate. What if the user decides to switch the tag in the URL from ‘rails’ to ‘ruby’? They’d also need to swith the unique id in order for things to work.

Fortunately, Jeremy Voorhis has a fix; it’s a plugin called resource_hacks, and it allows us to use any kind of key we want in the route. So now our mapping becomes:

map.resource :tags, :member_path => ‘/tags/:tag_name’

Which would give us the nice /tags/rails URL we wanted.

There’s some debate on Jeremy’s blog about whether this should get into trunk, and it looks like for now it will stay out due to a difference of opinion about whether it’s right. But it’s clearly called for in my case, so I’m going to go ahead with it.

Can anybody think of a better way of solving this problem, perhaps one that would allow both numeric and non-numeric keys in the URL?

Chalk One Up for Evidence Based Management

The other day I posted on the difference between researching the future and inventing it, pointing to an article that argued design-types are more likely to user “abductive reasoning” and creative thinking to decide what the future will/should look like, while corporate-types often tend toward research and deductive reasoning.

Here’s an article from Strategy + Business that discusses why managing by facts works. In it, John Lilly, former CEO of Reactivity and current COO of Firefox, talks about how they used to pitch venture capitalists during the dot-com boom:

In a period of 30 weeks, his team generated 30 PowerPoint presentations as “prototypes” for a diverse group of Internet-based startups. Out of these, a combination e-mail and Web browser was chosen as the most promising. Its PowerPoint presentation was fine-tuned and then shown to potential backers. Based primarily on this slide show — there was very little else for the venture capitalists to go on — Reactivity raised more than $100 million for a new company.

But Lilly says that approach wouldn’t work these days: “By and large, venture capitalists only fund Web-based companies that already have proven the ability to attract customer traffic,” he says.

Another case-in-point is Hewlett-Packard’s 2001 acquisition of Compaq, a move many consider to be the cause of HP’s current troubles. The transaction was made without much research of consumer attitudes toward compaq, and the result was a conflict in perception about the merged businesses.

Here’s the take-away:

From our research, we are convinced that when companies base decisions on evidence, they enjoy a competitive advantage. And even when little or no data is available, there are things executives can do that allow them to rely more on evidence and logic and less on guesswork, fear, faith, or hope.

… even hunches, fresh ideas, and inventions should be measured against logical and empirical benchmarks to determine whether they are efficacious ideas or just momentarily exciting thoughts better off abandoned.

Guidelines for an effective evidence-based strategy? First, act on the facts. Second, treat the organization as a prototype (read: be agile!).

Google Reader As Database Backup

Some of you may be seeing double posts in your blog aggregators; that’s because I had a technical glitch today and lost my last few days worth of posts. My hosting provider’s most recent database backup left me with some posts missing,  but Google Reader stepped in and saved the day (even had cached versions of my images so I could re-upload them). Thanks, Google.

10 Bootstrap Anti-Patterns

Pelle Braendgaard over at Stake Ventures has a really smart, in-depth series of articles on pitfalls to avoid as a small or solo entrepreneur. My favorites:

#3 - The evils of business plans. Bottom line: if your business plan is nothing more than an “unreadable sales document”, don’t waste time on it. Don’t worry about made-up marketing numbers, imaginary user adoption rates, and outlining your first hires. Those things waste time; “they don’t reflect a dynamic, growing business”

#5 - Believe you will succeed but don’t let optimism blind you. Bottom line: Figure out the difference between optimism and realism. To succeed as an entrepreneur, you have believe you will prevail in the end. But over-adherence to a particular strategy in the face of facts that show it’s not working will keep you from being flexible enough to correct your course.

Pretty But Pointless (Mostly)

These $200 Atena shelves sure are pretty, but unless you have books, picture frames or pottery with rounded bases, they’re going to be pretty impractical.

large_atena1.jpg

NBA Funnyman Paul Shirley Coming to Minnesota

Tell your friends, tell your blog aggregator: Timberwolves sign F Baker, Two Others. Two others! Is this all the recognition Paul Shirley gets for devoting himself nearly part-time to writing the funniest, smartest basketball blog ever?

I can’t tell you how excited I am to see this guy warm up before games and sit on our bench and maybe even play a little. This is the kind of thing that gives you hope for the coming season.

shirley_blog_tunnel2001.jpgOK, so the picture doesn’t do him justice. Check out these pearls of Shirley-isdom:

“Most of my colleagues are quite tall. I am no exception at 6’10”. When in captivity, on the basketball court, I am able to easily forget the fact that my bones are stretched to an extraordinary length because I am surrounded by other members of the freak show. Not so when I am released into the wild. Then, I am forced to remember… by stupid people.

After one of a recent session of the basketball camp … I picked up my staples (cereal and yogurt figuring prominently among my selections), and headed out the door. As I was leaving, a man searching for a nearby accountant’s office accosted me when he observed my heightful frame and said, “Hey man, you should have played basketball. You’re really tall.”

What, basketball? You’re kidding. Why didn’t I think of this sooner? It’s a good thing you came along, man.”

Or this one:

“I have not played a meaningful minute since I re-joined the Suns in January. My role on this team, with regard to games, is to cheer at the end of the bench, give encouragement to my teammates as they leave the floor during one of the 74 timeouts in an NBA game, and stay prepared enough to play should catastrophe or blowout befall my team. I do not however, play when it counts. I am still trying to wrap my brain around this concept as it is a new role for me. Contrary to popular belief, I am not actually retarded, and can occasionally make a coherent basketball play.”

Hey, he’s even got a book coming out: A View from the End of the Bench: Eleven Teams, Six Years, Five Countries, and My So-called Career as a Profession al Basketball Player.

Seriously, with Shirley on the team (hopefully blogging) and Mad-Dog getting more serious about his writing every day, I think we’re in for a good season.