Оценка на читателите: / 9
Слаба статияОтлична статия 

Новини от света на уеб дизайна и СЕО

Представям Ви синдикирани новини от няколко от водещите сайтове в областта на уеб дизайна и СЕО - оптимизирането за търсачки.

A List Apart: The Full Feed
Articles for people who make web sites.
  • Mobile-First CSS: Is It Time for a Rethink?

    The mobile-first design methodology is great—it focuses on what really matters to the user, it’s well-practiced, and it’s been a common design pattern for years. So developing your CSS mobile-first should also be great, too…right? 

    Well, not necessarily. Classic mobile-first CSS development is based on the principle of overwriting style declarations: you begin your CSS with default style declarations, and overwrite and/or add new styles as you add breakpoints with min-width media queries for larger viewports (for a good overview see “What is Mobile First CSS and Why Does It Rock?”). But all those exceptions create complexity and inefficiency, which in turn can lead to an increased testing effort and a code base that’s harder to maintain. Admit it—how many of us willingly want that?

    On your own projects, mobile-first CSS may yet be the best tool for the job, but first you need to evaluate just how appropriate it is in light of the visual design and user interactions you’re working on. To help you get started, here’s how I go about tackling the factors you need to watch for, and I’ll discuss some alternate solutions if mobile-first doesn’t seem to suit your project.

    Advantages of mobile-first

    Some of the things to like with mobile-first CSS development—and why it’s been the de facto development methodology for so long—make a lot of sense:

    Development hierarchy. One thing you undoubtedly get from mobile-first is a nice development hierarchy—you just focus on the mobile view and get developing. 

    Tried and tested. It’s a tried and tested methodology that’s worked for years for a reason: it solves a problem really well.

    Prioritizes the mobile view. The mobile view is the simplest and arguably the most important, as it encompasses all the key user journeys, and often accounts for a higher proportion of user visits (depending on the project). 

    Prevents desktop-centric development. As development is done using desktop computers, it can be tempting to initially focus on the desktop view. But thinking about mobile from the start prevents us from getting stuck later on; no one wants to spend their time retrofitting a desktop-centric site to work on mobile devices!

    Disadvantages of mobile-first

    Setting style declarations and then overwriting them at higher breakpoints can lead to undesirable ramifications:

    More complexity. The farther up the breakpoint hierarchy you go, the more unnecessary code you inherit from lower breakpoints. 

    Higher CSS specificity. Styles that have been reverted to their browser default value in a class name declaration now have a higher specificity. This can be a headache on large projects when you want to keep the CSS selectors as simple as possible.

    Requires more regression testing. Changes to the CSS at a lower view (like adding a new style) requires all higher breakpoints to be regression tested.

    The browser can’t prioritize CSS downloads. At wider breakpoints, classic mobile-first min-width media queries don’t leverage the browser’s capability to download CSS files in priority order.

    The problem of property value overrides

    There is nothing inherently wrong with overwriting values; CSS was designed to do just that. Still, inheriting incorrect values is unhelpful and can be burdensome and inefficient. It can also lead to increased style specificity when you have to overwrite styles to reset them back to their defaults, something that may cause issues later on, especially if you are using a combination of bespoke CSS and utility classes. We won’t be able to use a utility class for a style that has been reset with a higher specificity.

    With this in mind, I’m developing CSS with a focus on the default values much more these days. Since there’s no specific order, and no chains of specific values to keep track of, this frees me to develop breakpoints simultaneously. I concentrate on finding common styles and isolating the specific exceptions in closed media query ranges (that is, any range with a max-width set). 

    This approach opens up some opportunities, as you can look at each breakpoint as a clean slate. If a component’s layout looks like it should be based on Flexbox at all breakpoints, it’s fine and can be coded in the default style sheet. But if it looks like Grid would be much better for large screens and Flexbox for mobile, these can both be done entirely independently when the CSS is put into closed media query ranges. Also, developing simultaneously requires you to have a good understanding of any given component in all breakpoints up front. This can help surface issues in the design earlier in the development process. We don’t want to get stuck down a rabbit hole building a complex component for mobile, and then get the designs for desktop and find they are equally complex and incompatible with the HTML we created for the mobile view! 

    Though this approach isn’t going to suit everyone, I encourage you to give it a try. There are plenty of tools out there to help with concurrent development, such as Responsively App, Blisk, and many others. 

    Having said that, I don’t feel the order itself is particularly relevant. If you are comfortable with focusing on the mobile view, have a good understanding of the requirements for other breakpoints, and prefer to work on one device at a time, then by all means stick with the classic development order. The important thing is to identify common styles and exceptions so you can put them in the relevant stylesheet—a sort of manual tree-shaking process! Personally, I find this a little easier when working on a component across breakpoints, but that’s by no means a requirement.

    Closed media query ranges in practice 

    In classic mobile-first CSS we overwrite the styles, but we can avoid this by using media query ranges. To illustrate the difference (I’m using SCSS for brevity), let’s assume there are three visual designs: 

    • smaller than 768
    • from 768 to below 1024
    • 1024 and anything larger 

    Take a simple example where a block-level element has a default padding of “20px,” which is overwritten at tablet to be “40px” and set back to “20px” on desktop.

    Classic min-width mobile-first

    .my-block {
      padding: 20px;
      @media (min-width: 768px) {
        padding: 40px;
      }
      @media (min-width: 1024px) {
        padding: 20px;
      }
    }

    Closed media query range

    .my-block {
      padding: 20px;
      @media (min-width: 768px) and (max-width: 1023.98px) {
        padding: 40px;
      }
    }

    The subtle difference is that the mobile-first example sets the default padding to “20px” and then overwrites it at each breakpoint, setting it three times in total. In contrast, the second example sets the default padding to “20px” and only overrides it at the relevant breakpoint where it isn’t the default value (in this instance, tablet is the exception).

    The goal is to: 

    • Only set styles when needed. 
    • Not set them with the expectation of overwriting them later on, again and again. 

    To this end, closed media query ranges are our best friend. If we need to make a change to any given view, we make it in the CSS media query range that applies to the specific breakpoint. We’ll be much less likely to introduce unwanted alterations, and our regression testing only needs to focus on the breakpoint we have actually edited. 

    Taking the above example, if we find that .my-block spacing on desktop is already accounted for by the margin at that breakpoint, and since we want to remove the padding altogether, we could do this by setting the mobile padding in a closed media query range.

    .my-block {
      @media (max-width: 767.98px) {
        padding: 20px;
      }
      @media (min-width: 768px) and (max-width: 1023.98px) {
        padding: 40px;
      }
    }

    The browser default padding for our block is “0,” so instead of adding a desktop media query and using unset or “0” for the padding value (which we would need with mobile-first), we can wrap the mobile padding in a closed media query (since it is now also an exception) so it won’t get picked up at wider breakpoints. At the desktop breakpoint, we won’t need to set any padding style, as we want the browser default value.

    Bundling versus separating the CSS

    Back in the day, keeping the number of requests to a minimum was very important due to the browser’s limit of concurrent requests (typically around six). As a consequence, the use of image sprites and CSS bundling was the norm, with all the CSS being downloaded in one go, as one stylesheet with highest priority. 

    With HTTP/2 and HTTP/3 now on the scene, the number of requests is no longer the big deal it used to be. This allows us to separate the CSS into multiple files by media query. The clear benefit of this is the browser can now request the CSS it currently needs with a higher priority than the CSS it doesn’t. This is more performant and can reduce the overall time page rendering is blocked.

    Which HTTP version are you using?

    To determine which version of HTTP you’re using, go to your website and open your browser’s dev tools. Next, select the Network tab and make sure the Protocol column is visible. If “h2” is listed under Protocol, it means HTTP/2 is being used. 

    Note: to view the Protocol in your browser’s dev tools, go to the Network tab, reload your page, right-click any column header (e.g., Name), and check the Protocol column.

    Chrome dev tools, Network tab filtered by document, Protocol column
    Note: for a summarized comparison, see ImageKit’s “HTTP/2 vs. HTTP/1.”

    Also, if your site is still using HTTP/1...WHY?!! What are you waiting for? There is excellent user support for HTTP/2.

    Splitting the CSS

    Separating the CSS into individual files is a worthwhile task. Linking the separate CSS files using the relevant media attribute allows the browser to identify which files are needed immediately (because they’re render-blocking) and which can be deferred. Based on this, it allocates each file an appropriate priority.

    In the following example of a website visited on a mobile breakpoint, we can see the mobile and default CSS are loaded with “Highest” priority, as they are currently needed to render the page. The remaining CSS files (print, tablet, and desktop) are still downloaded in case they’ll be needed later, but with “Lowest” priority. 

    Chrome dev tools, Network tab filtered by css, Priority column

    With bundled CSS, the browser will have to download the CSS file and parse it before rendering can start.

    While, as noted, with the CSS separated into different files linked and marked up with the relevant media attribute, the browser can prioritize the files it currently needs. Using closed media query ranges allows the browser to do this at all widths, as opposed to classic mobile-first min-width queries, where the desktop browser would have to download all the CSS with Highest priority. We can’t assume that desktop users always have a fast connection. For instance, in many rural areas, internet connection speeds are still slow. 

    The media queries and number of separate CSS files will vary from project to project based on project requirements, but might look similar to the example below.

    Bundled CSS

    <link href="/site.css" rel="stylesheet">

    This single file contains all the CSS, including all media queries, and it will be downloaded with Highest priority.

    Separated CSS

    <link href="/default.css" rel="stylesheet"><link href="/mobile.css" media="screen and (max-width: 767.98px)" rel="stylesheet"><link href="/tablet.css" media="screen and (min-width: 768px) and (max-width: 1083.98px)" rel="stylesheet"><link href="/desktop.css" media="screen and (min-width: 1084px)" rel="stylesheet"><link href="/print.css" media="print" rel="stylesheet">

    Separating the CSS and specifying a media attribute value on each link tag allows the browser to prioritize what it currently needs. Out of the five files listed above, two will be downloaded with Highest priority: the default file, and the file that matches the current media query. The others will be downloaded with Lowest priority.

    Depending on the project’s deployment strategy, a change to one file (mobile.css, for example) would only require the QA team to regression test on devices in that specific media query range. Compare that to the prospect of deploying the single bundled site.css file, an approach that would normally trigger a full regression test.

    Moving on

    The uptake of mobile-first CSS was a really important milestone in web development; it has helped front-end developers focus on mobile web applications, rather than developing sites on desktop and then attempting to retrofit them to work on other devices.

    I don’t think anyone wants to return to that development model again, but it’s important we don’t lose sight of the issue it highlighted: that things can easily get convoluted and less efficient if we prioritize one particular device—any device—over others. For this reason, focusing on the CSS in its own right, always mindful of what is the default setting and what’s an exception, seems like the natural next step. I’ve started noticing small simplifications in my own CSS, as well as other developers’, and that testing and maintenance work is also a bit more simplified and productive. 

    In general, simplifying CSS rule creation whenever we can is ultimately a cleaner approach than going around in circles of overrides. But whichever methodology you choose, it needs to suit the project. Mobile-first may—or may not—turn out to be the best choice for what’s involved, but first you need to solidly understand the trade-offs you’re stepping into.

  • Designers, (Re)define Success First

    About two and a half years ago, I introduced the idea of daily ethical design. It was born out of my frustration with the many obstacles to achieving design that’s usable and equitable; protects people’s privacy, agency, and focus; benefits society; and restores nature. I argued that we need to overcome the inconveniences that prevent us from acting ethically and that we need to elevate design ethics to a more practical level by structurally integrating it into our daily work, processes, and tools.

    Unfortunately, we’re still very far from this ideal. 

    At the time, I didn’t know yet how to structurally integrate ethics. Yes, I had found some tools that had worked for me in previous projects, such as using checklists, assumption tracking, and “dark reality” sessions, but I didn’t manage to apply those in every project. I was still struggling for time and support, and at best I had only partially achieved a higher (moral) quality of design—which is far from my definition of structurally integrated.

    I decided to dig deeper for the root causes in business that prevent us from practicing daily ethical design. Now, after much research and experimentation, I believe that I’ve found the key that will let us structurally integrate ethics. And it’s surprisingly simple! But first we need to zoom out to get a better understanding of what we’re up against.

    Influence the system

    Sadly, we’re trapped in a capitalistic system that reinforces consumerism and inequality, and it’s obsessed with the fantasy of endless growth. Sea levels, temperatures, and our demand for energy continue to rise unchallenged, while the gap between rich and poor continues to widen. Shareholders expect ever-higher returns on their investments, and companies feel forced to set short-term objectives that reflect this. Over the last decades, those objectives have twisted our well-intended human-centered mindset into a powerful machine that promotes ever-higher levels of consumption. When we’re working for an organization that pursues “double-digit growth” or “aggressive sales targets” (which is 99 percent of us), that’s very hard to resist while remaining human friendly. Even with our best intentions, and even though we like to say that we create solutions for people, we’re a part of the problem.

    What can we do to change this?

    We can start by acting on the right level of the system. Donella H. Meadows, a system thinker, once listed ways to influence a system in order of effectiveness. When you apply these to design, you get:

    • At the lowest level of effectiveness, you can affect numbers such as usability scores or the number of design critiques. But none of that will change the direction of a company.
    • Similarly, affecting buffers (such as team budgets), stocks (such as the number of designers), flows (such as the number of new hires), and delays (such as the time that it takes to hear about the effect of design) won’t significantly affect a company.
    • Focusing instead on feedback loops such as management control, employee recognition, or design-system investments can help a company become better at achieving its objectives. But that doesn’t change the objectives themselves, which means that the organization will still work against your ethical-design ideals.
    • The next level, information flows, is what most ethical-design initiatives focus on now: the exchange of ethical methods, toolkits, articles, conferences, workshops, and so on. This is also where ethical design has remained mostly theoretical. We’ve been focusing on the wrong level of the system all this time.
    • Take rules, for example—they beat knowledge every time. There can be widely accepted rules, such as how finance works, or a scrum team’s definition of done. But ethical design can also be smothered by unofficial rules meant to maintain profits, often revealed through comments such as “the client didn’t ask for it” or “don’t make it too big.”
    • Changing the rules without holding official power is very hard. That’s why the next level is so influential: self-organization. Experimentation, bottom-up initiatives, passion projects, self-steering teams—all of these are examples of self-organization that improve the resilience and creativity of a company. It’s exactly this diversity of viewpoints that’s needed to structurally tackle big systemic issues like consumerism, wealth inequality, and climate change.
    • Yet even stronger than self-organization are objectives and metrics. Our companies want to make more money, which means that everything and everyone in the company does their best to… make the company more money. And once I realized that profit is nothing more than a measurement, I understood how crucial a very specific, defined metric can be toward pushing a company in a certain direction.

    The takeaway? If we truly want to incorporate ethics into our daily design practice, we must first change the measurable objectives of the company we work for, from the bottom up.

    Redefine success

    Traditionally, we consider a product or service successful if it’s desirable to humans, technologically feasible, and financially viable. You tend to see these represented as equals; if you type the three words in a search engine, you’ll find diagrams of three equally sized, evenly arranged circles.

    A Venn diagram with three overlapping circles representing Viable, Desirable, and Feasible with the target directly in the central intersection of all three.

    But in our hearts, we all know that the three dimensions aren’t equally weighted: it’s viability that ultimately controls whether a product will go live. So a more realistic representation might look like this:

    A Venn diagram with two circles (Desirable and Feasible) overlapping. An arrow points from their intersection to a separate circle marked as Viable, with a target inside it.

    Desirability and feasibility are the means; viability is the goal. Companies—outside of nonprofits and charities—exist to make money.

    A genuinely purpose-driven company would try to reverse this dynamic: it would recognize finance for what it was intended for: a means. So both feasibility and viability are means to achieve what the company set out to achieve. It makes intuitive sense: to achieve most anything, you need resources, people, and money. (Fun fact: the Italian language knows no difference between feasibility and viability; both are simply fattibilità.)

    A Venn diagram with two circles (Viable and Feasible) overlapping. An arrow points from their intersection to a separate circle marked as Desirable, with a target inside it.

    But simply swapping viable for desirable isn’t enough to achieve an ethical outcome. Desirability is still linked to consumerism because the associated activities aim to identify what people want—whether it’s good for them or not. Desirability objectives, such as user satisfaction or conversion, don’t consider whether a product is healthy for people. They don’t prevent us from creating products that distract or manipulate people or stop us from contributing to society’s wealth inequality. They’re unsuitable for establishing a healthy balance with nature.

    There’s a fourth dimension of success that’s missing: our designs also need to be ethical in the effect that they have on the world.

    The original Venn diagram of three circles (Desirable, Viable, and Feasible) overlapping with the target in their central intersection. This time, a fourth circle named Ethical encompasses all three.

    This is hardly a new idea. Many similar models exist, some calling the fourth dimension accountability, integrity, or responsibility. What I’ve never seen before, however, is the necessary step that comes after: to influence the system as designers and to make ethical design more practical, we must create objectives for ethical design that are achievable and inspirational. There’s no one way to do this because it highly depends on your culture, values, and industry. But I’ll give you the version that I developed with a group of colleagues at a design agency. Consider it a template to get started.

    Pursue well-being, equity, and sustainability

    We created objectives that address design’s effect on three levels: individual, societal, and global.

    An objective on the individual level tells us what success is beyond the typical focus of usability and satisfaction—instead considering matters such as how much time and attention is required from users. We pursued well-being:

    We create products and services that allow for people’s health and happiness. Our solutions are calm, transparent, nonaddictive, and nonmisleading. We respect our users’ time, attention, and privacy, and help them make healthy and respectful choices.

    An objective on the societal level forces us to consider our impact beyond just the user, widening our attention to the economy, communities, and other indirect stakeholders. We called this objective equity:

    We create products and services that have a positive social impact. We consider economic equality, racial justice, and the inclusivity and diversity of people as teams, users, and customer segments. We listen to local culture, communities, and those we affect.

    Finally, the objective on the global level aims to ensure that we remain in balance with the only home we have as humanity. Referring to it simply as sustainability, our definition was:

    We create products and services that reward sufficiency and reusability. Our solutions support the circular economy: we create value from waste, repurpose products, and prioritize sustainable choices. We deliver functionality instead of ownership, and we limit energy use.

    In short, ethical design (to us) meant achieving wellbeing for each user and an equitable value distribution within society through a design that can be sustained by our living planet. When we introduced these objectives in the company, for many colleagues, design ethics and responsible design suddenly became tangible and achievable through practical—and even familiar—actions.

    Measure impact 

    But defining these objectives still isn’t enough. What truly caught the attention of senior management was the fact that we created a way to measure every design project’s well-being, equity, and sustainability.

    This overview lists example metrics that you can use as you pursue well-being, equity, and sustainability:

    A list of example metrics for ethical impact at individual, societal, and planetary levels. Individual well-being examples include increased calmness, lower screen time, improved safety and privacy. Societal equity examples include improved accessibility, increased team and stakeholder diversity, and increased progressive enhancement. Finally, planetary sustainability examples include reduced energy use, reduced website carbon emissions and device turnover, and increased expert involvement.

    There’s a lot of power in measurement. As the saying goes, what gets measured gets done. Donella Meadows once shared this example:

    “If the desired system state is national security, and that is defined as the amount of money spent on the military, the system will produce military spending. It may or may not produce national security.”

    This phenomenon explains why desirability is a poor indicator of success: it’s typically defined as the increase in customer satisfaction, session length, frequency of use, conversion rate, churn rate, download rate, and so on. But none of these metrics increase the health of people, communities, or ecosystems. What if instead we measured success through metrics for (digital) well-being, such as (reduced) screen time or software energy consumption?

    There’s another important message here. Even if we set an objective to build a calm interface, if we were to choose the wrong metric for calmness—say, the number of interface elements—we could still end up with a screen that induces anxiety. Choosing the wrong metric can completely undo good intentions. 

    Additionally, choosing the right metric is enormously helpful in focusing the design team. Once you go through the exercise of choosing metrics for our objectives, you’re forced to consider what success looks like concretely and how you can prove that you’ve reached your ethical objectives. It also forces you to consider what we as designers have control over: what can I include in my design or change in my process that will lead to the right type of success? The answer to this question brings a lot of clarity and focus.

    And finally, it’s good to remember that traditional businesses run on measurements, and managers love to spend much time discussing charts (ideally hockey-stick shaped)—especially if they concern profit, the one-above-all of metrics. For good or ill, to improve the system, to have a serious discussion about ethical design with managers, we’ll need to speak that business language.

    Practice daily ethical design

    Once you’ve defined your objectives and you have a reasonable idea of the potential metrics for your design project, only then do you have a chance to structurally practice ethical design. It “simply” becomes a matter of using your creativity and choosing from all the knowledge and toolkits already available to you.

    A set of example methods and tools for practicing at the individual, societal, and planetary level. Individual tools include the principle of minimum necessary data, white-hat persuasion techniques, calm-technology guidelines, and more. Societal tools include stakeholder mapping, inclusive sampling and testing, progressive enhancement, accessibility principles, and more. Planetary tools include the flourishing business canvas, extended-service blueprint, website carbon calculators, product-lifecycle mapping, and more.

    I think this is quite exciting! It opens a whole new set of challenges and considerations for the design process. Should you go with that energy-consuming video or would a simple illustration be enough? Which typeface is the most calm and inclusive? Which new tools and methods do you use? When is the website’s end of life? How can you provide the same service while requiring less attention from users? How do you make sure that those who are affected by decisions are there when those decisions are made? How can you measure our effects?

    The redefinition of success will completely change what it means to do good design.

    There is, however, a final piece of the puzzle that’s missing: convincing your client, product owner, or manager to be mindful of well-being, equity, and sustainability. For this, it’s essential to engage stakeholders in a dedicated kickoff session.

    Kick it off or fall back to status quo

    The kickoff is the most important meeting that can be so easy to forget to include. It consists of two major phases: 1) the alignment of expectations, and 2) the definition of success.

    In the first phase, the entire (design) team goes over the project brief and meets with all the relevant stakeholders. Everyone gets to know one another and express their expectations on the outcome and their contributions to achieving it. Assumptions are raised and discussed. The aim is to get on the same level of understanding and to in turn avoid preventable miscommunications and surprises later in the project.

    For example, for a recent freelance project that aimed to design a digital platform that facilitates US student advisors’ documentation and communication, we conducted an online kickoff with the client, a subject-matter expert, and two other designers. We used a combination of canvases on Miro: one with questions from “Manual of Me” (to get to know each other), a Team Canvas (to express expectations), and a version of the Project Canvas to align on scope, timeline, and other practical matters.

    The above is the traditional purpose of a kickoff. But just as important as expressing expectations is agreeing on what success means for the project—in terms of desirability, viability, feasibility, and ethics. What are the objectives in each dimension?

    Agreement on what success means at such an early stage is crucial because you can rely on it for the remainder of the project. If, for example, the design team wants to build an inclusive app for a diverse user group, they can raise diversity as a specific success criterion during the kickoff. If the client agrees, the team can refer back to that promise throughout the project. “As we agreed in our first meeting, having a diverse user group that includes A and B is necessary to build a successful product. So we do activity X and follow research process Y.” Compare those odds to a situation in which the team didn’t agree to that beforehand and had to ask for permission halfway through the project. The client might argue that that came on top of the agreed scope—and she’d be right.

    In the case of this freelance project, to define success I prepared a round canvas that I call the Wheel of Success. It consists of an inner ring, meant to capture ideas for objectives, and a set of outer rings, meant to capture ideas on how to measure those objectives. The rings are divided into five dimensions of successful design: healthy, equitable, sustainable, desirable, feasible, and viable.

    The wheel of success. The central circle reads 'The product is a success when it is'. The next ring outside lists example values such as healthy, equitable, sustainable, viable, feasible, and desirable. The next ring out lists out measurable objectives for those values, and the outermost ring lists tools that can measure those objectives.

    We went through each dimension, writing down ideas on digital sticky notes. Then we discussed our ideas and verbally agreed on the most important ones. For example, our client agreed that sustainability and progressive enhancement are important success criteria for the platform. And the subject-matter expert emphasized the importance of including students from low-income and disadvantaged groups in the design process.

    After the kickoff, we summarized our ideas and shared understanding in a project brief that captured these aspects:

    • the project’s origin and purpose: why are we doing this project?
    • the problem definition: what do we want to solve?
    • the concrete goals and metrics for each success dimension: what do we want to achieve?
    • the scope, process, and role descriptions: how will we achieve it?

    With such a brief in place, you can use the agreed-upon objectives and concrete metrics as a checklist of success, and your design team will be ready to pursue the right objective—using the tools, methods, and metrics at their disposal to achieve ethical outcomes.

    A drawing of a set of mountains that also looks vaguely like a graph. The leftmost valley has 'Pursue the right objective' pointing at it. The middle valley has 'Solve the right problem' and the rightmost valley is labelled 'Build the right solution.' Below the mountains, a timeline shows from left to right: Kick-off, Problem space, Solution space, and Development.

    Conclusion

    Over the past year, quite a few colleagues have asked me, “Where do I start with ethical design?” My answer has always been the same: organize a session with your stakeholders to (re)define success. Even though you might not always be 100 percent successful in agreeing on goals that cover all responsibility objectives, that beats the alternative (the status quo) every time. If you want to be an ethical, responsible designer, there’s no skipping this step.

    To be even more specific: if you consider yourself a strategic designer, your challenge is to define ethical objectives, set the right metrics, and conduct those kick-off sessions. If you consider yourself a system designer, your starting point is to understand how your industry contributes to consumerism and inequality, understand how finance drives business, and brainstorm which levers are available to influence the system on the highest level. Then redefine success to create the space to exercise those levers.

    And for those who consider themselves service designers or UX designers or UI designers: if you truly want to have a positive, meaningful impact, stay away from the toolkits and meetups and conferences for a while. Instead, gather your colleagues and define goals for well-being, equity, and sustainability through design. Engage your stakeholders in a workshop and challenge them to think of ways to achieve and measure those ethical goals. Take their input, make it concrete and visible, ask for their agreement, and hold them to it.

    Otherwise, I’m genuinely sorry to say, you’re wasting your precious time and creative energy.

    Of course, engaging your stakeholders in this way can be uncomfortable. Many of my colleagues expressed doubts such as “What will the client think of this?,” “Will they take me seriously?,” and “Can’t we just do it within the design team instead?” In fact, a product manager once asked me why ethics couldn’t just be a structured part of the design process—to just do it without spending the effort to define ethical objectives. It’s a tempting idea, right? We wouldn’t have to have difficult discussions with stakeholders about what values or which key-performance indicators to pursue. It would let us focus on what we like and do best: designing.

    But as systems theory tells us, that’s not enough. For those of us who aren’t from marginalized groups and have the privilege to be able to speak up and be heard, that uncomfortable space is exactly where we need to be if we truly want to make a difference. We can’t remain within the design-for-designers bubble, enjoying our privileged working-from-home situation, disconnected from the real world out there. For those of us who have the possibility to speak up and be heard: if we solely keep talking about ethical design and it remains at the level of articles and toolkits—we’re not designing ethically. It’s just theory. We need to actively engage our colleagues and clients by challenging them to redefine success in business.

    With a bit of courage, determination, and focus, we can break out of this cage that finance and business-as-usual have built around us and become facilitators of a new type of business that can see beyond financial value. We just need to agree on the right objectives at the start of each design project, find the right metrics, and realize that we already have everything that we need to get started. That’s what it means to do daily ethical design.

    For their inspiration and support over the years, I would like to thank Emanuela Cozzi Schettini, José Gallegos, Annegret Bönemann, Ian Dorr, Vera Rademaker, Virginia Rispoli, Cecilia Scolaro, Rouzbeh Amini, and many others.

  • Breaking Out of the Box

    CSS is about styling boxes. In fact, the whole web is made of boxes, from the browser viewport to elements on a page. But every once in a while a new feature comes along that makes us rethink our design approach.

    Round displays, for example, make it fun to play with circular clip areas. Mobile screen notches and virtual keyboards offer challenges to best organize content that stays clear of them. And dual screen or foldable devices make us rethink how to best use available space in a number of different device postures.

    Sketches of a round display, a common rectangular mobile display, and a device with a foldable display.

    These recent evolutions of the web platform made it both more challenging and more interesting to design products. They’re great opportunities for us to break out of our rectangular boxes.

    I’d like to talk about a new feature similar to the above: the Window Controls Overlay for Progressive Web Apps (PWAs).

    Progressive Web Apps are blurring the lines between apps and websites. They combine the best of both worlds. On one hand, they’re stable, linkable, searchable, and responsive just like websites. On the other hand, they provide additional powerful capabilities, work offline, and read files just like native apps.

    As a design surface, PWAs are really interesting because they challenge us to think about what mixing web and device-native user interfaces can be. On desktop devices in particular, we have more than 40 years of history telling us what applications should look like, and it can be hard to break out of this mental model.

    At the end of the day though, PWAs on desktop are constrained to the window they appear in: a rectangle with a title bar at the top.

    Here’s what a typical desktop PWA app looks like:

    Sketches of two rectangular user interfaces representing the desktop Progressive Web App status quo on the macOS and Windows operating systems, respectively. 

    Sure, as the author of a PWA, you get to choose the color of the title bar (using the Web Application Manifest theme_color property), but that’s about it.

    What if we could think outside this box, and reclaim the real estate of the app’s entire window? Doing so would give us a chance to make our apps more beautiful and feel more integrated in the operating system.

    This is exactly what the Window Controls Overlay offers. This new PWA functionality makes it possible to take advantage of the full surface area of the app, including where the title bar normally appears.

    About the title bar and window controls

    Let’s start with an explanation of what the title bar and window controls are.

    The title bar is the area displayed at the top of an app window, which usually contains the app’s name. Window controls are the affordances, or buttons, that make it possible to minimize, maximize, or close the app’s window, and are also displayed at the top.

    A sketch of a rectangular application user interface highlighting the title bar area and window control buttons.

    Window Controls Overlay removes the physical constraint of the title bar and window controls areas. It frees up the full height of the app window, enabling the title bar and window control buttons to be overlaid on top of the application’s web content. 

    A sketch of a rectangular application user interface using Window Controls Overlay. The title bar and window controls are no longer in an area separated from the app’s content.

    If you are reading this article on a desktop computer, take a quick look at other apps. Chances are they’re already doing something similar to this. In fact, the very web browser you are using to read this uses the top area to display tabs.

    A screenshot of the top area of a browser’s user interface showing a group of tabs that share the same horizontal space as the app window controls.

    Spotify displays album artwork all the way to the top edge of the application window.

    A screenshot of an album in Spotify’s desktop application. Album artwork spans the entire width of the main content area, all the way to the top and right edges of the window, and the right edge of the main navigation area on the left side. The application and album navigation controls are overlaid directly on top of the album artwork.

    Microsoft Word uses the available title bar space to display the auto-save and search functionalities, and more.

    A screenshot of Microsoft Word’s toolbar interface. Document file information, search, and other functionality appear at the top of the window, sharing the same horizontal space as the app’s window controls.

    The whole point of this feature is to allow you to make use of this space with your own content while providing a way to account for the window control buttons. And it enables you to offer this modified experience on a range of platforms while not adversely affecting the experience on browsers or devices that don’t support Window Controls Overlay. After all, PWAs are all about progressive enhancement, so this feature is a chance to enhance your app to use this extra space when it’s available.

    Let’s use the feature

    For the rest of this article, we’ll be working on a demo app to learn more about using the feature.

    The demo app is called 1DIV. It’s a simple CSS playground where users can create designs using CSS and a single HTML element.

    The app has two pages. The first lists the existing CSS designs you’ve created:

    A screenshot of the 1DIV app displaying a thumbnail grid of CSS designs a user created.

    The second page enables you to create and edit CSS designs:

    A screenshot of the 1DIV app editor page. The top half of the window displays a rendered CSS design, and a text editor on the bottom half of the window displays the CSS used to create it.

    Since I’ve added a simple web manifest and service worker, we can install the app as a PWA on desktop. Here is what it looks like on macOS:

    Screenshots of the 1DIV app thumbnail view and CSS editor view on macOS. This version of the app’s window has a separate control bar at the top for the app name and window control buttons.

    And on Windows:

    Screenshots of the 1DIV app thumbnail view and CSS editor view on the Windows operating system. This version of the app’s window also has a separate control bar at the top for the app name and window control buttons.

    Our app is looking good, but the white title bar in the first page is wasted space. In the second page, it would be really nice if the design area went all the way to the top of the app window.

    Let’s use the Window Controls Overlay feature to improve this.

    Enabling Window Controls Overlay

    The feature is still experimental at the moment. To try it, you need to enable it in one of the supported browsers.

    As of now, it has been implemented in Chromium, as a collaboration between Microsoft and Google. We can therefore use it in Chrome or Edge by going to the internal about://flags page, and enabling the Desktop PWA Window Controls Overlay flag.

    Using Window Controls Overlay

    To use the feature, we need to add the following display_override member to our web app’s manifest file:

    {
      "name": "1DIV",
      "description": "1DIV is a mini CSS playground",
      "lang": "en-US",
      "start_url": "/",
      "theme_color": "#ffffff",
      "background_color": "#ffffff",
      "display_override": [
        "window-controls-overlay"
      ],
      "icons": [
        ...
      ]
    }
    

    On the surface, the feature is really simple to use. This manifest change is the only thing we need to make the title bar disappear and turn the window controls into an overlay.

    However, to provide a great experience for all users regardless of what device or browser they use, and to make the most of the title bar area in our design, we’ll need a bit of CSS and JavaScript code.

    Here is what the app looks like now:

    Screenshot of the 1DIV app thumbnail view using Window Controls Overlay on macOS. The separate top bar area is gone, but the window controls are now blocking some of the app’s interface

    The title bar is gone, which is what we wanted, but our logo, search field, and NEW button are partially covered by the window controls because now our layout starts at the top of the window.

    It’s similar on Windows, with the difference that the close, maximize, and minimize buttons appear on the right side, grouped together with the PWA control buttons:

    Screenshot of the 1DIV app thumbnail display using Window Controls Overlay on the Windows operating system. The separate top bar area is gone, but the window controls are now blocking some of the app’s content.

    Using CSS to keep clear of the window controls

    Along with the feature, new CSS environment variables have been introduced:

    • titlebar-area-x
    • titlebar-area-y
    • titlebar-area-width
    • titlebar-area-height

    You use these variables with the CSS env() function to position your content where the title bar would have been while ensuring it won’t overlap with the window controls. In our case, we’ll use two of the variables to position our header, which contains the logo, search bar, and NEW button. 

    header {
      position: absolute;
      left: env(titlebar-area-x, 0);
      width: env(titlebar-area-width, 100%);
      height: var(--toolbar-height);
    }
    

    The titlebar-area-x variable gives us the distance from the left of the viewport to where the title bar would appear, and titlebar-area-width is its width. (Remember, this is not equivalent to the width of the entire viewport, just the title bar portion, which as noted earlier, doesn’t include the window controls.)

    By doing this, we make sure our content remains fully visible. We’re also defining fallback values (the second parameter in the env() function) for when the variables are not defined (such as on non-supporting browsers, or when the Windows Control Overlay feature is disabled).

    Screenshot of the 1DIV app thumbnail view on macOS with Window Controls Overlay and our CSS updated. The app content that the window controls had been blocking has been repositioned.
    Screenshot of the 1DIV app thumbnail view on the Windows operating system with Window Controls Overlay and our updated CSS. The app content that the window controls had been blocking has been repositioned.

    Now our header adapts to its surroundings, and it doesn’t feel like the window control buttons have been added as an afterthought. The app looks a lot more like a native app.

    Changing the window controls background color so it blends in

    Now let’s take a closer look at our second page: the CSS playground editor.

    Screenshots of the 1DIV app CSS editor view with Window Controls Overlay in macOS and Windows, respectively. The window controls overlay areas have a solid white background color, which contrasts with the hot pink color of the example CSS design displayed in the editor.

    Not great. Our CSS demo area does go all the way to the top, which is what we wanted, but the way the window controls appear as white rectangles on top of it is quite jarring.

    We can fix this by changing the app’s theme color. There are a couple of ways to define it:

    • PWAs can define a theme color in the web app manifest file using the theme_color manifest member. This color is then used by the OS in different ways. On desktop platforms, it is used to provide a background color to the title bar and window controls.
    • Websites can use the theme-color meta tag as well. It’s used by browsers to customize the color of the UI around the web page. For PWAs, this color can override the manifest theme_color.

    In our case, we can set the manifest theme_color to white to provide the right default color for our app. The OS will read this color value when the app is installed and use it to make the window controls background color white. This color works great for our main page with the list of demos.

    The theme-color meta tag can be changed at runtime, using JavaScript. So we can do that to override the white with the right demo background color when one is opened.

    Here is the function we’ll use:

    function themeWindow(bgColor) {
      document.querySelector("meta[name=theme-color]").setAttribute('content', bgColor);
    }

    With this in place, we can imagine how using color and CSS transitions can produce a smooth change from the list page to the demo page, and enable the window control buttons to blend in with the rest of the app’s interface.

    Screenshot of the 1DIV app CSS editor view on the Windows operating system with Window Controls Overlay and updated CSS demonstrating how the window control buttons blend in with the rest of the app’s interface.

    Dragging the window

    Now, getting rid of the title bar entirely does have an important accessibility consequence: it’s much more difficult to move the application window around.

    The title bar provides a sizable area for users to click and drag, but by using the Window Controls Overlay feature, this area becomes limited to where the control buttons are, and users have to very precisely aim between these buttons to move the window.

    Fortunately, this can be fixed using CSS with the app-region property. This property is, for now, only supported in Chromium-based browsers and needs the -webkit- vendor prefix. 

    To make any element of the app become a dragging target for the window, we can use the following: 

    -webkit-app-region: drag;

    It is also possible to explicitly make an element non-draggable: 

    -webkit-app-region: no-drag; 

    These options can be useful for us. We can make the entire header a dragging target, but make the search field and NEW button within it non-draggable so they can still be used as normal.

    However, because the editor page doesn’t display the header, users wouldn’t be able to drag the window while editing code. So let's use a different approach. We’ll create another element before our header, also absolutely positioned, and dedicated to dragging the window.

    <div class="drag"></div>
    <header>...</header>
    .drag {
      position: absolute;
      top: 0;
      width: 100%;
      height: env(titlebar-area-height, 0);
      -webkit-app-region: drag;
    }

    With the above code, we’re making the draggable area span the entire viewport width, and using the titlebar-area-height variable to make it as tall as what the title bar would have been. This way, our draggable area is aligned with the window control buttons as shown below.

    And, now, to make sure our search field and button remain usable:

    header .search,
    header .new {
      -webkit-app-region: no-drag;
    }

    With the above code, users can click and drag where the title bar used to be. It is an area that users expect to be able to use to move windows on desktop, and we’re not breaking this expectation, which is good.

    An animated view of the 1DIV app being dragged across a Windows desktop with the mouse.

    Adapting to window resize

    It may be useful for an app to know both whether the window controls overlay is visible and when its size changes. In our case, if the user made the window very narrow, there wouldn’t be enough space for the search field, logo, and button to fit, so we’d want to push them down a bit.

    The Window Controls Overlay feature comes with a JavaScript API we can use to do this: navigator.windowControlsOverlay.

    The API provides three interesting things:

    • navigator.windowControlsOverlay.visible lets us know whether the overlay is visible.
    • navigator.windowControlsOverlay.getBoundingClientRect() lets us know the position and size of the title bar area.
    • navigator.windowControlsOverlay.ongeometrychange lets us know when the size or visibility changes.

    Let’s use this to be aware of the size of the title bar area and move the header down if it’s too narrow.

    if (navigator.windowControlsOverlay) {
      navigator.windowControlsOverlay.addEventListener('geometrychange', () => {
        const { width } = navigator.windowControlsOverlay.getBoundingClientRect();
        document.body.classList.toggle('narrow', width < 250);
      });
    }

    In the example above, we set the narrow class on the body of the app if the title bar area is narrower than 250px. We could do something similar with a media query, but using the windowControlsOverlay API has two advantages for our use case:

    • It’s only fired when the feature is supported and used; we don’t want to adapt the design otherwise.
    • We get the size of the title bar area across operating systems, which is great because the size of the window controls is different on Mac and Windows. Using a media query wouldn’t make it possible for us to know exactly how much space remains.
    .narrow header {
      top: env(titlebar-area-height, 0);
      left: 0;
      width: 100%;
    }

    Using the above CSS code, we can move our header down to stay clear of the window control buttons when the window is too narrow, and move the thumbnails down accordingly.

    A screenshot of the 1DIV app on Windows showing the app’s content adjusted for a much narrower viewport.

    Thirty pixels of exciting design opportunities


    Using the Window Controls Overlay feature, we were able to take our simple demo app and turn it into something that feels so much more integrated on desktop devices. Something that reaches out of the usual window constraints and provides a custom experience for its users.

    In reality, this feature only gives us about 30 pixels of extra room and comes with challenges on how to deal with the window controls. And yet, this extra room and those challenges can be turned into exciting design opportunities.

    More devices of all shapes and forms get invented all the time, and the web keeps on evolving to adapt to them. New features get added to the web platform to allow us, web authors, to integrate more and more deeply with those devices. From watches or foldable devices to desktop computers, we need to evolve our design approach for the web. Building for the web now lets us think outside the rectangular box.

    So let’s embrace this. Let’s use the standard technologies already at our disposal, and experiment with new ideas to provide tailored experiences for all devices, all from a single codebase!


    If you get a chance to try the Window Controls Overlay feature and have feedback about it, you can open issues on the spec’s repository. It’s still early in the development of this feature, and you can help make it even better. Or, you can take a look at the feature’s existing documentation, or this demo app and its source code

  • How to Sell UX Research with Two Simple Questions

    Do you find yourself designing screens with only a vague idea of how the things on the screen relate to the things elsewhere in the system? Do you leave stakeholder meetings with unclear directives that often seem to contradict previous conversations? You know a better understanding of user needs would help the team get clear on what you are actually trying to accomplish, but time and budget for research is tight. When it comes to asking for more direct contact with your users, you might feel like poor Oliver Twist, timidly asking, “Please, sir, I want some more.” 

    Here’s the trick. You need to get stakeholders themselves to identify high-risk assumptions and hidden complexity, so that they become just as motivated as you to get answers from users. Basically, you need to make them think it’s their idea. 

    In this article, I’ll show you how to collaboratively expose misalignment and gaps in the team’s shared understanding by bringing the team together around two simple questions:

    1. What are the objects?
    2. What are the relationships between those objects?

    A gauntlet between research and screen design

    These two questions align to the first two steps of the ORCA process, which might become your new best friend when it comes to reducing guesswork. Wait, what’s ORCA?! Glad you asked.

    ORCA stands for Objects, Relationships, CTAs, and Attributes, and it outlines a process for creating solid object-oriented user experiences. Object-oriented UX is my design philosophy. ORCA is an iterative methodology for synthesizing user research into an elegant structural foundation to support screen and interaction design. OOUX and ORCA have made my work as a UX designer more collaborative, effective, efficient, fun, strategic, and meaningful.

    The ORCA process has four iterative rounds and a whopping fifteen steps. In each round we get more clarity on our Os, Rs, Cs, and As.

    The four rounds and fifteen steps of the ORCA process. In the OOUX world, we love color-coding. Blue is reserved for objects! (Yellow is for core content, pink is for metadata, and green is for calls-to-action. Learn more about the color-coded object map and connecting CTAs to objects.)

    I sometimes say that ORCA is a “garbage in, garbage out” process. To ensure that the testable prototype produced in the final round actually tests well, the process needs to be fed by good research. But if you don’t have a ton of research, the beginning of the ORCA process serves another purpose: it helps you sell the need for research.

    ORCA strengthens the weak spot between research and design by helping distill research into solid information architecture—scaffolding for the screen design and interaction design to hang on.

    In other words, the ORCA process serves as a gauntlet between research and design. With good research, you can gracefully ride the killer whale from research into design. But without good research, the process effectively spits you back into research and with a cache of specific open questions.

    Getting in the same curiosity-boat

    What gets us into trouble is not what we don’t know. It’s what we know for sure that just ain’t so.

    Mark Twain

    The first two steps of the ORCA process—Object Discovery and Relationship Discovery—shine a spotlight on the dark, dusty corners of your team’s misalignments and any inherent complexity that’s been swept under the rug. It begins to expose what this classic comic so beautifully illustrates:

    The original “Tree Swing Project Management” cartoon dates back to the 1960s or 1970s and has no artist attribution we could find.

    This is one reason why so many UX designers are frustrated in their job and why many projects fail. And this is also why we often can’t sell research: every decision-maker is confident in their own mental picture. 

    Once we expose hidden fuzzy patches in each picture and the differences between them all, the case for user research makes itself.

    But how we do this is important. However much we might want to, we can’t just tell everyone, “YOU ARE WRONG!” Instead, we need to facilitate and guide our team members to self-identify holes in their picture. When stakeholders take ownership of assumptions and gaps in understanding, BAM! Suddenly, UX research is not such a hard sell, and everyone is aboard the same curiosity-boat.

    Say your users are doctors. And you have no idea how doctors use the system you are tasked with redesigning.

    You might try to sell research by honestly saying: “We need to understand doctors better! What are their pain points? How do they use the current app?” But here’s the problem with that. Those questions are vague, and the answers to them don’t feel acutely actionable.

    Instead, you want your stakeholders themselves to ask super-specific questions. This is more like the kind of conversation you need to facilitate. Let’s listen in:

    “Wait a sec, how often do doctors share patients? Does a patient in this system have primary and secondary doctors?”

    “Can a patient even have more than one primary doctor?”

    “Is it a ‘primary doctor’ or just a ‘primary caregiver’… Can’t that role be a nurse practitioner?”

    “No, caregivers are something else… That’s the patient’s family contacts, right?”

    “So are caregivers in scope for this redesign?”

    “Yeah, because if a caregiver is present at an appointment, the doctor needs to note that. Like, tag the caregiver on the note… Or on the appointment?”

    Now we are getting somewhere. Do you see how powerful it can be getting stakeholders to debate these questions themselves? The diabolical goal here is to shake their confidence—gently and diplomatically.

    When these kinds of questions bubble up collaboratively and come directly from the mouths of your stakeholders and decision-makers, suddenly, designing screens without knowing the answers to these questions seems incredibly risky, even silly.

    If we create software without understanding the real-world information environment of our users, we will likely create software that does not align to the real-world information environment of our users. And this will, hands down, result in a more confusing, more complex, and less intuitive software product.

    The two questions

    But how do we get to these kinds of meaty questions diplomatically, efficiently, collaboratively, and reliably

    We can do this by starting with those two big questions that align to the first two steps of the ORCA process:

    1. What are the objects?
    2. What are the relationships between those objects?

    In practice, getting to these answers is easier said than done. I’m going to show you how these two simple questions can provide the outline for an Object Definition Workshop. During this workshop, these “seed” questions will blossom into dozens of specific questions and shine a spotlight on the need for more user research.

    Prep work: Noun foraging

    In the next section, I’ll show you how to run an Object Definition Workshop with your stakeholders (and entire cross-functional team, hopefully). But first, you need to do some prep work.

    Basically, look for nouns that are particular to the business or industry of your project, and do it across at least a few sources. I call this noun foraging.

    Here are just a few great noun foraging sources:

    • the product’s marketing site
    • the product’s competitors’ marketing sites (competitive analysis, anyone?)
    • the existing product (look at labels!)
    • user interview transcripts
    • notes from stakeholder interviews or vision docs from stakeholders

    Put your detective hat on, my dear Watson. Get resourceful and leverage what you have. If all you have is a marketing website, some screenshots of the existing legacy system, and access to customer service chat logs, then use those.

    As you peruse these sources, watch for the nouns that are used over and over again, and start listing them (preferably on blue sticky notes if you’ll be creating an object map later!).

    You’ll want to focus on nouns that might represent objects in your system. If you are having trouble determining if a noun might be object-worthy, remember the acronym SIP and test for:

    1. Structure
    2. Instances
    3. Purpose

    Think of a library app, for example. Is “book” an object?

    Structure: can you think of a few attributes for this potential object? Title, author, publish date… Yep, it has structure. Check!

    Instance: what are some examples of this potential “book” object? Can you name a few? The Alchemist, Ready Player One, Everybody Poops… OK, check!

    Purpose: why is this object important to the users and business? Well, “book” is what our library client is providing to people and books are why people come to the library… Check, check, check!

    SIP: Structure, Instances, and Purpose! (Here’s a flowchart where I elaborate even more on SIP.)

    As you are noun foraging, focus on capturing the nouns that have SIP. Avoid capturing components like dropdowns, checkboxes, and calendar pickers—your UX system is not your design system! Components are just the packaging for objects—they are a means to an end. No one is coming to your digital place to play with your dropdown! They are coming for the VALUABLE THINGS and what they can do with them. Those things, or objects, are what we are trying to identify.

    Let’s say we work for a startup disrupting the email experience. This is how I’d start my noun foraging.

    First I’d look at my own email client, which happens to be Gmail. I’d then look at Outlook and the new HEY email. I’d look at Yahoo, Hotmail…I’d even look at Slack and Basecamp and other so-called “email replacers.” I’d read some articles, reviews, and forum threads where people are complaining about email. While doing all this, I would look for and write down the nouns.

    (Before moving on, feel free to go noun foraging for this hypothetical product, too, and then scroll down to see how much our lists match up. Just don’t get lost in your own emails! Come back to me!)

    Drumroll, please…

    Here are a few nouns I came up with during my noun foraging:

    • email message
    • thread
    • contact
    • client
    • rule/automation
    • email address that is not a contact?
    • contact groups
    • attachment
    • Google doc file / other integrated file
    • newsletter? (HEY treats this differently)
    • saved responses and templates
    In the OOUX world, we love color-coding. Blue is reserved for objects! (Yellow is for core content, pink is for metadata, and green is for calls-to-action. Learn more about the color coded object map and connecting CTAs to objects.)

    Scan your list of nouns and pick out words that you are completely clueless about. In our email example, it might be client or automation. Do as much homework as you can before your session with stakeholders: google what’s googleable. But other terms might be so specific to the product or domain that you need to have a conversation about them.

    Aside: here are some real nouns foraged during my own past project work that I needed my stakeholders to help me understand:

    • Record Locator
    • Incentive Home
    • Augmented Line Item
    • Curriculum-Based Measurement Probe

    This is really all you need to prepare for the workshop session: a list of nouns that represent potential objects and a short list of nouns that need to be defined further.

    Facilitate an Object Definition Workshop

    You could actually start your workshop with noun foraging—this activity can be done collaboratively. If you have five people in the room, pick five sources, assign one to every person, and give everyone ten minutes to find the objects within their source. When the time’s up, come together and find the overlap. Affinity mapping is your friend here!

    If your team is short on time and might be reluctant to do this kind of grunt work (which is usually the case) do your own noun foraging beforehand, but be prepared to show your work. I love presenting screenshots of documents and screens with all the nouns already highlighted. Bring the artifacts of your process, and start the workshop with a five-minute overview of your noun foraging journey.

    HOT TIP: before jumping into the workshop, frame the conversation as a requirements-gathering session to help you better understand the scope and details of the system. You don’t need to let them know that you’re looking for gaps in the team’s understanding so that you can prove the need for more user research—that will be our little secret. Instead, go into the session optimistically, as if your knowledgeable stakeholders and PMs and biz folks already have all the answers. 

    Then, let the question whack-a-mole commence.

    1. What is this thing?

    Want to have some real fun? At the beginning of your session, ask stakeholders to privately write definitions for the handful of obscure nouns you might be uncertain about. Then, have everyone show their cards at the same time and see if you get different definitions (you will). This is gold for exposing misalignment and starting great conversations.

    As your discussion unfolds, capture any agreed-upon definitions. And when uncertainty emerges, quietly (but visibly) start an “open questions” parking lot. 😉

    After definitions solidify, here’s a great follow-up:

    2. Do our users know what these things are? What do users call this thing?

    Stakeholder 1: They probably call email clients “apps.” But I’m not sure.

    Stakeholder 2: Automations are often called “workflows,” I think. Or, maybe users think workflows are something different.

    If a more user-friendly term emerges, ask the group if they can agree to use only that term moving forward. This way, the team can better align to the users’ language and mindset.

    OK, moving on. 

    If you have two or more objects that seem to overlap in purpose, ask one of these questions:

    3. Are these the same thing? Or are these different? If they are not the same, how are they different?

    You: Is a saved response the same as a template?

    Stakeholder 1: Yes! Definitely.

    Stakeholder 2: I don’t think so… A saved response is text with links and variables, but a template is more about the look and feel, like default fonts, colors, and placeholder images. 

    Continue to build out your growing glossary of objects. And continue to capture areas of uncertainty in your “open questions” parking lot.

    If you successfully determine that two similar things are, in fact, different, here’s your next follow-up question:

    4. What’s the relationship between these objects?

    You: Are saved responses and templates related in any way?

    Stakeholder 3:  Yeah, a template can be applied to a saved response.

    You, always with the follow-ups: When is the template applied to a saved response? Does that happen when the user is constructing the saved response? Or when they apply the saved response to an email? How does that actually work?

    Listen. Capture uncertainty. Once the list of “open questions” grows to a critical mass, pause to start assigning questions to groups or individuals. Some questions might be for the dev team (hopefully at least one developer is in the room with you). One question might be specifically for someone who couldn’t make it to the workshop. And many questions will need to be labeled “user.” 

    Do you see how we are building up to our UXR sales pitch?

    5. Is this object in scope?

    Your next question narrows the team’s focus toward what’s most important to your users. You can simply ask, “Are saved responses in scope for our first release?,” but I’ve got a better, more devious strategy.

    By now, you should have a list of clearly defined objects. Ask participants to sort these objects from most to least important, either in small breakout groups or individually. Then, like you did with the definitions, have everyone reveal their sort order at once. Surprisingly—or not so surprisingly—it’s not unusual for the VP to rank something like “saved responses” as #2 while everyone else puts it at the bottom of the list. Try not to look too smug as you inevitably expose more misalignment.

    I did this for a startup a few years ago. We posted the three groups’ wildly different sort orders on the whiteboard.

    Here’s a snippet of the very messy middle from this session: three columns of object cards, showing the same cards prioritized completely differently by three different groups.

    The CEO stood back, looked at it, and said, “This is why we haven’t been able to move forward in two years.”

    Admittedly, it’s tragic to hear that, but as a professional, it feels pretty awesome to be the one who facilitated a watershed realization.

    Once you have a good idea of in-scope, clearly defined things, this is when you move on to doing more relationship mapping.

    6. Create a visual representation of the objects’ relationships

    We’ve already done a bit of this while trying to determine if two things are different, but this time, ask the team about every potential relationship. For each object, ask how it relates to all the other objects. In what ways are the objects connected? To visualize all the connections, pull out your trusty boxes-and-arrows technique. Here, we are connecting our objects with verbs. I like to keep my verbs to simple “has a” and “has many” statements.

    A work-in-progress system model of our new email solution.

    This system modeling activity brings up all sorts of new questions:

    • Can a saved response have attachments?
    • Can a saved response use a template? If so, if an email uses a saved response with a template, can the user override that template?
    • Do users want to see all the emails they sent that included a particular attachment? For example, “show me all the emails I sent with ProfessionalImage.jpg attached. I’ve changed my professional photo and I want to alert everyone to update it.” 

    Solid answers might emerge directly from the workshop participants. Great! Capture that new shared understanding. But when uncertainty surfaces, continue to add questions to your growing parking lot.

    Light the fuse

    You’ve positioned the explosives all along the floodgates. Now you simply have to light the fuse and BOOM. Watch the buy-in for user research flooooow.

    Before your workshop wraps up, have the group reflect on the list of open questions. Make plans for getting answers internally, then focus on the questions that need to be brought before users.

    Here’s your final step. Take those questions you’ve compiled for user research and discuss the level of risk associated with NOT answering them. Ask, “if we design without an answer to this question, if we make up our own answer and we are wrong, how bad might that turn out?” 

    With this methodology, we are cornering our decision-makers into advocating for user research as they themselves label questions as high-risk. Sorry, not sorry. 

    Now is your moment of truth. With everyone in the room, ask for a reasonable budget of time and money to conduct 6–8 user interviews focused specifically on these questions. 

    HOT TIP: if you are new to UX research, please note that you’ll likely need to rephrase the questions that came up during the workshop before you present them to users. Make sure your questions are open-ended and don’t lead the user into any default answers.

    Final words: Hold the screen design!

    Seriously, if at all possible, do not ever design screens again without first answering these fundamental questions: what are the objects and how do they relate?

    I promise you this: if you can secure a shared understanding between the business, design, and development teams before you start designing screens, you will have less heartache and save more time and money, and (it almost feels like a bonus at this point!) users will be more receptive to what you put out into the world. 

    I sincerely hope this helps you win time and budget to go talk to your users and gain clarity on what you are designing before you start building screens. If you find success using noun foraging and the Object Definition Workshop, there’s more where that came from in the rest of the ORCA process, which will help prevent even more late-in-the-game scope tugs-of-war and strategy pivots. 

    All the best of luck! Now go sell research!

  • A Content Model Is Not a Design System

    Do you remember when having a great website was enough? Now, people are getting answers from Siri, Google search snippets, and mobile apps, not just our websites. Forward-thinking organizations have adopted an omnichannel content strategy, whose mission is to reach audiences across multiple digital channels and platforms.

    But how do you set up a content management system (CMS) to reach your audience now and in the future? I learned the hard way that creating a content model—a definition of content types, attributes, and relationships that let people and systems understand content—with my more familiar design-system thinking would capsize my customer’s omnichannel content strategy. You can avoid that outcome by creating content models that are semantic and that also connect related content. 

    I recently had the opportunity to lead the CMS implementation for a Fortune 500 company. The client was excited by the benefits of an omnichannel content strategy, including content reuse, multichannel marketing, and robot delivery—designing content to be intelligible to bots, Google knowledge panels, snippets, and voice user interfaces. 

    A content model is a critical foundation for an omnichannel content strategy, and for our content to be understood by multiple systems, the model needed semantic types—types named according to their meaning instead of their presentation. Our goal was to let authors create content and reuse it wherever it was relevant. But as the project proceeded, I realized that supporting content reuse at the scale that my customer needed required the whole team to recognize a new pattern.

    Despite our best intentions, we kept drawing from what we were more familiar with: design systems. Unlike web-focused content strategies, an omnichannel content strategy can’t rely on WYSIWYG tools for design and layout. Our tendency to approach the content model with our familiar design-system thinking constantly led us to veer away from one of the primary purposes of a content model: delivering content to audiences on multiple marketing channels.

    Two essential principles for an effective content model

    We needed to help our designers, developers, and stakeholders understand that we were doing something very different from their prior web projects, where it was natural for everyone to think about content as visual building blocks fitting into layouts. The previous approach was not only more familiar but also more intuitive—at least at first—because it made the designs feel more tangible. We discovered two principles that helped the team understand how a content model differs from the design systems that we were used to:

    1. Content models must define semantics instead of layout.
    2. And content models should connect content that belongs together.

    Semantic content models

    A semantic content model uses type and attribute names that reflect the meaning of the content, not how it will be displayed. For example, in a nonsemantic model, teams might create types like teasers, media blocks, and cards. Although these types might make it easy to lay out content, they don’t help delivery channels understand the content’s meaning, which in turn would have opened the door to the content being presented in each marketing channel. In contrast, a semantic content model uses type names like product, service, and testimonial so that each delivery channel can understand the content and use it as it sees fit. 

    When you’re creating a semantic content model, a great place to start is to look over the types and properties defined by Schema.org, a community-driven resource for type definitions that are intelligible to platforms like Google search.

    A semantic content model has several benefits:

    • Even if your team doesn’t care about omnichannel content, a semantic content model decouples content from its presentation so that teams can evolve the website’s design without needing to refactor its content. In this way, content can withstand disruptive website redesigns. 
    • A semantic content model also provides a competitive edge. By adding structured data based on Schema.org’s types and properties, a website can provide hints to help Google understand the content, display it in search snippets or knowledge panels, and use it to answer voice-interface user questions. Potential visitors could discover your content without ever setting foot in your website.
    • Beyond those practical benefits, you’ll also need a semantic content model if you want to deliver omnichannel content. To use the same content in multiple marketing channels, delivery channels need to be able to understand it. For example, if your content model were to provide a list of questions and answers, it could easily be rendered on a frequently asked questions (FAQ) page, but it could also be used in a voice interface or by a bot that answers common questions.

    For example, using a semantic content model for articles, events, people, and locations lets A List Apart provide cleanly structured data for search engines so that users can read the content on the website, in Google knowledge panels, and even with hypothetical voice interfaces in the future.

    Image showing an event in a CMS passing data to a Google knowledge panel, a website, and a voice interface

    Content models that connect

    After struggling to describe what makes a good content model, I’ve come to realize that the best models are those that are semantic and that also connect related content components (such as a FAQ item’s question and answer pair), instead of slicing up related content across disparate content components. A good content model connects content that should remain together so that multiple delivery channels can use it without needing to first put those pieces back together.

    Think about writing an article or essay. An article’s meaning and usefulness depends upon its parts being kept together. Would one of the headings or paragraphs be meaningful on their own without the context of the full article? On our project, our familiar design-system thinking often led us to want to create content models that would slice content into disparate chunks to fit the web-centric layout. This had a similar impact to an article that were to have been separated from its headline. Because we were slicing content into standalone pieces based on layout, content that belonged together became difficult to manage and nearly impossible for multiple delivery channels to understand.

    To illustrate, let’s look at how connecting related content applies in a real-world scenario. The design team for our customer presented a complex layout for a software product page that included multiple tabs and sections. Our instincts were to follow suit with the content model. Shouldn’t we make it as easy and as flexible as possible to add any number of tabs in the future?

    Because our design-system instincts were so familiar, it felt like we had needed a content type called “tab section” so that multiple tab sections could be added to a page. Each tab section would display various types of content. One tab might provide the software’s overview or its specifications. Another tab might provide a list of resources. 

    Our inclination to break down the content model into “tab section” pieces would have led to an unnecessarily complex model and a cumbersome editing experience, and it would have also created content that couldn’t have been understood by additional delivery channels. For example, how would another system have been able to tell which “tab section” referred to a product’s specifications or its resource list—would that other system have to have resorted to counting tab sections and content blocks? This would have prevented the tabs from ever being reordered, and it would have required adding logic in every other delivery channel to interpret the design system’s layout. Furthermore, if the customer were to have no longer wanted to display this content in a tab layout, it would have been tedious to migrate to a new content model to reflect the new page redesign.

    Illustration showing a data tree flowing into a list of cards (data), flowing into a navigation menu on a website
    A content model based on design components is unnecessarily complex, and it’s unintelligible to systems.

    We had a breakthrough when we discovered that our customer had a specific purpose in mind for each tab: it would reveal specific information such as the software product’s overview, specifications, related resources, and pricing. Once implementation began, our inclination to focus on what’s visual and familiar had obscured the intent of the designs. With a little digging, it didn’t take long to realize that the concept of tabs wasn’t relevant to the content model. The meaning of the content that they were planning to display in the tabs was what mattered.

    In fact, the customer could have decided to display this content in a different way—without tabs—somewhere else. This realization prompted us to define content types for the software product based on the meaningful attributes that the customer had wanted to render on the web. There were obvious semantic attributes like name and description as well as rich attributes like screenshots, software requirements, and feature lists. The software’s product information stayed together because it wasn’t sliced across separate components like “tab sections” that were derived from the content’s presentation. Any delivery channel—including future ones—could understand and present this content.

    Illustration showing a data tree flowing into a formatted list, flowing into a navigation menu on a website
    A good content model connects content that belongs together so it can be easily managed and reused.

    Conclusion

    In this omnichannel marketing project, we discovered that the best way to keep our content model on track was to ensure that it was semantic (with type and attribute names that reflected the meaning of the content) and that it kept content together that belonged together (instead of fragmenting it). These two concepts curtailed our temptation to shape the content model based on the design. So if you’re working on a content model to support an omnichannel content strategy—or even if you just want to make sure that Google and other interfaces understand your content—remember:

    • A design system isn’t a content model. Team members may be tempted to conflate them and to make your content model mirror your design system, so you should protect the semantic value and contextual structure of the content strategy during the entire implementation process. This will let every delivery channel consume the content without needing a magic decoder ring.
    • If your team is struggling to make this transition, you can still reap some of the benefits by using Schema.org–based structured data in your website. Even if additional delivery channels aren’t on the immediate horizon, the benefit to search engine optimization is a compelling reason on its own.
    • Additionally, remind the team that decoupling the content model from the design will let them update the designs more easily because they won’t be held back by the cost of content migrations. They’ll be able to create new designs without the obstacle of compatibility between the design and the content, and ​they’ll be ready for the next big thing. 

    By rigorously advocating for these principles, you’ll help your team treat content the way that it deserves—as the most critical asset in your user experience and the best way to connect with your audience.

Search Engine Watch
Keep updated with major stories about search engine marketing and search engines as published by Search Engine Watch.
Search Engine Watch
ClickZ News
Breaking news, information, and analysis.
Pcworld.com
PCWorld helps you navigate the PC ecosystem to find the products you want and the advice you need to get the job done.
  • Get 130 hours of beginner-friendly Python training on sale for just $35

    Python is one of the most beginner-friendly programming languages in use. And it’s relevant too, which means it’s an ideal language for aspiring coders to learn. That’s why we’re offering the 2022 Complete Python Certification Bootcamp Bundle for just $34.99, so anyone can try their hand at it.

    This package features 130 hours of training that introduces students to the Python programming language. They’ll learn the basics, get acquainted with the syntax, and discover how Python is used in real-world applications. Upon completion, students walk away with the ability to code their own programs, so they can enter the workforce — albeit in an entry-level capacity.

    These courses are delivered by ZENVA, Oak Academy, Mammoth Interactive, and more. They’ve been around a long time and are widely respected within the tech industry.

    If you want solid training, the 2022 Complete Python Certification Bootcamp Bundle is a fantastic option. Right now, this training costs $34.99, which is less than $3 per course. 

    The 2022 Complete Python Certification Bootcamp Bundle – $34.99

    See Deal

    Prices subject to change.

    Python
  • The Steam Deck’s manual FSR mode gives it upscaling superpowers

    AMD’s FixelityFX Super Resolution 2 is getting a lot of headlines these days. But the previous version of the tech is still pretty good, and it’s also integrated into AMD GPUs on a hardware level. That includes RDNA 2 APU systems, like the one crammed into the Steam Deck. And today, PCWorld contributor Keith May tests how it works when manually applied to high-end games on the efficient portable gaming PC.

    To be specific, we’re talking about games that don’t natively support FSR within their own software. In games that do, like Horizon Zero Dawn, it’s preferable to use that. But other games like Days Gone don’t get that benefit, at least not automatically. Keith explains how you can apply FSR to any 3D game, and why you’d want to, especially on more recent and graphically intensive titles.

    Resolution scaling isn’t a miracle worker, but it did allow Days Gone to get over that crucial 30 frames per second milestone on the Steam Deck, at some points boosting it past 40. That’s enough to enjoy smooth gameplay without sacrificing graphical splendor. For more Steam Deck deep dives (say that five times fast) like testing 24 different tactical RPGs, be sure to subscribe to the PCWorld YouTube channel.

    Gaming PCs
  • Prime Day SSD & storage deals 2022: What to expect and early deals

    Amazon’s summer version of Black Friday is just around the corner, and when Prime Day sales begin on July 12, they should bring juicy price drops on PC hardware. Prime Day SSD and storage deals in particular were a highlight in previous years—and you can already snag early discounts starting right now.

    To shop, you’ll need an Amazon Prime subscription, as this torrent of bargains is only available to members, but getting Amazon Prime for free is easy. If the deals below don’t grab your attention just yet, stay tuned. We’ll keep updating this article in the run up to July 12 and July 13. In the meanwhile, prepare yourself by learning how to navigate Prime Day lightning deals, and reading up on all you need to know about Amazon Prime Day 2022.

    Prime Day SSD and storage deals: What to expect

    In the past, the sweetest SSD deals have been on 500GB and 1TB SATA and PCIE 3.0 drives. Discounts should hit that area again, but this year is already hinting at better prices on 2TB and PCIe 4.0 drives—SK Hynix already dropped the price on its brand-new P41 just last week. Keep an eye out for bargains on high-capacity hard-disk drives (HDD) in the 6TB to 12TB range too, as well as huge markdowns on flash drives and SD cards.

    In general, Prime Day doesn’t match Black Friday in scope, but the good deals that surface match or get very close to November’s deep cuts. These days, other retailers also put up their own rival sales to lure shoppers. We’ll be monitoring those, too.

    What remains unknown is if Prime Day will limp by (as it has a few times), which some news outlets have predicted, or if it’ll still unveil at least a few exciting deals. We don’t anticipate zero worthwhile discounts, however, even given the current economy. Please note that deals come and go, and we’ll do our best to keep this article fresh with the latest information.

    Early Prime Day deals on SSDs

    WD Blue 3D 2.5-inch SATA Internal PC SSD – 1TB

    WD Blue 3D 2.5-inch SATA Internal PC SSD - 1TB
    1

    From: Amazon

    Was: $102.99

    Now: $89.99 (13% off)

    This popular, reliable Western Digital SATA SSD is just a couple of dollars above its all-time low price—it’s possible it’ll drop further for Prime Day, but it won’t be by much.

    Samsung 980 Pro PCIe 4.0 NVME M.2 Internal SSD – 1TB

    Samsung 980 Pro PCIe 4.0 NVME M.2 Internal SSD - 1TB
    2

    From: Amazon

    Was: $209.99

    Now: $139.99 (33% off)

    Samsung’s excellent Gen 4 SSD not only snagged our Editor’s Choice award, but it claims a spot among our early Prime Day deals with a cool 33 percent discount. That’s an all-time low for the 1TB capacity.

    Samsung Electronics 870 EVO 2TB 2.5-inch SATA Internal SSD – 2TB

    Samsung Electronics 870 EVO 2TB 2.5-inch SATA Internal SSD - 2TB
    3

    From: Amazon

    Was: $259.99

    Now: $199.99 (23% off)

    We loved Samsung’s affordable SATA drive when we reviewed it, and the high-capacity 2TB drive is at last at an all-time low in the run up to Prime Day 2022.

    Early Prime Day deals on general PC storage

    Seagate IronWolf NAS 5900RPM SATA Internal Hard Drive – 4TB

    Seagate IronWolf NAS 5900RPM SATA Internal Hard Drive - 4TB
    1

    From: Amazon

    Was: $110.99

    Now: $82.99 (25% off)

    Need lots of space for a network-attached-storage unit? This 4TB Seagate IronWolf sits in a sweet spot for price and capacity, with an equally sweet price.

    WD Blue 3D 2.5-inch SATA Internal PC SSD – 1TB

    WD Blue 3D 2.5-inch SATA Internal PC SSD - 1TB
    2

    From: Amazon

    Was: $102.99

    Now: $89.99 (13% off)

    This popular, reliable Western Digital SATA SSD is just a couple of dollars above its all-time low price—it’s possible it’ll drop further for Prime Day, but it won’t be by much.

    SanDisk microSDXC card for Nintendo Switch – 128GB

    SanDisk microSDXC card for Nintendo Switch - 128GB
    3

    From: Amazon

    Was: $34.99

    Now: $20.49 (41% off)

    Maybe you’ve had to make do with the lesser Steam Deck as you wait for your place in the queue to make it to the front. (Just kidding, the Nintendo Switch is awesome.) This deal slashes the cost of a branded SD card to a near all-time low for more storage on the ultra cheap.

    Solid-State Drives
  • Seagate Beskar Ingot SSD review: Fast SATA storage for Mandalorian fans
    At a glance

    Expert’s Rating

    Pros

    • Stylish with gamer and Sci-Fi appeal
    • Great SATA performance
    • Three years free data recovery

    Cons

    • Very pricey for the capacity
    • Middling TBW rating
    • Requires a computer that can show it off

    Our Verdict

    Billed as a collectable, Seagate’s Beskar Ingot SATA SSD is pricier than the norm. But all is not glitz and franchise tie-in—it’s also one of the fastest SATA SSDs we’ve tested.

    Best Prices Today: Seagate Beskar Ingot SATA SSD

    Retailer
    Price
    Delivery
    Amazon
    $269.99
    Free
    Seagate
    $283.99
    Price comparison from over 24,000 stores worldwide

    If you’re a fan of the Mandalorian (of Star Wars franchise fame), the Seagate Beskar Ingot SATA SSD (FireCuda SE) might just tickle your fancy. Assuming, of course, that you can view of the interior of your computer and its 2.5-inch mounting points/bays. Otherwise, the styling of this drive, as fetching or evocative as it is (it mimics the slabs of the Beskar metal used in Mandalorian armor), won’t provide much joy post unboxing.

    On the other hand, you will continue to enjoy the performance—it’s one of the fastest SATA SSDs we’ve tested.

    This review is part of our ongoing roundup of the best SSDs. Go there for information on competing products and how we tested them.

    Seagate Beskar Ingot SSD: Design and price

    The Beskar Ingot SATA is available in 1TB for $168 or 2TB for $284, which we tested. Not to be picky, but that’s pricey. Not only for SATA, but for NVMe. Speaking of which, if your system supports it—Seagate makes the Ingot in an NVMe version we’ll be reviewing soon, though it was available only in a 500GB flavor as of this writing. And if you’re really a fan of the look, there’s an external USB hard drive that you can place conspicuously on your desk for continual viewing. (Sorry, there’s no external SSD as of yet).

    As to the specifics of the Beskar Ingot reviewed here, it’s a SATA 6Gbps drive in the standard 2.5-inch form factor. There’s a Seagate validated Phison S12 controller, 512MB of DRAM primary cache and 64-layer TLC NAND. The drive actually identifies itself in benchmarks, etc. as a FireCuda SE, which doesn’t seem to be sold in a non-themed version.

    Whatever the components, the drive was among the fastest we’ve tested, and fastest in some tests.

    The Beskar Ingot drive carries a five-year warranty with three years of free data recovery. We certainly hope you wouldn’t need the latter and, given the reliability of SSDs these days, we’re pretty sure you won’t. It’s more a feature of interest in high-transaction enterprise drives but Seagate throws it in here, likely to ameliorate sticker-shock.

    And we do wish the TeraBytes Written (aka TBW, or amount of data that may be written to the drive) rating was a tad higher: 1,150TBW is rather low for a 2TB drive of this price. (It’s 600TBW for the 1TB version.) In case you’re not familiar, SSD warranties are similar to those of automobiles: five years or 1,150TBW in this case. Exceeding either limit absolves the company of the obligation to replace the drive.

    Seagate Beskar Ingot SSD: Performance

    The Beskar Ingot’s performance was one of the best we’ve seen out of a SATA TLC drive under Windows 11, competing roughly on par with two very fast drives: Seagate’s 960GB IronWolf Pro and a 4TB Samsung 870 EVO. It even sustained its average 435MBps real-world write pace with our 450GB single file. It should be noted, that SSD technology long ago outstripped the throughput of the SATA bus, so everyday performance across the slower bus is generally very similar.

    mentioned in this article

    Samsung 870 EVO SATA SSD

    Samsung 870 EVO SATA SSD
    Best Prices Today: $114.99 at Amazon | $134.99 at Samsung

    However, even within the bandwidth limitation, the Beskar Ingot did well. Also note that these are new results for the IronWolf Pro and 870 EVO that may not match those in their individual reviews.

    The Beskar Ingot’s faster write speed offset its small disadvantage in sequential read speed to the 870 EVO. Longer bars are better.

    The Beskar Ingot/FireCuda SE did very well in our real-world 48GB transfers, besting the 870 EVO by 12 seconds overall. However, it finished slightly behind the IronWolf Pro, largely due to the latter’s dexterity with the single, large 48GB file.

    As mentioned previously, the Beskar Ingot sustained well during our 450GB single-file write, turning in the best time we’ve seen under Windows 11.

    The Seagate Beskar Ingot sustained its write pace throughout the long 450GB write. Shorter bars are better.

    As I said up top, you won’t be disappointed in the Beskar Ingot’s performance. As long as you’re not expecting NVMe-like results. That said, subjectively, the difference between SATA and NVMe is far less noticeable in everyday use than that between SATA and hard drives.

    Internal drive tests currently utilize Windows 11, 64-bit running on an MSI MEG X570/AMD Ryzen 3700X combo with four 16GB Kingston 2666MHz DDR4 modules (64GB), a Zotac (Nvidia) GT 710 1GB x2 PCIe graphics card, and an Asmedia ASM3242 USB 3.2×2 card. Copy tests utilize an ImDisk RAM disk using 58GB of the 64GB memory.

    Each test is performed on a newly formatted and TRIM’d drive so the results are optimal. Over time, as a drive fills up, performance will decrease due to less NAND for caching and other factors.

    The performance numbers shown apply only to the drive in the capacity tested. SSD performance can vary by capacity due to more or fewer chips to shotgun reads/writes across as well as the amount of NAND available for secondary caching.

    Fast but pricey

    Beskar Ingots are supposedly extremely valuable in the Disney Star Wars universe, so perhaps that’s partly the reason for this drive’s steep pricing. If you think of it as a collectable (does anyone really collect storage?), the cost might not phase you.

    However, top-shelf performer or no, you can get pretty much the same performance and capacity for a lot less. Your choice.

    Computer Storage Devices
  • Google Stadia review: The console experience without the console
    At a glance

    Expert’s Rating

    Pros

    • Ease of access to the whole platform
    • 4K display support that genuinely works
    • Some fairly deep game discounts for Stadia Pro members

    Cons

    • The “Free” games with Stadia Pro have been somewhat lackluster
    • Game library is a bit behind the mainstream

    Our Verdict

    Google Stadia offers a wide array of titles to choose from and its easy-to-use interface makes for an enjoyable cloud gaming experience. Overall, this is one of the best cloud gaming platforms available, especially if you opt for the Pro subscription.

    Best Prices Today: Google Stadia

    Retailer
    Price
    Delivery
    Google
    $9.99
    Price comparison from over 24,000 stores worldwide

    In recent years, the cloud gaming market has gained a number of new names and none have been more hyped than Google Stadia. Launched in late 2019, it ran into a few stumbling blocks along the way, but its pivot to focusing on third-party game hosting has seen it flourish. Now a mainstay in the cloud streaming industry, Stadia has a lot to offer. We tested both the free and Pro versions of the service. Let’s see how it all stands up.

    Google Stadia: The plans

    Google Stadia comes in two forms: Free and Pro. With the free access, you’re able to play a select few free games, such as Destiny 2, or games that you bought for Stadia at up to 1080p resolution at 60 frames per second, including any online multiplayer games. That’s it, you can fully play games that you buy without the need to purchase any expensive hardware—as long as your internet connection is up to handling it, a minimum of 10Mbps.

    Google Stadia info

    The Google Stadia Pro membership comes with some welcome perks.

    Kevin Casper

    Stadia Pro supports streaming games at up to 4K resolution, 60fps, with HDR and 5.1 surround support with connections of 35Mbps or greater. Additionally, Stadia Pro will provide a handful of free games that you can claim to your library to play as long as your Pro subscription is active. Most games, however, are neither free nor included in Stadia Pro, but instead have to be bought. Some games do have discounts for Pro members, though.

    Google Stadia: Game library

    In essence, you can imagine Google Stadia as its own console or popular PC game store. It has a fairly wide selection of games you can buy and play on the service, and those games aren’t playable on any other service. It’s much like how purchasing a game for Playstation 5 doesn’t allow you to play it through the Epic Games Store or on Nintendo Switch.

    Google Stadia

    A game library of over 270 titles to choose from.

    Kevin Casper

    At the time of writing, there are just over 270 games available on Stadia. That said, the Stadia game library is a bit all over the place in terms of the kinds of games and their release timeframes. It feels like Stadia is always trying to catch up to the mainstream market, but that means games both new and old are always becoming available for purchase on the platform.

    During our tests with Stadia Pro, the games that could be claimed with the subscription aren’t exactly the most popular ones out there, but there have been plenty of good ones, including Life is Strange Remastered, Terraria, and Control Ultimate Edition. If you’re looking for the higher performance that Stadia Pro offers over its free service, then the Pro games are a nice slow drip of bonuses.

    Google Stadia: UX/interfaces

    First thing we feel the need to call out is that Google makes it fairly difficult to find and understand what Stadia actually has to offer in its own website and media. It took an uncomfortable amount of time to even see that the Stadia service can be played on for free, as almost all of its promotional material and site information tries to push users to Stadia Pro.

    Google Stadia

    Stadia homepage layout.

    Kevin Casper

    Once signed up, however, the Stadia experience is very simple and straightforward. You access your Stadia account and the Stadia interface through a browser, or the Stadia app on other devices. Google Chrome is going to be the obvious preference for this on PC. Inside the service, you’ll be presented with a home screen of offers and games you can purchase, claim, or play depending on the nature of your account. To do any of that, you just click the big visual boxes for these games to purchase and/or launch them straight from the browser.

    Managing your account, including unsubscribing from Stadia Pro if you need to, is also fairly simple. The options are under your account icon in the upper-right corner of the Stadia browser view, and most options sit under the Stadia Settings selection, from subscription to controller options to game sharing in Google Family accounts.

    Speaking of controllers: You do not need the Stadia controller to play games with Stadia. We were able to play with an Xbox One controller connected to the PC with no issues. For the games that support it, you can also play Stadia games with a mouse and keyboard.

    We did see a couple of quirks, though. When you launch a game, it will launch in a full-screen view that locks in your cursor to that monitor if you have multiple displays. However, not all games have an Exit or Quit to Desktop option in their menus. This is what happened with Terraria, and there was no indication on how to actually leave the full screen to get back to the Stadia interface or anything. For these instances, all you need to do is press F11 on your keyboard for the standard browser full-screen toggling or hold down the Escape key and you’ll get a Stadia menu to either go back to the game or exit it, but there was nowhere in the Stadia startup process that explained that to us.

    There were a couple of times where a game experience just froze up and crashed outright, and there is no message or information indicating what happened. It’s just as frustrating as those times a game just crashes to the desktop on a PC without any kind of error message.

    Google Stadia: Game performance

    To note for our tests, our internet connection speed test results were about 447Mbps down and 22.6Mbps up, which definitely meets the recommended requirements for Stadia services. With that in mind, the in-game experience for the Stadia games we tried out was superb. In testing games like Bloodstained Ritual of the Night, Control Ultimate Edition, and Cities: Skylines, everything both felt and looked great, especially with Stadia Pro. Performance is almost always exceptional, barring any game crashes for our playtimes and testing.

    Google Stadia

    Cities: Skylines running on Google Stadia.

    Kevin Casper

    We weren’t really able to dig into any graphics options on the games, as they seem to have preset restrictions to fit whatever systems are running things on Google’s end. Regardless, it was all smooth, responsive, and had no notable performance drops, lag spikes, or stream artifacts—even on a 4K display.

    Google Stadia: Bottom line

    Google Stadia can provide the console gaming experience without needing to get any expensive hardware, and can look even better with its Pro subscription. You still have to buy most of your games, but if you’re coming at it as your primary gaming service, that’s not a bad way to go about it.

    Gaming
CNN.com - RSS Channel - App Tech Section
CNN.com delivers up-to-the-minute news and information on the latest top stories, weather, entertainment, politics and more.
CNN.com - RSS Channel - App Tech Section
 

Ако решите, че "как се прави сайт" ръководството може да бъде полезно и за други хора, моля гласувайте за сайта:

+добави в любими.ком Елате в .: BGtop.net :. Топ класацията на българските сайтове и гласувайте за този сайт!!!

Ако желаете да оставите коментар към статията, трябва да се регистрирате.