The Mojave glossary of digital

Greg Whitescarver

30th June, 2020

The Mojave glossary of digital

There are some terms that are used a lot in the world of digital, and they aren’t always used consistently. And, surprisingly, some of these terms aren’t defined well anywhere (that we could find). To make sure we’re consistent in our own writing, we created the Mojave Glossary of Digital...and we thought it would be nice to share it with you. If there’s anything you think we should add, please let us know!

adaptive design

Serving or rendering of pages, components, functionality, or content based on device detection or capabilities detection. Adaptive design can be employed in conjunction with, or as opposed to, responsive design.

Examples include loading different menu modules for mobile and desktop and suppressing video auto-loading on slow connections.

Editor’s note: the term “adaptive design” has been used variously over the years, and you may find definitions along the lines of “serving different websites for different devices”. That definition is not wrong; it’s out of date. Contemporary component-based web frameworks like React and Vue.js can offer adaptive functionality at the component level and the feature level.

artificial intelligence

The ability of computers to display (or exceed) human cognitive functions such as learning and problem solving. See also: artificial intelligence on Wikipedia

component

A unit of functionality that can be reused in different contexts. Common user experience components include buttons, menus, video players, and text editors.

component debt

An accumulated failure to reuse components, resulting in inconsistent functionality and higher cost of ownership. See also: technical debt

component library

A canonical set of user experience components maintained as a single codebase and able to support more than one digital experience.

container (computer science)

An isolated environment within an operating system for running programs. A single physical computer can run many containers at once with little memory overhead. From the point of view of a program running in a container, the container looks like a self-contained computer; neither the actual physical computer nor the other containers are visible. For most use cases, containers are more efficient than—and are gradually replacing—traditional virtual machines.

See also: OS-level virtualization on Wikipedia

content strategy

The field of user experience design concerned with planning, structuring, creating, and managing content. Artifacts of content strategy include content audits, editorial strategies, content calendars, style guides, and many more.

See also: information architecture

digital transformation

A catch-all term for highly impactful digital initiatives, often reflecting a desire to short-cut solutions to complex problems.

enterprise

(Of technical solutions:) providing capabilities associated with the demands of large, complex organizations and high-demand usage. Characteristics associated with enterprise solutions include: scalability, fault tolerance, auditability, regulatory compliance, data security, and the ability to integrate with other enterprise solutions.

Flutter

Google’s toolkit for developing applications for mobile, desktop, and the web. It uses the Dart programming language and compiles to truly native instructions (unlike React Native) on iOS and Android. As of April 2020, support for web is in beta, and support for desktop applications is in development.

See also: Flutter website

information architecture

The field within content strategy devoted to the organization, categorization, and findability of information. The artifacts of information architecture include user flows, content models, content hierarchies, sitemaps, tags, categories, controlled vocabularies, synonym dictionaries, and search configurations (e.g. ranking logic, filtering).

See also: content strategy

machine learning

The ability of computer algorithms to process novel data correctly based on sample inputs and sample outputs, and to improve with the addition of new sample data. Examples include facial recognition, autocomplete, and fraud detection.

See also: machine learning on Wikipedia

native

Written or compiled to run directly on the target operating system and hardware, without emulation or virtualization. 

Native iOS apps can be written in Swift and Objective C, platform languages created by Apple.  Native iOS apps can also be written in Dart, using Flutter.

Native Android apps can be written in Java and Kotlin, platform languages selected by Google specifically for Android. Native Android apps can also be written in Dart, using Flutter. 

Applications made with React Native use UI components written in platform languages: Swift or Objective C for iOS, and Java or Kotlin for Android. The application flow of a React Native app is controlled with Javascript (which is not native on either platform). 

Both iOS and Android can leverage libraries written in C, C++, and other compiled languages.

Popular game engines like Unreal (which uses C++) and Unity (which uses C# and other languages) compile to native instructions for iOS and Android devices.

See also: Flutter, React Native

optimization

Iterative improvement of the technical performance or business performance of a website or application.

personalization

Functionality and communication based on attributes of a user. Three types of personalization are: one-to-one, algorithmic, and targeted:

  • one-to-one personalization is delivered on a user-by-user basis based on set rules. Examples include referring to a user by name, asking how they are enjoying a recent purchase, or prompting them to reorder a consumable like dish soap.
  • algorithmic personalization uses aggregated data from all users to predict what one user might want based on their behavior and context. Examples include “watch next” and “you might also like” recommendations.
  • targeted personalization is delivered based on one or more segments a user belongs to. Segments may be determined by user behavior, location, device capabilities, user self-assignment, or purchased marketing data. Examples include sending back to school promotions to parents of children ages 4-17.

See also: personalization (digital media and internet) on Wikipedia

platform language

A programming language recommended or mandated by an operating system provider. Examples include Objective C and Swift for iOS, as well as Java and Kotlin for Android.

proof of concept

Any execution of an idea—be it on paper, in a digital design, a physical prototype, or a computer program—that confirms whether or not the idea will work.

prototype

An execution of an idea—such as a design prototype or a happy path implementation—that conveys its intent, often to inform further development or collect feedback.

React Native

A mobile application development toolkit wherein UI components are implemented in platform languages (natively) for each target platform and application control flow is implemented in Javascript (not natively).

See also: React Native website

responsive design

(Of a website or web application:) having a layout and appearance that scales and reconfigures based on viewport dimensions, using media queries and fluid grids.

See also: adaptive design

self-service

Not requiring human-to-human interaction for procurement and use.

serverless

Ironically, serverless infrastructure runs on servers; it’s just that you don’t have to think about the servers. In a serverless architecture, you deploy your application to the infrastructure provider, and the servers (and VM’s and containers) are managed automatically, behind the scenes. Serverless infrastructure allows organizations to worry about making great applications instead of worrying about load-balancing, scaling, hardware failure, and server security patches.

See also: serverless computing on Wikipedia

taxonomy

(In the fields of content strategy and information architecture:) the classification and organization of content, using hierarchies (trees), categories, tags, polymorphism (A is a type of B), associations (many-to-many, one-to-many, one-to-one), and lifecycle dependencies. Artifacts of taxonomy include UML class diagrams (or similar), trees, and mappings (usually in spreadsheets) for categories and tags.

technical debt

The accumulated failure to address known problems in a codebase or larger technical system, such as redundant code, unsupported dependencies (older tools that no longer receive security patches and other updates), performance issues, security issues, and accessibility issues.

wireframe

A visual representation of a web page or screen that communicates intended functionality but omits elements of visual treatment such as typography (instead using default fonts), color (relying instead on grayscale), photography, and minutia of layout.