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
- pull requestA formal request to merge code changes from one branch into another, typically requiring review and approval from team members before the…
- code reviewA systematic examination of source code by one or more team members before it is merged into the main codebase.
- merge conflictA merge conflict occurs when two developers change the same lines of code in different branches, and the version control system cannot…
- rebaseTo rebase means to move or re-apply a series of commits from one branch onto another branch, typically to integrate recent changes and…
- refactorTo rewrite existing code to improve its quality, readability, or structure without changing what it does or adding new features.
- technical debtTechnical debt is the cost of prioritizing quick delivery over code quality, creating future work that must be repaid through refactoring…
- feature flagA feature flag is a code mechanism that allows developers to turn specific features on or off without redeploying the application.
- RollbackA rollback is when you return a system to a previous, working version after a bad deployment or change.
- LGTMLooks Good To MeAn 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…
- PTALPlease Take a LookPTAL stands for "please take a look": a short request asking someone to review your code, document or change.
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
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.
