John Gruber writes why the iPad’s multitasking UI mental model can be extremely confusing.
I believe the whole app launching & icons sitting on the home screen model should be rethought. If you were to design it from scratch today, I believe you would arrive at a more intuitive and simpler system. Rearranging icons is a chore. Drag and drop feels like balancing an egg on a fork. Most of it is undiscoverable.
The iPad has the chance to be an amazing device but the system software is frustrating.
Patrick Collison of Stripe has started putting together a list of ‘examples of people quickly accomplishing ambitious things together.’ Sometimes an idea comes screaming into the world.
Xerox Alto. Work on the Xerox Alto, the first GUI-oriented computer, started in November 1972 because of a bet: “Chuck said that a futuristic computer could be done ‘in three months’ and a Xerox exec bet him a case of wine that it couldn’t be done”.
Git. Linus Torvalds started working on Git on April 3 2005. It was self-hosting 4 days later. On April 20 2005, 17 days after work commenced, Linux 2.6.12-rc3 was publicly released with Git.
BankAmericard. Dee Hock was given 90 days to launch the BankAmericard card (which became the Visa card), starting from scratch. He did. In that period, he signed up more than 100,000 customers.
Amazon Prime. Amazon started to implement the first version of Amazon Prime in late 2004 and announced it on February 2 2005, six weeks later.
Sometimes it feels like we decide the developer experience is more front of mind than the user experience.
Or: DX > UX.
Why is that? Does web development today feel like such a beast that I must wield a powerful weapon with which to conquer it?
We need the latest browser features to build web apps. If they are not available in every user’s browser, we will write the code we prefer and transpile or package it up into to a common lingo.
The team really wants to use this new language or framework, so we should adopt it and be cutting edge! We’ll be more attractive in the industry so hiring will be easier.
It’s quicker for us to choose the same tech everyone else is using, because they have solved lots of problems that make it sometimes tricky and there’s a huge ecosystem of ready-to-go components and plugins. We’ll move so fast! 💨
While I think these considerations should be discussed, where is the user here?
Will it be easier for the user? Will they move quicker than they had before? Will they be provided something ready-to-go to solve the problem they have? Will they really want to use what you’ve made? What did they need anyway?
If you have failed here for the user, or if the developer experience is more satisfying to the developers than the user experience is to the users, what has been gained? If it’s fast for the team to see changes live but slow for the user to load, that’s a tax the user is paying for. Was it worth it? Why should they pay?
As developers our natural sense is to pick up on what makes a compelling and fresh developer experience that will lead us to learn interesting new concepts and be involved in the currents of the industry. But does the user care? Are you creating a large tax for them to swallow? Will your team get swept away from the user? What value does the user get for paying that tax?
Keep the user experience front of mind. Talk with the user and measure so that you know that your UX is at least as compelling as your DX. Keep the tax from your DX choice low.
Speed and reliability are often intuited hand-in-hand. Speed can be a good proxy for general engineering quality. If an application slows down on simple tasks, then it can mean the engineers aren’t obsessive detail sticklers. Not always, but it can mean disastrous other issues lurk.
But why is slow bad? Fast software is not always good software, but slow software is rarely able to rise to greatness. Fast software gives the user a chance to “meld” with its toolset. That is, not break flow. When the nerds upon Nerd Hill fight to the death over Vi and Emacs, it’s partly because they have such a strong affinity for the flow of the application and its meldiness. They have invested. The Tool Is Good, so they feel. Not breaking flow is an axiom of great tools.
Lots of great points in this post from Craig Mod. It can be contrasted with the point that I don’t believe teams should prematurely optimize or prioritize application speed over meeting user needs.
However — if an application is noticeably slow, especially for common tasks, I will feel annoyed every time I use it. It feels as though a shortcut has been taken for the development team’s benefit (and not mine), or maybe they just don’t know what they’re doing.