Month: February 2013

Seen recently in my Twitter feed:

I absolutely agree. Software should empower you, not distract you. It’s a tool, and like any good tool it should feel like a part of you. Once you know how to use it, the software itself should fade into your subconscious.

In cognitive psychology, they call this automatization. It’s what happens when you learn to balance and walk, learn to write or type, learn to talk, learn to drink from a water fountain, or learn to play a musical instrument.

Your brain very deftly, and quite without your knowledge, watches as you consciously and intentionally carry out repetitive or pattern-based tasks, often requiring lots of mental effort at first, and it creates little programs that do those same tasks without having burden your conscious mind with the specific moment-to-moment mechanics.

Soon, after some practice, you find yourself doing the same tasks seemingly effortlessly, and with high precision, while your conscious mind is free to direct your activity at a “higher” level.

But Jake, what does this have to do with UI design?

spokeshave.jpg:
Because humans are so good at automatization – so good in fact that they do it nearly universally without even knowing it – user interfaces that are easier to understand quickly, will be easier to automatize.

By minimizing, focusing first on understanding, nailing key features, and minimizing frills and clever pixel-wrangling, you just might find that people actually like using your software more.

Why? It won’t get in their way. It’ll be quick to learn. It will feel good to use. It’ll probably run faster. And as an extra benefit for you, it’ll be easier to maintain and have fewer bugs.

And once people learn your UI, your software will become another useful tool, by accomplishing the task you designed it for. Just like a water fountain, or a spokeshave, or a musical instrument.

Don’t get me wrong – I’m all for beautiful designs, but for me at least, function comes first.

Apple has done an amazing job in this regard over the last 12-15 years, and not just in the iPhone/iPad world. They’re not the only ones, but at least in the consumer technology world, they’re almost undisputedly the best at it.

Less really is more…

Computers are hard. Software is hard. Many geeks reading this have a propensity for figuring out hard things, and an aptitude for seeing through… um… difficult user interfaces.

But that’s not good enough for most people. You’ve probably invested many hours in your UI and you think it’s great – but most likely it needs to be easier.

Here’s something to try:

Ask a non-geek to use your software for the first time and watch them carefully. It’s probably not nearly as easy to understand as you thought it was.

Where do they get stuck? Where do they ask questions, and what about? When do you see their face light with recognition and understanding? Try not to offer help or explanation. Let them explore and get stuck. You want to know about the problems people will hit when you’re not there with them.

Now before you do anything else, make some quick notes… And then go help your poor test subject.

Now it’s time to fix it. You’ve got your notes right?

One good way to cut through confusion is to make your UI simply… less.

Cut away all but the essential settings and controls, geeky preferences, custom scrolling ballistics, the animated GIF of your cat, and the sound you hear in your first-run walkthrough. (In fact, see if you can get rid of the first-run walkthrough altogether.)

Make your top one or two key interactions dead-easy. Then look again and see what you can do to help people understand your UI as a tool. Just by looking at it.

And then go test it again. Ask the person you showed it to last time. Then ask someone new. (You’re taking notes, right?)

Less really is more… Except when it isn’t

There are of course exceptions – scenarios for which this is exactly the wrong idea. For example, users often automatize clicking the Okay button on two-button dialog boxes.

But if the question you’re asking is:

erase-everything-dialog.png:

… then you’re doing it wrong. Less UI isn’t always better UI. Sometimes you need to be “in your face”.

Some things to keep in mind

Here’s a short list, off the top of my head, of some of the things I try to remember when I’m thinking about UI design:

  • Form follows function
  • Focus on “core scenarios”
  • Don’t make me think
  • Simplify, simplify, simplify
  • Text is really important
  • Don’t assume people will read it
  • Do you really need another preference?
  • Be consistent, in context
  • Respect prior art

I’m planning on writing more on these and lots of other UX-related stuff soon.

Stay tuned…

User Experience

theoldreader-logo.png:
Just tripped over The Old Reader in my referer logs. Has anybody played with it? Here’s how they describe themselves:

Welcome to The Old Reader, the ultimate social RSS reader. It’s just like the old google reader, only better. We’re in beta right now, but we’re constantly working on improvements and new features.

Not sure what “the ultimate social RSS reader” means.

It looks like it’s being built by a 3-person team, and they seem to have on the order of less than 10K users, but are growing. (And they have a blog.)

If they’re really serious about aligning their service with the (perhaps) ailing Google Reader, then they’re well positioned to win a lot of new users &emdash; enough new users to knock themselves off the air, unless they’re built to scale both their tech, and their income.

As many have said, running a centralized RSS reader is probably going to be enormously expensive for a large number of feeds and users.

I wish them luck!

RSS

rss_glass_128.png:
Yesterday, Dave Winer described an AHA moment he had after talking to some folks about Google Reader’s possible impending Syncpocalypse. He asks:

“Why isn’t this something a news org jumps on. It’s their business. And for crying out loud — do it with a revenue model. No paywall. Just charge the users for the service. Make this a market. Let’s start building in a non-fragile way.”

I think this is a great idea, and if it gets any traction, I’d be happy to help with what limited time and resources I have.

I’d also like to offer a pair of suggestions to anyone who wants to do this: Clone Google Reader’s API, and support OPML for importing feeds, as many feed reading apps already do.

Cloning Google’s API and supporting OPML would make it as easy as possible for developers and their users to migrate to new services, and would open the market up to real competition, which is sorely needed in this space.

RSS Web

HTML5_Logo_med.png:
Brent Simmons mentioned Intel’s beta tool to port iOS apps to HTML5, and says, “I don’t know why.”

I have a hunch here – just a hunch, but I’ll throw it out there anyway:

With Windows 8, Microsoft has embraced HTML5 as a first-class application UI framework (along with your choice of JavaScript, VB and C#).

Intel’s success or failure is in no small part tied to Microsoft’s. In order for them to stay relevant in the consumer space, they will need to ensure that they can compete with ARM architectures that are core to most mobile devices.

Leaving the hardware issues aside for a moment and looking at software, both Microsoft and by extension Intel need to make it as easy as possible for the ginormous mobile developer community to get onto their platform stack.

By making it easy easier to get your apps to run in HTML5, they might be able to help developers get cross-platform presence in Windows 8, which presumably would boost the value of the platform, and thereby help shore up Intel’s languishing consumer market. I think that’s part of what Intel is doing here. (If they’re also working on hardware optimized for HTML5 and/or JavaScript, that would make porting more valuable for them.)

Of course this assumes that the consumer market will actually embrace Windows 8, which certainly remains to be seen, and that developers will feel they can make it economical to develop for it. Personally I have doubts, but I’ve been wrong before.

But Microsoft is tenacious, and plays a long game with the ability to put up whatever table stakes they want to. Barring some major upheaval, it will take years for this to play out to the point where any clear winner emerges.

And it’s just as likely that we’ll continue to have a heterogeneous environment into the far future. Personally I think that’s good for the ecosystem, since it means more competition, better ideas coming from all players, and better value for users.

CocoaDev

The fact is that my blog is basically pathetically slow.

It’s running on an under-powered machine, with a relatively slow hard drive, a VM that’s also hosting a lot of other sites.

They’re all running on a platform for which I have much love, but which is now more than 20 years old.

I think in the short run I can split this site off onto another VM and get marginally better performance. But without either a substantial hardware upgrade (RAID or SSD storage), or a time-consuming and probably link-rot generating migration to another platform/service, it’s not going to get a lot better.

Blogging

Just a quick note here: Brent Simmons made some good points yesterday regarding the potential shut-down of Google Reader. If indeed they were to shut it down, a planned, clean ending would definitely be preferred to a gradual decline into disrepair. Better for users, and better for Google.

But either way, one part of what a Reader shut-down would mean is a big decline in blog traffic for many folks, especially in the tech/geek community.

Over the last 24 hours, over 40% of the referred traffic coming to my blog is from Google Reader. Of the other 60%, it’s a mix of referrals from inessential.com and other blogs, Google searches, and links from Twitter. I get very few direct hits (i.e. not coming from a link somewhere else).

While I don’t run any ads here, if I were then a 40% decline in traffic would also mean a 40% decline in ad revenue.

Just saying…

Ps. I’m going to call it RSS Syncpocalypse – concatenating "sync" and "apocalypse".

RSS Web

Like many others, I’ve been having trouble with Google Reader this morning. TechCrunch is reporting widespread issues today:

“Google Reader, the RSS feed-reading service Google has long since benignly abandoned, has gone completely mad, and Google has yet to acknowledge the problem even as it heads into its second day of unusability. Users are reporting inaccurate read and unread counts, the reappearance of thousands of old, unread items as new, and, in some cases, the return of feeds users had previously unsubscribed to.”

While in the short run I hope this is a temporary problem, and that Google Reader will be fixed, the longer-term issue of Google not investing in Reader anymore looms large.

The service may be a money-sink for Google, and may not align well with their corporate priorities, but it is hugely popular among programmers and techies, and is relied on as core infrastructure for countless applications that sync feeds and read/unread status across mobile devices and desktop readers.

There is at least one paid third party alternative available in NewsBlur, and it has an API (which is not interoperable with the Google Reader API). I don’t know how successful they are so far, but there’s definitely a need for at least one stable web-based feed reader with a sync API.

My question is this: Could Google spin off Reader into a new company?

I don’t know if it’s even technically possible given that it probably leverages many internal services and technologies that are proprietary to Google.

And even if it were technically possible, are there any business reasons why Google couldn’t do this?

I don’t know if any Googlers are listening on this frequency, but if they are, I would hope they might consider it.

Brent adds to the conversation: RSS Sync Apocalypse Preview [added 3/14]

RSS Web

After my last post, promising (mainly to myself) that I’d blog more, I asked on Twitter what should be On Deck, so to speak.

I’ve decided I’m going to focus first on thoughts about user experience design, and related team/project stuff, since that’s what I’ve been spending a lot of time thinking about of late.

I’ll probably do some posts about resumes and job hunting soon, and that may (at my sole discretion) include some thoughts about what it was like to work at Microsoft. I’ll also definitely touch either directly or tangentially on software development lifecycle, and team dynamics issues.

But mostly what I’m interested in – for many years now – is great software, with great user experience, and engineering practices that enable its creation and ongoing evolution.

So… Stay tuned… Thanks!

Ps. New Tagline and About text. Let me know what you think…

Uncategorized

The other night I was talking with Brent Simmons, and he told me that he’d tried to send my last post to Instapaper, and it didn’t work. The error message sucked, but clearly this requires action in any case.

Now the decision is whether to try to fix my template (or Manila itself), or to finally find a contemporary blog host. I have a machine that could be a home for a self-hosted WordPress blog, but do I really want the hassle of maintaining backups and all the other crap that goes along with self-hosting… anything, really?

Then again there are still a few other die-hards out there who are using Manila. If the fix were simple, it would be a nice gift for them. (And I still need to find a good ship vehicle for the work I did to get Manila working in Dave Winer’s OPML editor…)

Update: it turns out that Instapaper works just fine on my site if you use the browser bookmarklet, but it breaks if you use the API to save one of my posts. Still no idea why it’s broken.

Uncategorized

There’s no time like the present, right? Or the near future… Or someday, when I get to it…

For quite a while I’ve been telling myself, “Self: You should really blog more.” And then I don’t.

Since I left the indie developer world at UserLand in 2006, for an all-consuming, emphatically non-indie job at Microsoft, I’ve been learning a tremendous amount about software design and development, … and not blogging about it.

At the same time my list of excuses for not blogging has grown: I don’t have time to juggle work, family and blogging. I can’t write about things I’m doing at Microsoft. I’m not doing interesting stuff outside work. Nobody wants to hear about my toddler -or- I don’t want an argument about parenting. I shouldn’t write about health issues. Windows 8 is too super-top-secret to say anything. I can’t talk about interviewing outside of Microsoft, or writing resumes, or flying to San Francisco, or driving to Portland… And on and on…

But these are mostly shallow excuses. And it’s time to fix this bug.

So what’s new?

Yesterday, Brent Simmons pointed out some Things That Are New since he was last an indie developer. The tech industry has changed quite a bit since 2005. (And Congrats to Brent on going indie again!)

Here are a few things I’d like to add to Brent’s self-admittedly “partial” list:

  • Ubiquitous and relatively fast mobile broadband
  • Amazing advances in batteries and low-power computing
  • Cheap-and-big (or cheap-and-fast) storage
  • Inexpensive, high-speed wireless home networking
  • Streaming high-quality video everywhere
  • Proliferation of rational programming languages and SDKs
  • Cloud computing at huge scale – IaaS, PaaS, SaaS – and APIs to manage them

All things I’ve been a consumer of, some of which I’ve worked with or worked on.

And all things I could be blogging about.

As a counterpart to Brent’s list and mine about what’s new-and-mostly-good, there’s also a darker side to the current technology climate:

  • Widening connectivity gaps between the “wealthy” and everyone else
  • Indiscriminate government and private surveillance of… well, everybody
  • Widening scope of baseless patent litigation
  • Downward price-pressure on ISV software, driven in part by platform vendors
  • Commoditization of user-authored content, to the benefit of VCs and their startups

Again, all things I could be blogging about.

And then there are the things I’ve been learning about in the course of my work: User experience design, team dynamics, software project management and execution, working with stakeholders, competitive analysis, presentation skills, and on and on…

More recently on the career management front I’ve learned a ton about resumes and interviewing, personal branding, professional networking, critical self-assessment, and generally figuring out what the heck I want to do with the rest of my life!

Not to mention the fact that my son Gabriel, who was born less than a year after I started working for Microsoft, is about to turn 6-years-old. As his parents, Cindy and I receive new life-lessons from Gabe on a daily basis…

So tell me again, what’s new?

Tons of stuff, plus a backlog!

In short, my excuses for not blogging just aren’t working anymore: While it’s true that I still have too little time, I’m no longer at Microsoft, Windows 8 is a done deal, life outside work is fun and interesting, Gabe says funny shit every day, I’m relatively healthy and have some great stories to tell about it, and I’m not looking for a new job or flying anywhere for interviews any time soon. (Knock wood.)

All things I could should be blogging about.

So I’m going to fix this bug.

Thanks for listening!
-Jake

Uncategorized