Report: FlexCamp Boston 2007

img_8987.jpg I went to FlexCamp Boston yesterday. It was for Flash developers (which I’m not), with lots of code examples and live shots of dev tools. It was a good way to get immersed in what Adobe’s doing.

I think Flash is extremely interesting — it’s got a chance to attain the client-side, interactive, Web-component vision that Java never seemed to reach. Flash has succeeded, in part, because of great vector graphics and video support. Also, unlike Java, Flash came under Microsoft’s radar. By the time Flash became effectively ubiquitous, it was too late for Redmond.

The new Flash 9 Player puts Flash squarely on par with Java (technology-wise), with a high-performance JIT VM (AVM2), a real programming language (ActionScript), and a mature tool set.

Adobe’s working further up the stack (e.g. Flex, LifeCycle Data Services, ColdFusion, etc.), but the server-side technologies seem much less relevant. Adobe’s clearly trying to monetize the Flash franchise (in part) through server-side tie-ins, but there’s tough competition there from open source offerings. Of the examples I saw and developers I talked to, most “rolled their own”, using low-level protocols to connect to a simple, custom server-side infrastructure. Plus, a $20k single CPU license will be a hard sell, when the underlying hardware only costs $4k (or $100/month).

Bottom line: I think we’re going to see Flash used more and more. If you’re working on a project with a high-interactivity component, you should take a look.

Amazon Kindle’s “simple power”

I haven’t (yet) played with Kindle, Amazon’s new book reader. But it looks like they made a brilliant design decision: instead of connecting to the Internet through a host PC, the Kindle includes built-in wireless network access through Sprint’s EV-DO network.

This is a great example of “simple power” that I wrote about earlier. By eliminating the host PC, the designers removed an entire layer of complexity. There’s no Windows, Mac, or Linux desktop software to install and manage. Users don’t even need a PC, and there is no monthly account for wireless network access (charges are built into the cost of the device and content).

With the simplicity, users get more power: they can browse and purchase new content from anywhere, at any time. This is a dramatic upgrade from the typical iPod download-n-sync experience.

This suggests a design challenge: is there some element of your software or system that you can totally eliminate, making things both simpler and more powerful?

The QWERTY problem for software

My friend Paul Baier was ranting about the new menus in Office 2007:  “they changed everything!”

It seems that widely used apps like Office have run into the QWERTY problem.   The QWERTY keyboard is not the best UI for touch typing — in fact, it was deliberately designed to minimize jamming problems on mechanical typewriters.  The Dvorak keyboard is generally acknowledged to be superior, BUT hasn’t been superior enough to displace QWERTY in the market.

There’s a lesson here for software designers:  if you have an app with a large installed base, consider that your current UI might be “good enough”.

Software design: please give me “simple power”

Think about the apps you use — the best are usually the ones that provide a lot of power and functionality with a relatively simple user interface. It’s a obvious point, but many most apps get things wrong.

Google is a great example: the UI is about as simple as you can get, but there’s a lot of power behind the UI. Also, I think Apple generally does a good job: many of the UI functions in OS X are much simpler than their Windows counterparts, but are equally powerful. (My favorite examples: the wireless connection manager, and backup/restore).

Unfortunately, bad examples abound. My virus scanning software provides endless UI chatter about downloading the latest updates, doing scans, and providing me with countless updates about what it is doing and has already done. It’s as if the software has low self-esteem, and needs to constantly remind that it is working for me. Why can’t it just lurk in the background, “do the right thing”, and involve me only when it really needs to?

I think most developers either (a) don’t care about interaction design, and/or (b) fall into the trap of believing that “value” is driven by “visible features”. That is, the more stuff the user can see, the more the software must be worth.

But I’m encouraged, because I think the software business has matured to the point where design matters. In the early days, users were appreciative of functionality, in any form. Now, functionality abounds, and users demand it in the simplest, most usable form.

Involuntary test of Time Machine

Well, I can report that Time Machine (the new back-up & restore utility for Mac OS X) works.

My 364 day old MacBook suffered a complete hard drive failure, only TWO hours after completing my first full backup.   I hustled to the Apple store right away, so I didn’t miss my one-year warranty window.  I had my MacBook back in 3 days, fully repaired.

I installed Leopard, and was given the option of restoring from a Time Machine backup.  It worked seamlessly — two hours later, I was back in business with a full restore.

Time Machine is a great example of simple & usable design.  Compare it to the backup utility on Windows — the simplicity is obvious, once you see it.

Leopard install problem: hanging at the blue screen

I upgraded my MacBook to Leopard today (brave early adopter!) and ran into the problem of hanging at the blue screen immediately after reboot.  I’m not the only one that’s run into this.

This fix worked for me:  reboot from the install DVD (hold down ‘c’ after power up). On the 2nd or 3rd install screen go into the options and select “Archive and Install”, with the option to bring across your user data.

If you’re not hankering to run Leopard, I’d wait.  Or, do a full backup first.

It will be really interesting to see how Apple handles this.

Getting stuck in “Design box”

I started reading Sketching User Experiences (thanks Amazon Prime!), and I’ve already found a quote that’s really resonated:

In terms of stifling innovation, good ideas are far more dangerous than bad ones.  They take hold, assume momentum, and therefore result in inertia.  Consequently, they are hard to displace, even when they are well past their prime.

Bill Buxton put his finger on a theme that’s been bugging me recently: some designs that have been “good enough” have stuck with us for a long time, with little follow-on innovation.

First, the iPhone has showed us innovation was still possible with phones and mobile devices.  We were stuck in a design box, and Apple has showed one way to get out of it (e.g. make the screen as large as you can, dispense with buttons, have rich gesture interaction with the screen itself, etc.)

Second, what about Outlook and email readers in general?  Outlook has been good enough for he past decade or so, and nothing has really changed with the way we read email.  Isn’t there a fundamentally better way for me to deal with 100-200 messages/day?

Finally, if you’re a software designer, you should read the Story of Improv, about the team at Lotus (led by Pito Salas) that was designing beyond the standard cell-based spreadsheet model.  It’s a reminder to keep innovating — don’t accept the status quo.

The brilliance of Internet Platform APIs

Platform APIs (e.g. Facebook, force.com, Google, etc.) are a great way to “let a thousand flowers bloom” and get the market to do the hard work of researching and market-testing new features. It’s an absolutely brilliant strategy. We’ll see the platforms acquiring their leading apps. We’ll also see (I bet) some nasty dust-ups where the platform copies features and competes directly with third-party apps.

However, developers beware — the fine print of many API agreements (such as Google’s) require you to indemnify the platform and/or agree not to sue for IP claims (e.g. patent infringement) relating to your work. This can make it hard to defend your ideas if the platform rips off your app, which in turn will make it hard to negotiate a good price if the platform wants to acquire you or license your app. Consult your attorney.

Microsoft’s story arc is winding down

I think Microsoft’s dominance has peaked.

They’re struggling on many fronts: Vista an uninspired product with more technology & features for copyright holders (e.g. DRM) than for users. Microsoft’s had to provide more life for Windows XP, and to offer downgrade options from Vista. They haven’t been able to translate desktop dominance into any Internet dominance. Adobe’s Flash is the platform of choice for rich Web apps.

The flat stock price is making it harder to buy and retain top talent. Mature, high-quality, low-cost, open source stacks are winning in the server room. Viable alternatives to the Office cash cow are becoming available. The hardware market can’t tolerate Microsoft’s OEM bundling prices, when systems cost 80% less than they did a decade ago.

Apple is coming on strong, and inspiring customers with new products and new ideas — when was the last time Microsoft did that?

But, I don’t think Microsoft will disappear. They’ll join the IBM club (or worse, the Sun club), as a once-dominant company that’s no longer a leader.