This is part two of my series of articles on the Web Directions conference. Part one was a recap of Day #1, this post is about Day #2.
Hannah Donovan (Drip) – Souls & Machines
Patrick Hamann (Financial Times) – Embracing the networks
Martin Charlier (Rain Cloud) – Designing connected products
Vitaly Freedman (Smashing Magazine) – Smart Responsive Development
Souls & Machines by Hannah Donovan (@)
Hannah is a freelance designer who mainly worked in the Music industry at places such as LastFM.com, JAM, MTV, and more recently Drip. Hannah is chasing the interception between product & content: she designs for desires and not needs.
Hannah started with a personal story of when she blind-watched the Blade Runner movie on a rainy Sunday afternoon in 2008. She had absolutely no idea what the movie was about, so she had to stop watching after 10 minutes as she felt completely overwhelmed by the story and graphics. She uses this story as a personal example of how content without context is confusing, and content without perspective has no feeling.
The debate of humans vs computers has been going on for year (e.g. at South By South West). While computers connect us in ways we cannot, human beings definitely connect us is ways computers cannot. For instance the best music recommendations come from friends. With music it is important to provide this connection with people and with time. Only humans also can provide perspective through emotions, and it is important to have a strong point of view when creating an experience.
Hannah also made her talk very relevant and poignant by showing us how the digital era has affected the music industry, as a proof that the value of content is diminishing. Hence the need to design for a “post-content” world, i.e. design for the space around content by providing, context, connection, and perspective.
Our web applications are not living up to their contract due to the variances in network as well as trying to shoehorn desktop experiences to mobile. As we have no control on the distribution over the network, Patrick reminds us of The 8 Fallacies of Distributed Computing (Peter Deutsch – Sun Microsystems 1994) as well as Sam Newman’s quote from Building Microservices:
Unreliability of networks forces people to think about system with failure in mind.
Indeed, as websites have grown very large, failure is unavoidable. Below is a picture of the requests made by the ft.com website using this really cool app:
Patrick provides insight into how to monitor and test failures.
- He describes Single Point of Failures (SPOFs) as a part of your website which, if failing, will stop the entire site from rendering.
- Facebook, who relentlessly performance tests its apps for mobile devices, has created 2G Tuesdays where all employees are exposed to a low cellular bandwidth.
- Flaky network connections can also be simulated with a library like comcast.
- File load times can be measured with webpagetest.com or better the Resource Timing API.
Beyond testing for failures, web developers and designers should embrace failures. From a design point of view Patrick advises to:
- Beware that spinners give the perception that things are slow: they are acceptable but always use them in context.
- Use skeleton screens for displaying content placeholders while they load.
- Re-use familiar UI patterns with error messages.
- Visualise the state of the network.
- Use Resource Hints (preconnect, prefetch, prerender) to optimize connections and fetch or execute resource while the network is available.
- Do not bundle all your assets together (this is a hack that will become harmful with HTTP/2). Instead group together what changes often or rarely, so that they are not always re-downloaded (e.g. group together libraries and utilities, but do not bundle them with application files).
Martin has a background of industrial design, service design, and UX. This talk is a summary of what he discusses in his book.
Martin starts his talk explaining how the boundary between physical and digital is getting finer, creating a new generation of products with:
- An extended value proposition through connected devices (e.g. iHealth scale).
- Digital business models applied to industrial goods (e.g. freemium or micro payments).
- Digital services going physical (e.g. smart locks, Nespresso Zenius).
- New kind of products (e.g. Amazon Echo or Dash Button).
- A device ecosystem (e.g. the battery as delivery mechanism).
Designing for connected products is not just UX (most visible) and industrial design (least visible), it is also being able to:
- Formulate a value proposition – What does it do?
- Describe the conceptual model – How does it work?
- Design the interaction model – How do I use it?
Some design techniques for productisation can help formulate the value proposition early such as writing the press release or sketching the box. For the conceptual model, because connected systems are more complex, designers must help connect technical differences to users (e.g. light bulb with wifi vs. bluetooth hubs): explain your system model or develop a really good way to simplify it.
The last part of Martin’s talk was to introduce the concept of interusability, which comes with focussing product design on:
- Composition: How functionality is distributed across connected devices. Distributed functionality depending on the context of use (e.g. Tado thermometer, Skydrop sprinkler controller).
- Consistency: Same terminology, same constructs across devices – while following platforms conventions (e.g. Hackaball).
- Continuity: Design fluent cross-device interactions.
Finally, Martin concluded by stressing that designing for IoT it hard, and that building the right product is more important that building the product right. Hence the need for lightweight prototyping techniques to validate ideas.
Smart Responsive Development by Vitaly Freedman (@)
Vitaly is the Editor in Chief and co-founder of Smashing Magazine. His talk was mainly around providing CSS solutions to very specific UI needs like:
- Creating a GLITHC effect with DIVs overlay.
- Having links within links and using <object> for that.
- Using object-fit to fit an image to a smaller section and keep the ratio (e.g. object-fit: cover).
- Creating a responsive object map with SVG.
- How to use display : flex to align vertically input label, field, and button, as well as aligning align text and pictures.
- Using SVG and svgmask container to display an image over a transparent gradient background (there is an online tool to do that now).
- How to use currentColor to inherit and re-use the color of parent or surrounding elements.
- Using word-wrap and -webkit-hyphens to break a long word (like in German).
- How to use CSS pseudo elements to highlight table cells and rows.
- How to use rem units in the component root and em units for all sub-component elements to create components that really scale.
- How to use mix-blend-mode to adapt the color of an element depending on the color of its background (e.g. mix-blend-mode: difference or mix-blend-mode: darken).
- Using CSS not selector to apply a style to only some elements.
- Using viewport units (e.g. height: 900vh) to make sure a hero image (landing page full screen) is always above the fold.
Then Vitaly talks about how to use modularity to establish universal styling rules between Designer and Developers:
- Establish a vocabulary as foundation of a design system.
- Identify and name design modules.
- Document the grammar (use lobotomised selectors).
Finally Vitaly finishes with a rant about forms. Stop designing forms. Design User Interfaces instead (www.typeform.com)