Leap before you look?


Gordon Segal, founder and CEO of Crate and Barrel, says lack of wisdom is the reason his store got off the ground.

“We didn’t know anything about retail,” Segal recalled. “I had grown up in the restaurant business, so I knew about service but not about retail. We didn’t know a market from a markdown. We didn’t know anything about importing. In fact, if we weren’t 23 and totally lacking wisdom, we would never have done this. You just go ahead with your passions, and you rush forward without a great deal of thought,” Segal reflected…

“We were truly a counter-culture story of the 1960s,” Segal said. “We literally turned over packing crates, stacked up the merchandise and went into business. We just thought that was nothing special. Of course, everyone walked in and was amazed that these two young kids were starting this business, that we could find French pottery and Swedish glass and Danish flatware and bring it to a small, little street in Chicago called Old Town. It was really crazy, when I think back, that we felt that we could import product into a little 1,700 sq. ft. store.”

Makes you wonder: How many others have succeeded because they didn’t know the rules? Because they didn’t realize that they were doing things they weren’t supposed to be doing?

We’re always taught to look before we leap, but it’s interesting to hear about the Segals of the world — those who succeed by rushing forward without thinking.

But doesn’t wisdom lead to success? Sure, it often does. But sometimes the winners are those who don’t have a lot of wisdom. Look at NFL quarterbacks. Routinely the best ones aren’t the brightest.

All quarterbacks drafted into the pros are required to take an I.Q. test—the Wonderlic Personnel Test…Of the five quarterbacks taken in round one of the 1999 draft, Donovan McNabb, the only one of the five with a shot at the Hall of Fame, had the lowest Wonderlic score. And who else had I.Q. scores in the same range as McNabb? Dan Marino and Terry Bradshaw, two of the greatest quarterbacks ever to play the game.

Maybe these quarterbacks succeed in part because they don’t have the highest IQs. Maybe they go with their gut instead of overanalyzing things.

Now, I don’t want to sound like I’m celebrating ignorance. Leaping before you look isn’t the best way to, say, invade a foreign country. But if you’re doing something with a little less downside — like starting a business — maybe you’re better off ignoring all the naysayers who tell you that you need to spend tons of time and money on planning, researching, testing, educating yourself, studying the competition, etc. Sometimes there’s real value in not worrying about what you don’t know and just putting something out into the world.

PHOTO: Peculiar error from QuickBooks Pro. You can


quickbooks-invalid.png

Peculiar error from QuickBooks Pro. You can’t enter a $ into an accounting app? Sure, the dollar may be invalid sometime in the near future, but…

Mr. Moore gets to punt on sharding

Sharding is a database technique where you break up a big database into many smaller ones. Instead of having 1 million customers on a single, big iron machine, you perhaps have 100,000 customers on 10 different, smaller machines.

The general advise on sharding is that you don’t until you have to. It’s similar to Martin Fowler’s First Law of Distributed Object Design: Don’t distribute your objects! Sharding is still relatively hard, has relatively poor tool support, and will definitely complicate your setup.

Now I always knew that the inevitable day would come where we would have no choice. We would simply have to shard because there was no more vertical scaling to be done. But that day seems to get pushed further and further into the future.

More...

How not to write documentation.

I've grown accustomed to ruby having poorly accessible documentation. What I mean by 'poorly accessible' is the fact that ri Array gives me a list of things Array can do (which is nice), but to actually find out about Array.delete I have to run ri Array.delete. I got used to Python's often-helpful ways of pydoc showing you what appears to be "as much as possible" when you pydoc a class, module, or method.

Maybe I'm doing it wrong. Either way, the following is annoying and unhelpful. While it tells me the arguments that should be passed, and what is returned, it doesn't help me really know more about the function. Luckly, I'm already familiar with select from other languages.

snack(~) % ri IO.select
------------------------------------------------------------- IO::select
     IO.select(read_array 
     [, write_array 
     [, error_array 
     [, timeout]]] ) =>  array  or  nil
------------------------------------------------------------------------
     See +Kernel#select+.
Ok, fine... Let's look at Kernel#select.
snack(~) % ri Kernel#select
---------------------------------------------------------- Kernel#select
     IO.select(read_array 
     [, write_array 
     [, error_array 
     [, timeout]]] ) =>  array  or  nil
------------------------------------------------------------------------
     See +Kernel#select+.
*sigh*

Additions and Attractions for Our Feeds-by-Email Service

FeedBurner's email service began delivering updates in April, 2006. The launch was just weeks after scientists determined email and feeds could be safely combined in a laboratory setting. Our public service has since delivered millions of messages on behalf of thousands of publishers, making sure that publishers who want to get the word out can reach the broadest audience possible — including many site visitors who don't already embrace feeds (or feed readers, like Google Reader), but who trust their email inboxes to be the best way to have content that matters most delivered to them.

As part of our move to Google infrastructure, FeedBurner has added some new features for email publishers. Most of these are of the under-the-hood variety, but a new set of subscriber list management features will be especially beneficial for publishers with dozens, hundreds, and even thousands of existing email subscribers. Here are features live today for all feeds managed through a Google account:
  • Added reliability and delivery scale, thanks to Google infrastructure. The same systems that handle Gmail and other, large-scale public email communications traffic now deliver FeedBurner email subscriptions, too.

  • Robust subscriber list search and pagination. Instead of loading your entire subscriber list, which is too much for some browsers to handle if that list is really big, the new service displays just the 150 most recent subscribers. You can search for specific addresses or general domains (e.g., "hotmail.com" will return a list and total count of your subscribers with "hotmail.com" in their addresses.) This list is now paginated to allow you to scroll through its contents easily.

  • Complete subscriber list export. Want to view the whole shebang offline? Download a CSV-formatted text file of your entire subscriber list.


These new features are in addition to FeedBurner's classic email capabilities. As always, you may:
  • Customize delivery time frame and time zone
  • Write your own welcome/activation email text
  • Choose from multiple custom font, size, and color combinations
  • Incorporate a custom graphic logo in your HTML message header
Also, new subscribers are still required to confirm their requests (to minimize potential abuse).

Want to use the free email delivery service with your feed? Using the latest improvements to email requires moving your existing feedburner.com account to Google (if you haven't done so already). If you use AdSense, any feeds you set up to use AdSense for feeds will also include ads in emails delivered with this service. Sign in to your AdSense account, click AdSense Setup, then Manage Ads, and then locate an AdSense for feeds unit you have created. Click the "View Feed Stats" link next to this unit to reach your feed's Analyze page. Click the Publicize tab, then Email Subscriptions to view and set up service options. Email subscriptions will be delivered, using your settings, starting with your feed's next update. (If your Google account is already set up to use FeedBurner, you can also get to the "Email Subscriptions" service setup area by signing directly in to feedburner.google.com, clicking your feed's title on My Feeds, and then visiting Publicize > Email Subscriptions.)

Five Networking Tips for Wallflowers

Design Decisions: Saying more in less space on the new Highrise site

Last week I took you through the Highrise signup chart redesign.

This week I want to talk about part of the Highrise home page redesign that we’ve already redesigned. The design is alive – we’re making a lot of small tweaks post launch.

Original: In the cards

When we launched the new Highrise site, we had a block in the middle of the page that looked like this:

Three “cards” as we call them. Each card highlighting a major feature of Highrise. The idea was to rotate these cards every once in a while. They looked good and gave the page a nice splash of color, but they didn’t communicate very well. We were using 163,566 pixels, but we weren’t really saying anything.

Redesigned: In the icons

So we decided to make a change. Instead of using all that space to advertise three features, we thought we’d try using it to communicate eight benefits instead. So in a couple hours we came up with this:

Eight benefits, concisely explained, each with an icon for some color and identity. Now that block says something. There’s more to swallow, but it’s easy going down. And it’s only 98 pixels taller than the cards design. Here’s the overlay (the red is the extra height):

More...

iPhoto ‘09 and Domain Language

There are only two hard things in Computer Science: cache invalidation and naming things. —Phil Karlton

Karlton’s quote isn’t just for techies. Interface designers are in the business of naming things too. We’re copywriters. It matters if we call something an Event or a Milestone or a Deadline. And it also goes deeper than that. The names we choose shape our software. They define the way we think about it and the way our customers interact with it. To understand why this all matters, you should meet two important ideas from the programming world: domains and domain languages.

When you’re working on software, the domain is the life situation your software is involved with. Basecamp’s domain is the life situation where people are trying to collaborate together on a project. iPhoto’s domain is that situation where someone has a collection of photos and they want to look at those photos and share the photos with others.

Now here’s where it gets interesting. Each application has a way of approaching its domain. Software designers think of a domain like a big cake and cut it into slices. Basecamp cuts project management into Messages, Files, Milestones, To-Dos. Photo organizers before iPhoto ‘08 always sliced their domain into Photos and Albums. In both cases, the software designers take a complicated life situation and boil it down to a few easy pieces with names. No domain comes pre-sliced—unless you’re blindly copying someone else’s software. It’s up to the designer to cut the pieces and give them names.

This process results in a domain language. A domain language is the set of words that reflect the way you cut up a domain. It consists of the pieces you sliced and the names you chose to give them. This language defines an application and makes it special. And for the last couple years Apple has been innovating iPhoto’s domain language very intentionally.

Before iLife ‘08, iPhoto’s domain language was the same as any other photo app. You had Photos and you had Albums. Then in iLife ‘08 something changed. Suddenly you also had Events in the mix. This is huge. Apple realized that people don’t just want to find photos. Go back to iPhoto’s domain: it’s that situation where you have a bunch of photos and you want to look at them and share them. When you’re in that situation, you don’t just want to see random photos. You want to see and share photos of certain things. Like photos of your wedding, photos of your trip to Maine, or photos of that dinner in Paris. These are Events. They’re part of the domain, and as of iLife ‘08 they are expressed in iPhoto’s domain language.

iPhoto ‘09 has kicked their language up a notch further. Now in addition to Events, there are also Faces and Places. Apple has made a few new slices into the photo organization cake, and they’ve opened up a new field of possibilities for people to find and enjoy their photos.

Keep this in mind the next time you’re designing an app or a feature. There is a strong tendency to use the same words that you see other software using. Be cautious about copying domain language, because copying language is copying a whole approach. Think through the domain yourself. What are people trying to do? What do they care about? Find your own language to cut closer to the bone and touch your customers’ real interests. Your software will be all the better for it.