Internet News

An Event Apart: Designing Progressive Web Apps

LukeW - Mon, 08/27/2018 - 2:00pm

In his The Case for Progressive Web Apps presentation at An Event Apart in Chicago, Jason Grigsby walked through the process of building Progressive Web Apps for your Web experiences and how to go about it. Here's my notes from his talk:

  • Progressive Web Apps (PWAs) are getting a lot of attention and positive stories about their impact are coming out. PWA Stats tracks many of these case studies. These sorts of examples are getting noticed by CEOs who demand teams build PWAs today.
  • A PWA is a set of technologies designed to make faster, more capable Web sites. They load fast, are available online, are secure, can be accessed from your home screen, have push notifications, and more.
  • But how can we define Progressive Web Apps? PWAs are Web sites enhanced by three things: https, service worker, and a manifest file.
  • HTTPS is increasingly required for browsers and APIs. Eventually Chrome will highlight sites that are not on https as "insecure".
  • Service Workers allow Web sites to declare how network requests and the cache are handled. This ability to cache things allows us to build sites that are much faster. With service workers we can deliver near instant and offline experiences.
  • A Web manifest is a JSON file that delivers some attributes about a Web site. Browsers use these files to make decisions on what to do with your site (like add to home page).
  • Are PWAs any different than well-built Web sites? Not really, but the term helps get people excited and build toward best practices on the Web.
  • PWAs are often trojan horses for performance. They help enforce fast experiences.
Feels Like a Native App
  • Does your organization have a Web site? Do you make money off your Web site? If so, you probably need a Progressive Web Site.
  • Not every customer will have your native app installed. A better Web experience will help you reach people who don't. For many people this will be their first experience with your company, so you should make it as good as possible.
  • Getting people to install and keep using native apps is difficult. App stores can also change their policies and interfaces which could negatively impact your native app.
  • The Web can do much more than we think, the Web has APIs to access location, do fast payments using fingerprint identification, push notifications, and more.
  • What should we use to design PWAs? Native app styles or Web styles? How much does your design match the platform? You can set up PWAs to use different system fonts for iOS and Android, should you? For now, we should define our own design and be consistent across different OSs.
  • What impact does going "chrome-less" have on our PWAs? You loose back buttons, menu controls, system controls. Browsers provide us with a lot of useful features and adding them back is difficult. Especially navigation via the back button is complex. So in most cases, you should avoid going full screen.
  • While not every person will add your PWA to their home screen, every person will "install" your PWA via the service worker.
  • An app shell model allows you put your common UI (header, footer, nav, etc.) into the app cache. This makes the first loading experience feel a lot faster. Should you app shell or not? If you have architected as a single page app, this is possible but otherwise might not be worth the effort.
  • Animating transitions can help with way-finding and polish on the Web. This gives Web sites even more personality.
Installation and Discovery
  • Using a Web manifest file, allows you specify a number of declarations for your app. In addition to name, icon, and even theme colors.
  • Once you have a PWA built and a manifest file, browsers will being prompting people to install your Web site. Some Browsers have subtle "add" actions. Other use more explicit banner prompts. "Add to home screen" banners are only displayed when they make sense (certain level of use).
  • Developers can request these banners to come up when appropriate. You'll want to trigger these where people are mostly likely to install. (like checkout)
  • Microsoft is putting (explicitly and implicitly) PWAs within their app store. Search results may also start highlighting PWAs.
  • You can use Trusted Web Activity or PhoneGap to wrap native shells around your PWA to put them into Android and iOS app stores.
Offline Mode
  • Your Web site would benefit from offline support. Service Workers enable you to cache assets on your device to load PWAs quickly and to decide what should be available offline.
  • You can develop offline pages and/or cache pages people viewed before.
  • If you do cache pages, make it clear what data hasn't been updated because it is not available offline.
  • You can give people control over what gets cached and what doesn't. So they can decide what they want available for offline viewing.
  • If you enable offline interactions, be explicit what interactivity is available and what isn't.
Push Notifications
  • Push notifications can help you increase engagement. You can send notifications via a Web browser using PWAs.
  • Personal push notifications work best but are difficult to do right. Generic notifications won't be as effective.
  • Don't immediately ask people for push notification permissions. Find the right time and place to ask people to turn them on. Make sure you give people control, if you'd don't they can kill them using browser controls.
  • In the next version of Chrome, Google will make push notification dialogs blocking (can't be dismissed) so people have to decide if they want notifications on or off. This also requires you to ask for permissions at the right time.
Beyond Progressive Web Apps
  • Auto-login with credential management APIs allows you to sign into a site using stored credentials. This streamlines the login process.
  • Apple Pay on the Web converged with the Web Payment API so there's one way to use stored payment info on the Web.
  • These next gen capabilities are not part of PWAs but make sense within PWAs.
How to Implement PWAs
  • Building PWAs is a progressive process, it can be a series of incremental updates that all make sense on their own. As a result, you can have an iterative roadmap.
  • Benchmark and measure your improvements so you can use that data to get buy-in for further projects.
  • Assess your current Web site's technology. If things aren't reasonably fast to begin with, you need to address that first. If your site is not usable on mobile, start there first.
  • Begin by building a baseline PWA (manifest, https, etc.) and then add front-end additions and larger initiatives like payment request and credential api later.
  • Every step on the path toward a PWAS make sense on their own. You should encrypt your Web sites. You should make your Web site fast. These are all just steps along the way.

An Event Apart: Data Basics

LukeW - Mon, 08/27/2018 - 2:00pm

In her Data Basics presentation at An Event Apart in Chicago, Laura Martini walked through common issues teams face when working with data and how to get around/work with them. Here's my notes from her talk:

  • Today there's lots of data available to teams for making decisions but it can hard to know what to use and how.
  • Data tools have gotten much better and more useful. Don't underestimate yourself, you can use these tools to learn.
  • Google Analytics: The old way of looking at data is based on sessions are composed of page views and clicks with timestamps. The new way is looking at users with events. Events can be much more granular and cover more of people's behaviors than page views and clicks.
  • Different data can be stored in different systems so it can be hard to get a complete picture of what is happening across platforms and experiences. Journey maps are one way to understand traffic between apps.
  • You can do things with data that don't scale. Some visualizations can give you a sense of what is happening without being completely precise. Example: a quantified journey map can show you where to focus.
  • Individual users can also be good data sources. Zooming in allows you to learn things you can't in aggregate. Tools like Fullstory replays exactly what people did on your Website. These kinds of human-centric sessions can be more engaging/convincing than aggregate measures.
  • Data freshness changes how people use it in their workflows. Having real-time data or predictive tools allows you to monitor and adapt as insights come in.
  • How do you know what questions to ask of your data? HEART framework: happiness, engagement, adoptions, retention, and task success. Start with your goals, decide what is an indicator of success of your goals, then instrument that.
  • To decide which part of the customer journey to measure, start by laying it all out.
  • There's a number of good go-to solutions for answering questions like: funnel analysis (shows you possible improvements) or focus on user groups and split them into a test & control (allows you to test predictions).
  • The Sample Size Calculator gives you a way to determine what size audience you need for your tests.
  • Quantitative data is a good tool for understanding what is happening but it won't tell you why. For that, you often need to turn to qualitative data (talking to people). You can ask people with in-context small surveys and similar techniques.
  • Often the hardest part of using data is getting people on the same page and caring about the metrics. Try turning data insights into a shared activity, bet on results. Make it fun.
  • Dashboards surface data people care about but you need to come together as a team to decide what is important. Having user-centric metrics in your dashboards shows you care about user behavior.
  • Data can be used for good and bad. Proceed with caution when using data and be mindful where and how you collect it.

An Event Apart: Content Performance Quotient

LukeW - Sun, 08/26/2018 - 2:00pm

In his Beyond Engagement: the Content Performance Quotient presentation at An Event Apart in Chicago, Jeffrey Zeldman introduced a new metric for tracking how well Web sites are performing. Here's my notes from his talk:

  • The number one stakeholder request for Web sites is engagement: we need people using our services more. But is it the right metric for all these situations?
  • For some apps, engagement is clearly the right thing to measure. Think Instagram, long-form articles, or gaming sites. For others, more time spent might be a sign of customer frustration.
  • Most of the Web sites we work on are like customer service desks where we want to give people what they need and get them on their way. For these experiences, speed of usefulness should matter more than engagement.
  • Content Performance Quotient (Design CPQ) is a measure of how quickly we can get the right content to solve the customer's problem. The CPQ is a goal to iterate against and aim for the shortest distance between problem & solution. It tracks your value to the customer by measuring the speed of usefulness.
  • Pretty garbage: when a Web site looks good but doesn't help anyone. Garbage in a delightfully responsive grid is still garbage. A lot of a Web designer's job is bridging the gap between what clients say they need and what their customers actually need.
  • Marlboro's advertising company (in the 50s) rethought TV commercials by removing all the copy and focusing on conveying emotions. They went from commercials typically full of text to just ten words focused on their message.
  • Mobile is a great forcing function to re-evaluate our content. Because you can't fit everything on a small screen, you need to make decisions about what matters most.
  • Slash your architecture and shrink your content. Ask: "why do we need this?" Compare all your content to the goals you've established. Design should be intentional. Have purpose-driven design and purpose-driven content. If your design isn't going somewhere, it is going nowhere.
  • We can't always have meetings where everybody wins. We need to argue for the customer and that means not everyone in our meetings will get what they want. Purpose needs to drive our collaborations not individual agendas, which usually leak into our Web site designs.
  • It’s easy to give every stakeholder what they want. We've enabled this through Content Management Systems (CMS) that allow everyone to publish to the site. Don't take the easy way out. It’s harder to do the right thing. Harder for us, but better for the customer & bottom line.
  • Understanding the customer journey allows us to put the right content in the right place. Start with the most important interaction and build out from there. Focus on key interactions and build out from there. Sometimes the right place for your content isn't your Website -for video it could be YouTube or Vimeo.
  • Customers come to our sites with a purpose. Anything that gets in the way of that is a distraction. Constantly iterate on content to remove the cruft and surface what's needed. You can start with a content inventory to audit what is in your site, but most of this content is probably out of date and irrelevant. So being in a state of constant iteration works better.
  • When you want people to go deeper and engage, to slow down... scannability, which is good for transactions, can be bad for thoughtful content. Instead slow people down with bigger type, better typographic hierarchy, more whitespace.
  • Which sites should be slow? If the site is delivering content for the good of the general public, the presentation should enable slow, careful reading. If it’s designed to promote our business or help a customer get an answer to her question, it must be designed for speed of relevancy.

An Event Apart: Full-Featured Art Direction

LukeW - Sun, 08/26/2018 - 2:00pm

In her Full-Featured Art Direction for the Web presentation at An Event Apart in Chicago, Mina Markham shared her approach to building Web pages that work across a variety of browsers, devices and locales. Here's my notes from her talk:

  • Full-featured art direction is progressively enhanced, localized for a particular user, yet inclusive of all visitors and locations.
  • Start with the most basic minimal viable experience for the user and move up from there. Semantic markup is your best baseline. Annotate a Web site design with HTML structure: H1, H2, H3, etc. From there, gradually add CSS to style the minimal viable experience. If everything else fails, this is what the user will see. It may be the bare minimum but it works.
  • Feature queries in CSS are supported in most browsers other than IE 11. We can use these to set styles based on what browsers support. For instance, modular font scaling allows you to update overall sizing of text in a layout. Feature Query checker allows you to see what things look like when a CSS query is not present.
  • Localization is not just text translation. Other elements in the UI, like images, may need to be adjusted as well. You can use attributes like :lang() pseudoclass to include language specific design elements in your layout.
  • Inclusive art direction ensures people can make use of our Web sites on various devices and in various locations. Don't remove default behaviors in Web browsers. Instead adjust these to better integrate with your site's design.

What Can Bike Sharing Apps Teach Us About Mobile On-boarding Design?

LukeW - Sun, 07/22/2018 - 2:00pm

Given the proliferation of bike/scooter sharing services these days, I thought it would be interesting to compare the mobile app on-boarding experiences of the ones I could access. To do so, I went through the new customer flow for six of these services.

While the mobile on-boarding I experienced across these services looked really similar, the end result differed dramatically -from me abandoning the process to walking away a delighted customer. Understanding how product design impacted these outcomes is critical for anyone trying to grow a new mobile business.

Applying Design Patterns

My first encounter with bike sharing, appropriately, was in Amsterdam. I was outside the city center for a meeting and encountered a rack of Hello-Bikes. So why not bike back to my hotel in town? Here’s what happened when I tried.

Hello-Bike’s mobile on-boarding consists of several common patterns: a splash screen, a sign-up form, terms and conditions, and a tutorial. Though widely used, starting the design process off with these types of patterns often results in a flow that seems right in mock-ups or wireframes but fails to solve actual customer needs.

The designer thinks: “I know what an on-boarding flow is. It’s a splash screen, a sign-up screen and a tutorial people can swipe through.” The resulting customer experience in filling in form fields, scrolling through 17 screens of terms & conditions (yes, you are required to scroll through all of them), granting location permissions (because “background location-tracking is required”), and skipping through 6 tutorial screens featuring critical knowledge like “Welcome to Hello-Bike.”

After maneuvering through all this, I found out there were no docking stations in central Amsterdam because of government regulation. So I actually couldn’t use the Hello-Bike service to ride to my hotel. Starting the design process from the perspective of the customer would likely have revealed the importance of communicating these kinds of constraints up front. Starting by selecting design patterns would not.

Lessons Learned:
  • Set expectations appropriately, so potential customers don’t end a lengthy sign-up process in disappointment or frustration.
  • While convenient, design patterns are no substitute for understanding and designing with your customers & their goals top of mind.
Having Desktop Bias

While modern mobile devices have been around for over ten years, desktop devices have had at least 3x more time to influence and bias our approach to software design. That’s why it’s not surprising to see desktop design concepts permeate mobile apps. In the case of Jump’s mobile on-boarding, they are all over the place.

Following the obligatory splash screen, Jump animates through a series of safety tips calling out the unique features of electric bikes. Unfortunately, so many steps follow these tips that I can’t imagine anyone remembering them when they are finally allowed to ride one of Jump’s electric bikes.

Next up are a series of permission dialogs for access to Motion & Fitness and Location data. Both requests are accompanied by explanatory text that suggests Jump needs access to this information in order to “gather data about how electric bikes affect travel patterns.” Sounds like a good thing for Jump, but it’s not clear why customers should participate or even care.

This mindset permeates the rest of Jump’s on-boarding as well: choose one of our bike “networks”, select one of our plans, verify your phone number, pick a 7 character password with numbers and uppercase letters, agree to our terms and conditions, put money into one of our accounts, etc. After ten steps of doing things for Jump and seeing no progress toward actually riding a bike, I abandoned at the “Enter Credit Card” step.

Perhaps someone at Jump heard completion rates for forms go up when you place each question on a separate screen (I’ve seen no evidence of this), but the cumulative effect of going through a desktop-design influenced e-commerce checkout flow one step at a time on my phone was quite painful.

Lessons Learned:
  • Make sure your customers always feel like they are making progress toward their goals, not yours.
  • Desktop paradigms often aren’t a great fit for mobile. For instance, do you really need a checkout form? As we’ll see later, no.
Right Time, Right Place

After abandoning the bike-sharing process with both Hello-Bike and Jump, I had my first successful on-boarding with Spin. That’s not to say there wasn’t a lot of room for improvement. With mobile on-boarding it’s not just what we ask people to do it’s also when we ask them to do it. Spin starts off with a tutorial, which explains they are smart, I can park anywhere, and scanning a bike’s QR code will let me ride it.

Turns out that’s not entirely true as I needed to give them my email address, create a password, provide location permissions, and agree to three separate terms of service. It’s only after this gauntlet, that I’m actually able to scan the QR code on the bike in front of me. Why couldn’t we just have started the process there?

It is worth noting, however, that Spin provides much better explanations for its permission requests. When requesting location permissions, Hello-Bike told me: “background-location tracking is required” and Jump explained I could help them “gather data about how electric bikes affect travel patterns.” Spin, on the other hand, explained they use location to help me find pick-up and drop off points. They also explained they needed camera permissions so I can scan the QR code on a bike to unlock it.

After I did, my next step was to reload my Spin account, with the only reloading option being $5. This immediately felt odd as the bike ride itself was advertised as $1. So if I never rode another Spin bike again, they had 4 more dollars from me... hmmmm. On a positive note, Spin integrated with Apple Pay which meant I simply had to tap a button on the side of my phone to approve payment. No checkout forms, shopping carts, or credit card entry forms required. See? We can do things in a mobile-native vs. desktop way.

Following the payment process, I was greeted with a another tutorial (these things sure are popular huh? too bad most people skip through them). This time 4 screens told me about parking requirements. But wait… didn’t the first tutorial tell me I could park anywhere? Next Spin asked to send me notifications with no explanation as to why I should agree. So I didn’t.

Once I rode the bike and got to my destination, I received a ride summary that told me my ride was free. That’s much appreciated but it left me asking again… couldn’t we have started there?

Lessons Learned:
  • When you surface information to customers is critical. Spin could have told me my ride was free well before asking me to fill my account with a minimum of $5. And their Parking tutorial was probably more appropriate after my ride when parking my bike, not before it.
  • Get people to your core value as soon as possible, but not sooner. It took 7 steps before I was able to scan the bike in front of me and 9 more steps before I could actually ride it. Every step that keeps customers from experiencing what makes you great, leaves them wondering why you’re not.
Tricky, Tricky

By now, Ofo’s mobile on-boarding process will seem familiar: location and notification permission asks without any useful explanations, an up-front tutorial, a phone number verification flow, a camera permission ask, and more.

For many mobile apps, phone number verification can replace the need for more traditional desktop computer influenced sign-up process that require people to enter their first and last names, email addresses, passwords, and more into a series of form fields. When you’re on a phone, all you need to verify it’s you is your phone number.

With this simplified account creation process, Ofo could have had me on my way with a quick QR code scan. But instead I got a subscription service promotion that suggested I could try the service for free. After tapping the “Try it Free” button, however, I ended up on a Choose your Plan page. It was only when I used the small back arrows (tricky, tricky) that I made it back to the QR code unlock process which let me ride the Ofo bike in front of me with no charge.

Lessons Learned:
  • Mobile device capabilities allow us to rethink how people can accomplish tasks. For instance, instead of multiple step sign-up forms, a two step phone verification process can establish someone’s account much quicker by using what mobile devices do well.
  • While companies have revenue and growth needs, unclear flows and UI entrapments are not the way to build long-term customer loyalty and growth. You may trick some people into subscribing to your service but they won’t like you for it.
But Why?

Starting Bird’s mobile on-boarding gave me high hopes that I had finally found a streamlined customer-centric process that delivered on the promise of fast & easy last-mile transportation (or micro-mobility, if you must).

Things started out typically, a splash screen, an email form field, a location permission ask, but then moved right to scanning the QR code of the scooter in front of me and asking me to pay the $1 required to get started. Great, I thought… I’ll be riding in no time as I instantly made it through Apple Pay’s confirmation screen.

As a quick aside, integrating native payment platforms can really accelerate the payment process and increase conversion. Hotel Tonight saw a 26% increase in conversion with Apple Pay and Wish used A/B testing to uncover a 2X conversion increase when they added Apple Pay support. Turns out people do prefer to just look (Face ID) or tap (Touch ID) to pay for things on their phones instead of entering credit card or banking account details into mobile keyboards.

But back to Bird... I scanned the QR code and authorized Apple Pay. Time to ride right? Not quite. Next I was asked to scan the front of my drivers’ license with no explanation of why. Odd, but I assumed it was a legal/safety thing and despite having a lot of privacy reservations got through it. Or so I thought because after this I had to scan the back of my drivers’ license, scroll through all 15 screens of a rental agreement, and tick off 6 checkboxes saying I agreed to wear a helmet, not ride downhill, and was over 18 (can’t they get that from my driver’s license?).

Then it was back to scanning the QR code again, turning down notification permissions, and slogging through a 4 screen tutorial which ended with even more rules. The whole process left me feeling the legal department had taken over control of Bird’s first time customer experience: rental contracts, local rules, driver’s license verifications, etc. -really not in line with the company’s brand message of “enjoy the ride”. I left being intimated by it.

Lessons Learned:
  • Rules and regulations do exist but mobile on-boarding flows shouldn’t be driven by them. There’s effective ways to balance legal requirements and customer experience. Push hard to find them.
  • When asking for personal (especially highly personal) information, explain why. Even just a sentence about why I had to scan my driver’s license would have helped me immensely with Bird’s process.
Core Value, ASAP

By now, we’ve seen how very similar companies can end up with very different mobile on-boarding designs and results. So how can companies balance all the requirements and steps involved in bike-sharing and still deliver a great first-time experience? By always looking at things from the perspective of your customer. Which Lime, while not perfect, does.

Lime doesn’t bother with a splash screen showing you their logo as a first step. Instead they tell you upfront that they know why you’re here with a large headline stating: “Start Riding Now”. Awesome. That’s what I’ve been trying to do this whole time. On this same screen are two streamlined sign-up options: phone number verification (which makes use of native device capabilities) and Facebook -both aimed at getting you started right away.

Next, Lime takes the time to explain why they are asking for location permissions with the clearest copy we’ve seen in all these examples: “to find nearby bikes and scooters”. Sadly, they don’t apply this same level of clarification to the next permission ask for Notifications. But smartly, they use a double dialog solution and if you say no (which I did), they try again with more clarity.

It’s become almost standard practice to just ask for notification permissions up front in mobile apps because up to 40% of people will just give them to you. So many apps figure, why not ask? Lots of people will say no but we’ll get some people saying yes. Personally, I feel this is an opportunity to improve for Lime.

Ignoring the notifications prompt, the rest of Lime’s on-boarding process is fast and efficient: scan the QR code (once again with a clear explanation of why camera permissions are needed), authorize Apple Pay to pay for your ride. Lime doesn’t either bother to provide other payment options. They know the user experience and conversion benefits of Apple Pay and rely on it exclusively.

And… that’s it. I’m riding. No tutorial! Shocking I know, but they do offer one on the map screen if you’d like to learn more before riding. User choice, not company requirement.

In their mobile on-boarding, Lime deftly navigated a number of significant hurdles: account set-up/verification, location & camera permissions and payment -the minimum amount necessary to ride and nothing more. They did so by explaining how each of these steps got me closer to my goal of riding and worked hard to minimize their requirements, often relying on native mobile functionality to make things as fast and easy as possible.

Lessons Learned:
  • It’s not about you, it’s about your customer. Put your customer’s goals front and center in your mobile on-boarding process. It starts from the first screen (i.e. “Start Riding Now”)
  • Lean into mobile-native solutions: phone verification, integrated payments, and more.
More On On-boarding

For a deeper look into mobile on-boarding design, check out this 20 minute segment of my Mobile design and data presentation at Google Conversions this year: You can also read Casey Winter’s article about on-boarding, which does a great job outlining the concept of getting people to your company’s core value as fast as possible, but not faster.

Wed, 12/31/1969 - 2:00pm
Syndicate content
©2003 - Present Akamai Design & Development.