Redefining obvious

I love it when software just works. When you use it and it does exactly what it should do. When it’s obvious.

I love it even more when software redefines obvious. Before you use the software, you have one idea of what obvious is. Once you’ve used it, your mental model has changed, forever. Your world flips, and you can’t flip it back again.

Google maps is like that. Of course online mapping should let you pan and zoom by dragging the map. It’s obvious: how could anybody think otherwise? But others – multimap, for example – failed to see the obvious.

Apple’s iPhone is like that. Of course you should be able slide your photos with your fingers, and of course your photos should rotate as you rotate your phone. But it took Apple to spot the obvious.

The Nintendo Wii is like that. Of course gaming shouldn’t be restricted to joysticks and controllers with lots of fiddly buttons.

Amazon is like that. Of course you should be able to buy a book with a single click.

Redefining obvious is hard though. It doesn’t just happen: it requires a lot of hard decisions, and a lot of hard work. It can be thankless too: once you’ve redefined the obvious, it can be trivial for others to copy.  Everybody told Jeff Bezos that one-click shopping was dumb (his developers wanted to put in a ‘Are you sure?’ confirmation screen). He did it, and then everybody told him it was obvious.

At Red Gate, I think we’ve done a similar thing with a product we’ve just released. On a lesser scale than Apple, Google, Nintendo and Amazon, but I’m still proud of what the team (David C, Lionel, David L, Ben, Marine and Heather) have achieved.

SQL Data Generator generates test data for SQL Server databases. It’s a task ripe for automation, but it’s deceptively difficult to do. Many people – including Microsoft – have tried and, I would argue, failed.

Here are a few of the things that I think make SQL Data Generator special:

  • If your column is called FirstName then of course you should populate it – by default – with data like ‘Bob’, ‘Alice’ and ‘Chuck’, and not ‘QRICg’, ‘WKOlg%’ and ‘ERgaU*’.
  • Similarly, columns called email probably contain e-mail addresses, country will contain countries, and so on. Of course.
  • If you have a constraint OptOut =’Y’ or OptOut=’N’ then of course you shouldn’t try to fill it with As and Bs and Cs.
  • You should be able to run it out of the box. Of course you shouldn’t have to fiddle around with lots of configuration details just to get going.

In their modest way, I think these features redefine obvious.

If you’re a SQL Server professional I hope you’ll download the tool (you can find out more at http://www.red-gate.com/products/SQL_Data_Generator), try it out and then think to yourself "What’s the fuss? That’s obvious."

Exactly.