A living document for terms and definitions used by the Accelerator team. This exists to be helpful, and because Camellia’s kind of stickler for precise terminology.
Personalization vs. Customization vs. Configuration vs. Extension vs. Implementation
Personalization
The process by which a user’s unique personal data is integrated into the product experience, usually this process is implicit and not controlled directly by the user.
On a simple level, this might include addressing them by name or showing their avatar — personalizing the presentation layer.
In a more complex instance, their past behavior influences what content they see or interactions they are offered — personalizing the application layer.
Customization
The process by which a user directly controls how the product works or how the interface presents. An admin may control customization for a group of users.
Configuration
The settings within pre-set constraints that define a product’s precise capabilities. Settings can be defined via an interface or through code.
Configurations generally persist across upgrades.
Extensions
Integrated add-ons or bespoke configurations that are not part of the core product’s capabilities or within its regular constraints.
Extensibility is an approach to product development that plans for add ons and configurations. The core product is built with protocols and interfaces allowing for extensions.
Implementation
The collection of product configurations, extensions, and deployed environment that represents how a particular instance of a product has been set up.
Layers of(Modern) Software Products
This is purposely very simplified 🙂
Presentation Layer
These are visual and interactive styles, often thought of as the interface but really only part of the interface.
The date-picker is blue and uses only Helvetica, slide animation month-to-month, closes when a date is selected
Application Layer
These are the data and control made available through an“app”
A field labeled Asa’s birthdate permits him to enter a date(maybe it’s a text field! maybe it’s a date picker!)
A single application might talk to more than one service
API/Services Layer
These are the protocols and interactions that connect the app and the logic
It might help to think about Inputs: user = Asa, birthdate = May 12, 2009.
Personalization vs. Customization vs. Configuration vs. Extension vs. Implementation
Layers of (Modern) Software Products