Ten years, or less

Peter Norvig, who I’ve written about here before, has a number of really interesting articles on his site.

Here’s one that stands out:

Teach Yourself Programming in Ten Years

I like this:

“There appear to be no real shortcuts: even Mozart, who was a musical prodigy at age 4, took 13 more years before he began to produce world-class music.”

It’s a short article and well worth a read.

While I’m referencing this, there is also a great quote in the appendix:

“When asked ‘what operating system should I use, Windows, Unix, or Mac?’, my answer is usually: ‘use whatever your friends use.’ The advantage you get from learning from your friends will offset any intrinsic difference between [operating systems]”

Nice – I think I’ll use that.

Features, Ease Of Use & Anti-gravity Machines

There is a curve that seems to apply to all software over time:

Features v Ease of Use

When you start you almost certainly don’t have enough features (and if you do, you probably launched too late)

So, adding features initially makes things easier for users – you’re able to support more user requirements with fewer work arounds.  The software continues to get better and better.

But, eventually features start to weigh the application down – more navigation, more options, more for new users to learn – until eventually you end up no better than a product with too few features.

What can you do?

It’s pretty simple. You need to either know when to stop adding features (which in practice probably means having a better system for prioritising your development work).

Or, failing that, an anti-gravity machine.

FAQs with attitude

I like websites which demonstrate the personality of the people behind them.

I’ve written about this here several times previously:

Here’s another nice example I spotted recently…

Two of the frequently asked questions listed on instapaper.com:

Will you add (useful feature)?


Instapaper is brand new, and it’s a side project of a developer who works on something bigger, so development time is limited. But great features are always possible, especially if enough people request them.

There are some great ideas in the works… stay tuned.

Will you add (obscure feature)?

Probably not, sorry.

There are plenty of other sites that offer similar functionality but with thousands of additional features to satisfy every obscure desire. Instapaper is great because it’s so simple, and keeping it simple is the first priority.


Speed is not a problem you can solve

There are, in my experience, two types of websites:

  1. Websites which are slow; and
  2. Websites which are noticably slow.

It’s important to understand which of these categories applies to your site.

If the people using your site tell you that they think it’s slow then you are definitely in the second category.

What you can do about this?

Also, you can make sure that you include time in your work plans to make small performance improvements whenever you make changes to the site. This is important because (despite developers expectations to the contrary) it is unlikely that the day will ever come where you’ll be able to stop working on new features or bug fixes in order to just focus on performance.

Making your site faster needs to be part of what you constantly do, rather than something that you hope to have time to work on at some point in the future.

Using large data sets

Peter Norvig (the Director of Research at Google) started off his ETech presentation with a diagram showing how things used to be (back in the old, old days … like 1994):


At the core, in the past, was the algorithm. Inputs were pretty simple (mouse clicks, keyboard entry). Outputs were equally simple (text, user interface). Data was used simply as a store of input and output. All of the effort and focus went into creating smart algorithms.

However the massive data sets that Google now has access to allows them to flip this model around. Rather than creating complex, elaborate, (and probably inaccurate) algorithms by hand they instead use a simple statistical model and let the data do the work.

He gave several examples. The most obvious is the Google spell checker which using this approach can guess what you might have meant, even where the words you’re looking for don’t appear in any dictionary (e.g. http://www.google.com/search?q=rowan+simson).

Another is their translation tool which can be trained to convert any text where there are enough examples to “learn” from. Ironically, the limiting factor now with this approach is not the software but the quality of the human translators used for training.

In each case being able to do this simply comes down to having enough data.

This is one of those ideas which is so obvious after you’ve seen it:

If you have lots of data the way you think about algorithms changes completely

Atlassian’s 20% Time Experiment

I’ve had a couple of opportunities to meet Mike Cannon-Brookes from Atlassian in the last 12 months, first at Morgo and more recently at Kiwi Foo Camp.

He is a nice mix of very smart but still approachable. I like that.

Atlassian are an impressive company, and a good role model for a couple of the businesses I’m working with.

He recently blogged about an experiment they are running at the moment where they are allowing staff to spend 20% of their time on their own pet projects. This in itself is obviously not an original idea. What makes this interesting is that, unlike Google, they are going to be open about how it works for them in reality:

Atlassian’s 20% Time Experiment

Lots of companies talk about doing this sort of thing, but hardly any I’m aware of have actually gone as far as trying it out. Doing so in the open is pretty brave. Here is what they say about the potential impact on customers:

“What does it mean for customers?

In the short term, this will mean slower or smaller, but more innovative releases. How much slower, smaller and more innovative? We’re not sure – we’ll find out and be honest in communicating it here.

(From my back of the envelope calculations, for 7 products we’ve made over 50 releases in the last 12 months.)

The long term thinking is that some of the 20% results will filter into the products and outweigh the short term release slow down in terms of customer benefits.”

You have to give them credit for that at least.

I wish them luck, and will watch with interest to see how it goes.

Playing with colours

I’ve been doing a bit of design work over the last week or so, which has been fun. I’m not a great graphic designer, but I can do enough to be dangerous. I enjoy having the freedom to experiment with different ideas without having to bother somebody else to do the heavy lifting.

This is the first time I’ve really got stuck into this sort of work since I switched to my Mac, so I’ve had to get used to a bunch of new tools.

Coda LogoFor HTML and CSS I’ve been using Coda, which I chose basically on the strength of its logo (see right), but which has turned out to be a nice tool. I especially like the built-in reference books, which are great for somebody like me who doesn’t spend all of their time coding and needs regular help.


For image editing I’m using Pixelmator to replace my old favourite on Windows, Paint.net. It’s taking me a while to get used to this, and I’m not sure I’ll continue with it beyond the free demo period. I am feeling quite slow using it, and it’s missing a few of the things I use a lot – for example, it doesn’t support vectors at all so there is no rectangle tool, instead you need to select the required area and then fill in the selection which seems cumbersome when you’re doing it a lot. I’m also pretty slow with it generally, but I have a feeling that will improve once I get on top of the keyboard shortcuts etc. It’s very pretty, but I’m not sure this is the right tool for the job I have in mind.

I’ve had a quick play with Inkscape, but it uses X11 and doesn’t really feel like an OS X application.

What other alternatives can you Mac users recommend?

(In looking around I did find a really cute tool called Scribbles. If you’re into graphic design I definitely recommend having a play with this, just to check out the smart interface, including a whole new approach to layers which seems really intuitive. It’s designed for kids, but I suspect that kids of all ages could have a lot of fun with it.)

I’ve also found a couple of other useful tool-lets which I thought I’d share (for my own future reference if for no other better reason):

At Webstock Dan Cederholm talked about basing a colour palette on a photograph from nature. This tool from De Graeve makes it easy – simply upload your image and it will pick out a range of complementary colours from the image. It even gives you the hex codes:


They also have a simple fav icon editor:


HexPicker Preview

Robin Wood has a really useful introduction to the OS X Colour Picker, which is actually much more powerful than it first appears.

The magnifying glass and swatch drawer were both new to me.

And, what’s more the picker can be extended with third-party add-ons.

I found this from Waffle Software, which adds a simple hex picker tab (see screenshot right):


Fun, fun!

What other tools are people out there using for this sort of thing? I’d be interested to get your suggestions.


Garr Reynolds Wisdom, Part II

This is Part II in a two-part series. Part I was published on 24-Jan.

Another one from Guy and Garr

Question: What is the single most important thing people could do to enhance their presentations?

Answer: Turn off the computer, grab some paper and a pencil, and find someplace quiet. Think of the audience. What is it they need? What is it you want to say that they need to hear. Identify what’s important and what is not. You can’t say everything in a twenty-minute talk—or even a two-hour talk.

The problem with most presentations is that people try to include too much. You can go deep or you can go wide, but you can’t really do both. What is the core message? This time “off the grid” with paper and pencil or a white board is where you can clarify your ideas and then get them on paper visually. After your ideas and basic structure are clear, then you can open up the software and start laying out the story in the slide sorter view.

Replace the word “presentations” above with “software” and the same great advice holds, I think.

Certainly the part about turning off your computer and spending some time thinking about what your audience needs and considers important, as tempting as it is to jump straight in and start coding.

But the real gem here in my opinion is the observation that you can go deep or wide but not both.

Just like presentations I think that most people building software try to include too much. Adding more features is a natural inclination. It’s actually ingrained in the social order of software developers – within teams enhancing existing features never seems to have the same status as adding something new. But, it should.

Can you have both the most features and be the easiest to use?

When you look around there are not many examples of software products which have achieved this.

So which of these two alternatives are you choosing, consciously or otherwise?

Garr Reynolds Wisdom, Part I

This is Part I in a two-part series. Part II was published on 25-Jan.

Garr Reynolds from Presentation Zen (who I’ve linked to before) recently answered a bunch of questions for Guy Kawasaki.

Ten Questions with Garr Reynolds

It’s a great post and I recommend that you read it. But a couple of the questions and answers especially jumped out at me. I thought it was worth highlighting them here – one today and one tomorrow.

Question: Are PowerPoint and Keynote part of the problem or part of the solution?

Answer: There is no question that PowerPoint has been at least a part of the problem because it has affected a generation. It should have come with a warning label and a good set of design instructions back in the ’90s. But it is also a copout to blame PowerPoint—it’s just software, not a method.

True, the templates and wizards of the past probably took most of us—who didn’t know any better anyway—down a road to ‘really bad PowerPoint’ as Seth Godin calls it. But today we know better, and we can make effective presentations with even older versions of PowerPoint—often by ignoring most of the features. Ultimately it comes down to us and our skills and our content. Each case is different, and some of the best presentations include not a single slide. In the end it is about knowing your material deeply and designing visuals that augment and amplify your spoken message.

How depressing to have an expert like Garr is telling people that the best way to use software is to consciously avoid features. Of course, he’s right. But, what a waste of time spent designing, developing and testing those features. Imagine instead if that time was invested in those parts of the software that people should use.

What’s more, not everybody is lucky enough to read this sort of advice. Death by bullet points is still the most common presentation experience.

Who is responsible for that outcome?

Those of us who design software should always focus on guiding users directly into “The Pit of Success”.

“In stark contrast to a summit, a peak, or a journey across a desert to find victory through many trials and surprises, we want our customers to simply fall into winning practices by using our [software]. To the extent that we make it easy to get into trouble we fail.”

— Rico Mariani, Microsoft Research (quoted by Brad Adams).

You need to make the right way the default. A new user should be able to just follow their nose, make the obvious choices, and end up in the right place.

Of course, this requires that you take a view about what the “right way” and the “right place” actually are (even where this requires you to be a bit of a dictator).

I think this is where software developers often let themselves down – by giving users almost unlimited flexibility, giving all features equal prominence in the navigation, by adding all of the features that users ask for (as opposed to those features that are required to get them most directly to the desired place), etc etc.

Those working on PowerPoint over the years have fallen into all of these traps.

As have many of us.

BONUS: Garr has a new book, also called Presentation Zen. If you do any public speaking, or even in-house presentations at work, go get a copy.

Canonical web design

I’ve mentioned this Joshua Porter post to a number of different people over the last few weeks. It should be compulsory reading for any designer working on an interactive web site …

“You can’t appreciate a web site in the same way you appreciate a logo or a poster. When a logo works, it makes you think certain things. Makes you think about the company, their influence, their reach. It’s about branding. The IBM logo suggests a solidity, the rock that is Big Blue. At this point, after you’ve thought these things, you’re done. There is nothing else to do. Maybe you’ll consider their products in the future.”

“When a web site works, on the other hand, you’re using it to do something. You might be looking for your next favorite book on Amazon, or searching for a critical piece of information on Google. You’re using the web site…interacting with it, having an experience that, contrary to logos, involves you. You are inputting information, asking questions, getting answers.”

“So, as a web designer, there is no analog to ‘look at this logo and see how it stands for a company’. That’s relatively easy for graphic designers because we can quickly appreciate the way a logo graphically depicts some attribute of the company: ‘solid, blue, Big Blue, trustworthy’. Even if we don’t like the company or if its never done anything good for us, we can make this judgment of the design of the logo.”

“But in web design, we can’t pass such sophisticated judgement on a design without having an actual experience with the web application itself. Without actually experiencing the value first-hand, we can’t look at a web site and say ‘hey, that web site is well designed because it represents the company well’. This is the primary disconnect when talking about judging great web design. You’ve got to experience it in a real way to know if it is great.”

If you want to read more I recommend you start with his “Five Principles to Design By” on his about page.

400 pixels or less

One of the fundamental decisions for a web designer to make when working on a new site, or updating an existing one, is what canvas size to allow themselves.

At the risk of showing my age, when I first started working on the web one of the key questions was how the site would look for those using a monitor with a resolution of 640×480 (for the younger readers: this wasn’t THAT long ago!)

Thankfully, time and screen sizes moved on.

When we updated the design of Trade Me late last year we increased the standard resolution that we supported up to 1024×768, although with code in place to ensure that the site still works well at 800×600.

If you’re interested load up the home page and try re-sizing your browser window – you’ll notice that, thanks to the magic of JavaScript, at 800×600 the logo and advertisment in the top-right corner jump up above the tabs and the font size on the category links in the body of the page is smaller.

By comparison, Xero, which has slightly more modern browser requirements, uses a fixed-width design which more-or-less fills the screen at 1024×768.

Why is this stuff important?

Well, as it turns out, people are not so quick to increase their screen size or resolution as web designers like to think.

Whenever I speak to a tech crowd I normally ask for a show of hands from anybody who is using a low-res screen (lately that has been 1024×768 or less). It’s unusual for anybody to raise their hand. But, out in the real world there are still plenty of people browsing at that resolution.

In fact many thousands of them…

Using the Neilsen Online stats for September ’07 of the ~3.5 million unique visitors to Trade Me during the month around 15% of them were using a resolution of 1024×768 (that’s 515,000 visitors) and even more incredibly just over 4% were using a resolution of 800×600 (that’s 145,000 visitors). Many of these people will be using a monitor that is capable of a higher resolution, I’m sure, if only they could work out how to increase it!

At the other end of the spectrum there are a number of different very large resolutions now in use. I’m typing this on a screen that is bigger than could have even been conceived of in the late 1990s, which of course makes life difficult for sites like Trade Me that use a liquid design.

Where it really gets interesting is when you look a little further down the list of browser resolutions. For example, the fifth most common resolution, with 1.82% market share is 214×138. That’s pretty small!

After I mentioned these numbers at the WDANZ conference I spoke at in Auckland a few months back Harvey Kane from RagePank picked up the analysis and came up with some even more interesting findings.

He made the observation that what really matters is the number of horizontal pixels available.

He looked at the Trade Me data and found:

Horizontal pixels Market share
400 or less 14%
800 or less 22%
1024 or less 45%
1280 or less 77%

That is a lot of people using little screens! Presumably many of them handheld/mobile devices?

So, there might be a role moving forward for those of us who remember designing for tiny resolutions after all! :-)

The lesson from this…

Design for your audience, not just for yourself, and always remember that they are probably nothing like you.

Doing the hard yards

Is it bad form to quote Fake Steve Jobs now that he has been outed?

Either way, here is an interesting quote from his blog:

“Yes, there are smart people at Google. Smarts are about one tenth of what makes a business work. The rest is just shitty stuff like dealing with customers and partners and fixing bugs and reworking code and doing all sorts of lousy grunt work — stuff the little whiz kids don’t want to get their hands dirty on.”

From: Squirrel boy gets his turn in the clown chair

Google is the benchmark

Last week the DominionPost had a story about Peter O’Hara leaving Fairfax. He was formerly the Editor-in-Chief. I only met Peter a few times during my time at Trade Me, but was impressed each time. He will be missed, I’m sure.

I went looking for a link to the article this afternoon on Stuff.

A search for “Fairfax” on Stuff returned only one result: “Fairfax Magazines Terms & Conditions“.

Not very helpful!

A search for “Fairfax site:stuff.co.nz” on Google on the other hand returned about 415,000 results (in 0.32 seconds no less!)

An on the first page, this article: “Fairfax Media’s editor-in-chief leaves“.

With “Fairfax” in the headline and repeated several times in the article you’d expect this to have been in the site search results.

How is it that Google can index Stuff better than Stuff can index themselves? Stuff only has to index Stuff. Google has to index the whole web. And still they do a better job.

Including search functionality on your site is very important, but unless it works you may as well just refer people to Google.