Glossary

The language of software development, clearly explained. Search for a term or browse the alphabet at your own pace.

The alphabetical index

107 terms

A

7 terms
A/B testnoun
An A/B test is an experiment in which two groups each see a different variant. Comparing their behaviour shows which variant performs better against a predefined goal.
acceptance criterianoun, plural
Acceptance criteria are agreed, testable conditions that a product, feature or change must meet to be accepted.
agile & scrumadjective and noun
Agile is an approach to developing software in small steps and adapting based on feedback. Scrum gives it structure through short sprints and regular team discussions.
APIabbreviation (noun)
An API is a defined way for software to exchange data or call functions in other software without needing to know how that software works internally.
audit trail/ˈɔː.dɪt treɪl/noun
An audit trail is a chronological record of actions and changes in a system. It shows who or what performed an action, when it happened and what changed.
authenticationnoun
Authentication is the process by which a system verifies the claimed identity of a user, device or application.
authorizationnoun
Authorization is the process of determining and enforcing which data and functions a user, device or application may access.

B

3 terms
backend/ˈbækˌend/noun
The backend is the part of an application that processes data, applies business rules and communicates with other systems on the server. Users usually access it through a frontend or API.
backlog/ˈbæk.lɒɡ/noun
A backlog is an ordered, evolving list of work for a product or project. Its order helps a team decide what to investigate or implement first.
branch/brɑːntʃ/noun
A branch is a separate line of development in version control. Developers can make and test changes on it without immediately changing the main version of the code.

C

14 terms
caching/ˈkæʃɪŋ/noun
Caching temporarily stores previously retrieved or calculated data so later requests can be handled faster and the original source is accessed less often.
changelog/ˈtʃeɪndʒˌlɒɡ/noun
A changelog is a record of relevant software changes, usually organized by version or release. It includes new features, bug fixes and changes that affect users.
CI/CD/ˌsiːˈaɪ ˌsiːˈdiː/abbreviation
CI/CD is a way of working in which teams frequently merge software changes, check them automatically and use a defined sequence of steps to prepare or deploy them to production.
cloud/klaʊd/noun
The cloud is a collective term for computing power, storage, databases and software available over a network, usually from an external provider's data centres.
CMSabbreviation (noun)
A CMS is software that lets users create, organize, edit and publish digital content, usually through an administration interface.
code review/ˈkəʊd rɪˌvjuː/noun
A code review is an assessment of a code change by another developer. They check its behaviour, readability, and maintainability, among other things, before the change is merged.
codebase/ˈkəʊdˌbeɪs/noun
A codebase is the collection of source code used to build and maintain a software product or component.
commit/kəˈmɪt/noun
A commit is a recorded version of files in a version control system. Each commit marks a point in a project's development history.
componentnoun
A component is a distinct part of software with its own task and a clear way of interacting with other parts.
containernoun
A container is an isolated application process with the files and settings it needs. Containers on the same machine usually share the operating system kernel.
continuous delivery/kənˈtɪn.ju.əs dɪˈlɪv.ər.i/noun
Continuous delivery is a practice in which each successful software change is automatically built, tested and prepared so the team can deploy it to production at any time.
continuous deployment/kənˌtɪn.ju.əs dɪˈplɔɪ.mənt/noun
Continuous deployment is a practice in which every software change that passes all automated checks goes to production without a manual approval step.
continuous developmentnoun
Continuous development means improving software continuously in small steps. Automated testing and integration help teams deliver changes regularly and in a controlled way.
continuous integration/kənˈtɪn.ju.əs ˌɪn.tɪˈɡreɪ.ʃən/noun
Continuous integration is a practice in which developers regularly merge small code changes and check them automatically, making integration problems visible early.

D

8 terms
data integritynoun
Data integrity means that data remains correct, complete and internally consistent, and changes only in permitted ways.
data modelnoun
A data model describes which data a system records, how that data is related and which rules it must satisfy.
databasenoun
A database is a structured collection of data that software can store, retrieve and modify. A database management system controls access to that data.
dependency/dɪˈpen.dən.si/noun
A dependency is a software component or system that other software needs in order to build or run, such as a library, framework or external service.
deployment/dɪˈplɔɪmənt/noun
A deployment is the process of installing and starting a chosen software version in a target environment so it can be tested or used there.
design system/dɪˈzaɪn ˌsɪstəm/noun
A design system is a collection of reusable interface components, design rules and documentation that teams use to design and build consistent digital products.
digital accessibilitynoun
Digital accessibility means people with different disabilities can perceive, understand and operate websites, apps and digital documents.
downtime/ˈdaʊn.taɪm/noun
Downtime is the period when software, a system or an online service is unavailable or its essential functions cannot be used.

E

4 terms
encryptionnoun
Encryption converts readable data into encrypted data using an algorithm and a cryptographic key. Only the correct key can make the data readable again.
end-to-end testnoun
An end-to-end test checks whether a complete user journey through an application works, including the components and systems that must work together.
endpoint/ˈɛndˌpɔɪnt/noun
An endpoint is an address at which an API makes a particular resource or action available.
exception tracking/ɪkˈsep.ʃən ˌtræk.ɪŋ/noun
Exception tracking automatically records and groups errors that occur while software is running. It gives developers information to investigate an error's cause and impact.

F

5 terms
failover/ˈfeɪlˌoʊvər/noun
Failover is the switch from a primary system to a backup system when the primary system fails or stops working correctly.
feature flag/ˈfiː.tʃə flæɡ/noun
A feature flag is a setting that enables or disables software functionality without another code deployment. It can apply to all users or a particular group.
frameworknoun
A framework is a coherent foundation for software development, providing reusable code, a defined structure and conventions for building an application.
frontend/ˌfrʌnt ˈend/noun
The frontend is the part of a website or application that users see and operate, such as pages, buttons, forms and interactive screens.
full-stack/ˈfʊl stæk/adjective
Full-stack describes software development that covers both the frontend and backend of an application. It can refer to a developer, team or technical tool.

H

1 term
headless CMSnoun
A headless CMS is a content management system that makes content available through an API without determining how it is presented to visitors.

I

2 terms
infrastructure as code/ˈɪn.frəˌstrʌk.tʃər əz ˈkəʊd/noun
Infrastructure as code (IaC) is a practice in which infrastructure is described in configuration files and created and managed using software.
integration testnoun
An integration test checks whether several parts of a software system work together correctly, focusing on their communication and the data they exchange.

L

5 terms
legacy softwarenoun
Legacy software still serves an important purpose but is difficult to maintain, change or replace because of technical limitations, missing knowledge or strong dependencies.
library/ˈlaɪ.brər.i/noun
A library is a collection of reusable software code for a defined task. An application can call that code to use existing functionality.
linting/ˈlɪntɪŋ/noun
Linting automatically checks source code for potential errors and violations of agreed coding rules, without running the application. The tool that performs these checks is called a linter.
load balancing/ˈləʊd ˌbæl.ən.sɪŋ/noun
Load balancing distributes network traffic or other tasks across multiple servers so one server does not have to handle all the work.
logging/ˈlɒɡ.ɪŋ/noun
Logging records events while software is running. These records help developers follow a system's behaviour and investigate problems.

M

8 terms
memory leak/ˈmem.ər.i liːk/noun
A memory leak is a software bug in which a program retains memory it no longer uses. Memory usage can keep growing while the program runs.
message queue/ˈmes.ɪdʒ kjuː/noun
A message queue temporarily stores messages until another software component processes them. The sender does not have to wait for the recipient to finish.
microservicesnoun, plural
Microservices are small, independently deployable software services that each perform a defined function and together form an application.
monitoringnoun
Monitoring systematically tracks software, infrastructure or processes through measurements and checks. Deviations can trigger alerts so an administrator can investigate.
monolithnoun
A monolith is an application whose components form a single unit and are usually built and deployed together.
MoSCoW prioritizationnoun
MoSCoW prioritization classifies requirements as Must have, Should have, Could have or Won't have this time, making clear what is essential and what can wait.
multitenant/ˌmʌltiˈtɛnənt/adjective
Multitenant describes software in which several customers share one application, each with a separate environment for data, users and settings.
MVPabbreviation (noun)
MVP stands for Minimum Viable Product: the smallest usable version of a product that lets you test key assumptions with real users.

O

4 terms
observability/əbˌzɜːrvəˈbɪlɪti/noun
Observability is the extent to which available signals help you understand what is happening inside a software system.
open source/ˌəʊ.pənˈsɔːs/noun and adjective
Open source is software whose source code is available under a licence that allows others to use, study, modify and redistribute it.
ORMabbreviation
An ORM is software that maps objects in program code to tables and relationships in a relational database. ORM stands for Object-Relational Mapping.
OTAPabbreviation
OTAP is the Dutch abbreviation for Development, Test, Acceptance, and Production. These are separate environments for building, testing, reviewing, and using software.

P

8 terms
pair programming/ˈpeə ˌprəʊ.ɡræm.ɪŋ/noun
Pair programming is a practice in which two developers work on the same programming task together. One writes code while the other considers the approach and reviews the work as it happens.
peak loadnoun
Peak load is the temporarily high demand on a system when many users, requests or tasks need capacity at the same time.
product owner/ˈprɒd.ʌkt ˈəʊ.nə(r)/noun
In Scrum, the product owner is accountable for maximizing product value and managing the product backlog. They order the work and communicate the product goal.
progressive web appnoun
A progressive web app (PWA) uses modern web technologies to offer an app-like experience. Users can install it from a compatible browser and use additional features supported by their device.
proof of concept/ˌpruːf əv ˈkɒnsept/noun
A proof of concept is a small-scale experiment that investigates whether an idea is technically or practically feasible before it is fully developed.
prototypenoun
A prototype is an early, simplified version of a product. It makes an idea visible or testable so you can learn before developing the complete product.
pull request/ˈpʊl rɪˌkwest/noun
A pull request proposes that changes from one branch be reviewed and merged into another. Team members can discuss and check the code before it is incorporated.
push notificationnoun
A push notification is a short message an app or website sends to a user's device, even when that app or website is not open.

Q

2 terms
quality assurance/ˌkwɒləti əˈʃʊərəns/noun
Quality assurance (QA) is the set of planned, systematic measures a team uses to help software meet agreed quality requirements.
query/ˈkwɪə.ri/noun
A query is a targeted instruction to a system to retrieve, filter, combine or modify data.

R

11 terms
race condition/ˈreɪs kənˌdɪʃ.ən/noun
A race condition is a software bug in which the outcome depends on the order or timing of actions that can happen concurrently. The same input can produce different results.
refactoringnoun
Refactoring changes the internal structure of existing code without changing observable software behaviour. The aim is to make code easier to understand and modify.
refinement/rɪˈfaɪnmənt/noun
Refinement is the ongoing clarification, breakdown and estimation of backlog work so the team understands what each item involves.
regression testnoun
A regression test checks that previously working parts of software still behave as expected after a change, revealing unintended effects.
release/rɪˈliːs/noun
A release is an identifiable software version prepared to be made available to users. It brings together one or more checked changes.
responsive design/rɪˈspɒnsɪv dɪˈzaɪn/noun
Responsive design is an approach in which a website or web application adapts its layout and controls to the available screen space and device.
retainer/rɪˈteɪ.nər/noun
A retainer is an ongoing agreement in which a client regularly reserves a service provider's capacity for recurring work, such as software maintenance, support or development.
retrospective/ˌret.rəˈspek.tɪv/noun
A retrospective is a meeting where a team reflects on the past working period and agrees how to improve its collaboration and practices.
review app/rɪˈvjuː æp/noun
A review app is a temporary, working version of an application where one branch or merge request can be examined and tested separately.
rollback/ˈrəʊl.bæk/noun
A rollback reverses a change so software, configuration or data returns to an earlier state. Teams use it when a change causes errors or other unwanted effects.
row-level security/ˌrəʊ ˌlev.əl sɪˈkjʊə.rə.ti/noun
Row-level security (RLS) is database access control in which rules for each row determine which records a user may view, insert, update or delete.

S

12 terms
SaaSabbreviation (noun)
SaaS stands for Software as a Service: software a provider manages centrally and makes available to users over the internet.
scalabilitynoun
Scalability is the extent to which software, infrastructure or a process can handle more or less work without major rebuilding or unacceptable performance loss.
scopenoun
Scope defines the boundaries of a project or assignment: which goals, activities and results are included and which are excluded.
security audit/sɪˈkjʊə.rə.ti ˈɔː.dɪt/noun
A security audit is a structured examination of a digital system's security. The auditor assesses technical measures and processes against agreed requirements and records findings.
security by design/sɪˈkjʊə.rə.ti baɪ dɪˈzaɪn/noun
Security by design includes security in software requirements, architecture and development from the first design. The team continues assessing and reducing risks throughout the lifecycle.
single-page applicationnoun
A single-page application (SPA) loads one web document and then updates the required content without fetching a complete new page for every view.
singletenant/ˌsɪŋɡəlˈtɛnənt/adjective
In singletenant software, each customer uses a separate application environment that is not shared with other customers.
SLAnoun
SLA stands for service level agreement: an agreement between a customer and provider about the service, its agreed level and how that level is measured.
software architecturenoun
Software architecture is the main structure of a software system: its components, their relationships and the principles guiding technical choices and changes.
sprintnoun
A sprint is a short, fixed period in which a team develops an agreed part of the software. Afterwards, you review the result and decide on the next priorities.
SQLabbreviation
SQL is a language for querying and managing data in a relational database and defining that database's structure.
static analysisnoun
Static analysis examines source code or compiled code without running the program. It checks for potential errors, vulnerabilities, and violations of agreed coding rules.

T

5 terms
technical debtnoun
Technical debt is the extra work required because earlier software decisions make later changes harder, slower or riskier.
test coveragenoun
Test coverage measures which parts of the code execute during automated tests. It can count lines, functions and branches, among other things.
time and materialsnoun phrase
Time and materials billing calculates the price after work has been carried out, based on the actual hours worked and costs incurred at agreed rates.
two-factor authenticationnoun
Two-factor authentication uses two independent forms of evidence from different categories to grant access to an account or system.
type safety/taɪp ˈseɪf.ti/noun
Type safety is the extent to which a programming language prevents values from being used in ways incompatible with their types. Checks can identify such errors during coding, compilation or execution.

U

4 terms
unit test/ˈjuː.nɪt test/noun
A unit test is an automated test of a small, defined software component, usually isolated from external systems.
uptime/ˈʌptaɪm/noun
Uptime is the time during which software, a server or another service is available and usable, usually expressed as a percentage of an agreed measurement period.
user experience/ˈjuː.zər ɪkˌspɪə.ri.əns/noun
User experience, often abbreviated to UX, is the overall experience someone has when using a product, system or service.
user interface/ˌjuː.zər ˈɪn.tə.feɪs/noun
A user interface (UI) is the part of a digital system through which a user receives information and operates it. Examples include screens, buttons, forms and voice controls.

V

2 terms
vendor lock-in/ˈven.dər ˈlɒk.ɪn/noun
Vendor lock-in is dependence on one supplier that makes switching to an alternative difficult, expensive or disruptive.
version controlnoun
Version control records changes to code, including who changed what and when. It lets developers collaborate, compare changes and return to an earlier version.

W

2 terms
webhook/ˈwɛb.hʊk/noun
A webhook is an automatic HTTP request that one application sends to another when a configured event occurs.
WebSocketnoun
A WebSocket is an open, two-way connection between a client and a server. Both sides can send messages on their own initiative through that connection.