NEW: English for Tech Bundle → Save 38%

Software development terms: code, Git and releases

Code reviews, pull requests and release notes are full of short, precise words: commit, rebase, cherry-pick, refactor, rollback. Knowing them makes your reviews clearer and your standups shorter.

Each term below links to a lesson with a simple definition, examples from pull requests and team chat, common mistakes and a quick quiz.

Start with these

All 120 terms, A to Z

A

  • abstraction

    A design principle where complex implementation details are hidden behind a simple interface.

  • amend

    To make changes or corrections to code, a pull request, or documentation to improve or fix it.

  • anti-pattern

    A recurring solution or practice in code that looks like it solves a problem but actually creates more problems or technical debt.

  • artifact

    A file, binary, or output produced by a build, test, or deployment process.

  • async/await

    A JavaScript syntax feature that allows you to write asynchronous code that looks and behaves like synchronous code, making it easier to…

B

  • back up

    To make a copy of data or files for safekeeping or recovery purposes.

  • benchmark

    A standard measurement or reference point used to evaluate the performance, quality, or speed of code, systems, or applications.

  • boilerplate

    Boilerplate is standard, reusable code that appears in many places with little or no change.

  • branch

    A separate line of development in version control (like Git) where you can work on code changes independently without affecting the main…

  • breaking change

    A modification to software that forces users or dependent systems to update their code because the old code will no longer work with the…

  • breakpoint

    A specific line of code where a debugger stops execution so you can inspect variables, step through code, and understand program behavior.

C

  • callback

    A function passed as an argument to another function, which is executed after some operation has been completed.

  • canary release

    A deployment strategy where new software is released to a small group of real users first to detect issues before rolling out to everyone.

  • cherry-pick

    To select and apply specific commits from one branch to another, rather than merging all changes.

  • CI/CDContinuous Integration and Continuous Delivery

    CI/CD stands for Continuous Integration and Continuous Delivery (or Deployment).

  • closure

    In programming, a function that retains access to variables from its outer scope even after that scope has finished executing.

  • code comment

    A note or explanation written in source code that helps developers understand what the code does.

  • code freeze

    A period during software development when no new code changes are permitted before a release.

  • code owner

    A developer or team responsible for maintaining, reviewing, and making decisions about a specific part of the codebase.

  • code review

    A systematic examination of source code by one or more team members before it is merged into the main codebase.

  • code splitting

    A technique that divides a large JavaScript bundle into smaller chunks that load on demand rather than all at once.

  • comment out

    To temporarily disable a section of code by converting it into a comment.

  • Commit

    To save your code changes to a version control system (like Git) with a message explaining what you changed.

  • commit message

    A brief text description that explains what changes were made in a code commit.

  • compile

    To convert source code written by developers into executable machine code or bytecode that a computer can run.

  • coupling

    The degree to which one software module or component depends on another.

D

  • dark launch

    A dark launch is the release of a new feature or product to a limited group of real users without announcing it publicly.

  • dead code

    Code in a program that is never executed during normal operation, either because it is unreachable or no longer serves any purpose.

  • defensive programming

    A coding practice where programmers anticipate and handle potential errors, edge cases, and invalid inputs to prevent bugs and crashes…

  • dependency conflict

    A situation where two or more packages or libraries in your project require different versions of the same dependency, making it…

  • dependency injection

    A design pattern where an object receives other objects it depends on rather than creating them itself.

  • deploy

    To release or put software, an application, or an update into a live production environment where users can access and use it.

  • deprecate

    To officially mark a feature, function, or API as outdated and discourage its use, while keeping it working for backward compatibility.

  • devtools

    Built-in debugging and development tools included in web browsers and IDEs that allow developers to inspect, test, and troubleshoot code…

  • diff

    A diff is a detailed comparison showing exactly which lines of code or text have been added, removed, or changed between two versions of a…

  • draft PR

    A pull request marked as work in progress that is not yet ready for final review or merging.

  • dry run

    A complete test of a process, deployment, or system using safe conditions where no actual data is changed or no real impact occurs.

E

  • encapsulation

    In programming, encapsulation is the practice of bundling related data and methods together inside a class or object, while hiding the…

  • end-to-end test

    A test that verifies an entire application workflow from start to finish, simulating real user interactions across all system layers and…

  • error handling

    Error handling is the process of anticipating, detecting, and responding to errors in code to prevent crashes or unexpected behavior.

  • event-driven

    A software architecture or design approach where the system responds to and processes events (user actions, system signals, messages)…

  • exception

    An event that occurs during program execution that disrupts the normal flow and requires special handling.

F

  • factory pattern

    A design pattern that creates objects without specifying their exact classes, using a factory method instead.

  • feature branch

    A separate copy of the code (branch) used to develop a new feature without affecting the main codebase.

  • feature flag

    A feature flag is a code mechanism that allows developers to turn specific features on or off without redeploying the application.

  • flame graph

    A flame graph is a visualization tool that shows where your program spends time by displaying function call stacks as horizontal bars…

  • force push

    A Git command that overwrites the remote repository history by forcibly uploading your local commits, ignoring any conflicting changes on…

  • fork

    To create an independent copy of a repository (codebase) so you can make changes without affecting the original project.

  • function

    A reusable block of code that performs a specific task and can be called multiple times from different parts of a program.

G

  • git blame

    A Git command that shows which developer made each change to a specific file, line by line, and when those changes were made.

  • GitFlow

    A branching strategy for Git that uses multiple long-lived branches (develop, release, hotfix) alongside the main production branch to…

H

  • hot path

    The section of code that is executed most frequently or handles the most critical operations in a program.

  • hot reload

    A development feature that automatically updates your running application with code changes without requiring a full restart.

I

  • immutable

    Unable to be changed or modified after creation.

  • inheritance

    In object-oriented programming, inheritance is a mechanism that allows a class to acquire properties and methods from another class…

  • interface

    A contract or set of rules that defines how different software components, systems, or users interact with each other.

L

  • LGTMLooks Good To Me

    An acronym meaning Looks Good To Me, used in code reviews to indicate that a reviewer has examined the code and approves it for merging or…

  • linting

    Linting is the automated process of analyzing source code to find and flag potential bugs, style inconsistencies, and deviations from best…

  • lock file

    A file that records the exact versions of all dependencies and packages your project uses.

  • look through

    To review or examine something carefully, often to check for problems or details.

M

  • Merge

    To combine changes from one branch of code into another, usually from a feature branch into the main codebase.

  • merge conflict

    A merge conflict occurs when two developers change the same lines of code in different branches, and the version control system cannot…

  • mock

    To create a fake or simplified version of a component, function, or external service for testing purposes.

  • monorepo

    A single version control repository that holds multiple projects or packages instead of keeping each project in separate repositories.

  • mutation testing

    A software testing technique where small intentional changes (mutations) are introduced into code to verify that your test suite can…

N

  • npmNode Package Manager

    npm (Node Package Manager) is the default package manager for JavaScript and Node.js that allows developers to install, manage, and share…

  • null pointer exception

    A runtime error that occurs when your code tries to use a pointer or reference that points to nothing (null).

O

  • object

    In programming, an object is an instance of a class that contains both data (properties) and functions (methods).

  • off-by-one error

    A programming bug where a loop or array index is off by exactly one position, causing the code to access the wrong element or iterate one…

  • OpenAPI

    OpenAPI is a standardized specification for describing RESTful APIs in a machine-readable format, allowing developers to understand…

  • overflow

    A condition in computing where data or memory exceeds the allocated space in a buffer or variable, causing system errors or unexpected…

P

  • package

    A collection of related code, libraries, or software components grouped together for distribution and reuse.

  • package manager

    A software tool that automates the process of installing, updating, configuring, and removing software libraries and dependencies for your…

  • pair programming

    A software development practice where two programmers work together at the same computer, with one typing (the driver) and one reviewing…

  • pointer

    A pointer is a variable in programming that stores the memory address of another variable, allowing you to access and manipulate data…

  • polymorphism

    The ability of objects or functions to take multiple forms or for the same interface to work with different data types.

  • promise

    In programming, a Promise is a JavaScript object that represents the eventual completion (or failure) of an asynchronous operation and its…

  • protected branch

    A branch in your version control system that has restrictions set up to prevent accidental or unauthorized changes.

  • PTALPlease Take a Look

    PTAL stands for "please take a look": a short request asking someone to review your code, document or change.

  • pub/subPublish-Subscribe

    Pub/sub (publish-subscribe) is a messaging pattern where publishers send messages to a topic and subscribers receive those messages…

  • pull request

    A formal request to merge code changes from one branch into another, typically requiring review and approval from team members before the…

  • pure function

    A function that always returns the same output for the same input and does not modify any external state or data.

R

  • rebase

    To rebase means to move or re-apply a series of commits from one branch onto another branch, typically to integrate recent changes and…

  • recursion

    A programming technique where a function calls itself to solve a problem by breaking it into smaller, identical subproblems.

  • refactor

    To rewrite existing code to improve its quality, readability, or structure without changing what it does or adding new features.

  • regression

    A bug or error that appears in software after a recent code change, causing previously working features to break or behave incorrectly.

  • reinventing the wheel

    Building something from scratch when a working solution already exists.

  • release

    To make software or a new version available to users or the public.

  • release candidate

    A version of software that is ready to be released to users but is still being tested for bugs.

  • revert

    To undo or go back to a previous state of code, typically by undoing a recent commit or change.

  • roll out

    To introduce or launch something new on a larger scale.

  • Rollback

    A rollback is when you return a system to a previous, working version after a bad deployment or change.

S

  • sandbox

    An isolated testing environment where developers can safely run code, test features, or experiment without affecting the live production…

  • script

    A short program or set of instructions written in a programming language that automates tasks or performs specific functions on a computer…

  • semantic versioning

    A versioning system where software version numbers follow MAJOR.MINOR.PATCH format, where each number indicates the type of change made…

  • separation of concerns

    A software design principle where different functionalities or responsibilities are kept in separate, independent modules or layers so…

  • set up

    To arrange or configure something so it is ready for use.

  • side effect

    An unintended change in program state caused by executing code, where a function modifies something outside of its primary purpose, such…

  • singleton

    A design pattern that restricts a class to have only one instance and provides a global point of access to that instance.

  • smoke test

    A quick, basic test run to check if a software application starts and runs without crashing or producing obvious errors before conducting…

  • spaghetti code

    Code that is confusing and tangled because it has poor structure, with many dependencies and unclear logic paths.

  • squash

    To combine multiple Git commits into a single commit, or to quickly fix and eliminate bugs or issues before release.

  • SSRServer-Side Rendering

    SSR stands for Server-Side Rendering, a web development approach where HTML pages are generated on the server before being sent to the…

  • staging

    A staging environment is a copy of your production system where developers and testers can safely test code changes before releasing them…

  • stash

    In Git, to temporarily save uncommitted changes so you can switch branches or clean your working directory without losing work.

  • state

    In programming, state refers to the current condition or values of data, variables, and objects at any given moment.

  • static analysis

    The process of analyzing code without running it, using automated tools to find bugs, security issues, and code quality problems before…

T

  • TDDTest-Driven Development

    Test-Driven Development is a software development practice where you write automated tests before writing the actual code that solves the…

  • technical debt

    Technical debt is the cost of prioritizing quick delivery over code quality, creating future work that must be repaid through refactoring…

  • test fixture

    A test fixture is a set of objects, data, or conditions that you prepare before running a test to ensure the test can run correctly.

  • transpile

    To convert source code from one programming language to another language at a similar level of abstraction, or from a newer version of a…

  • type checking

    The process of verifying that variables, functions, and expressions in code use the correct data types (such as integers, strings, or…

  • type inference

    The ability of a programming language or compiler to automatically determine the data type of a variable or expression without explicit…

  • type safety

    A programming language feature that prevents type errors by checking that operations on data are compatible with the data type.

U

  • unit test

    A unit test is an automated test that verifies a single, small piece of code (like one function or method) works correctly in isolation.

V

  • variable

    A named container in code that stores a value or piece of data that can change during program execution.

  • version control

    A system that tracks and manages changes to code files over time, allowing developers to see what changed, who changed it, and why.

  • virtual environment

    An isolated Python (or language-specific) workspace on your computer where you install project-specific packages without affecting your…

W

  • won't fix

    A status label assigned to a reported bug or feature request indicating that the development team has decided not to fix or implement it…

Y

  • YAMLYAML Ain't Markup Language

    YAML stands for YAML Aint Markup Language.

Questions

What are the most common software development terms?
Commit, branch, merge, pull request, code review, deploy, refactor and technical debt come up in almost every team. Each one has its own lesson on this page.
What does LGTM mean in a code review?
LGTM means “Looks Good To Me”. Reviewers write it to approve a pull request or to say they have no more comments.
What is the difference between merge and rebase?
Both bring changes from one branch into another. A merge keeps both histories and adds a merge commit; a rebase replays your commits on top of the other branch, so the history stays a straight line.

For bots & AI agents

Machine-readable versions of this page and Speak Tech English. Speak Tech English sells self-study ebooks and courses in English for tech, publishes free guides, a free glossary and a free newsletter; live lessons are on Mockly English. Fetch these instead of parsing this page.

This page (.md)llms.txtllms-full.txtai.txtGlossary (.md)Free guides (.md)All products (.md)Endpoint indexNewsletterLive lessons (Mockly)