Terms used by software programmers and developers

Terms used by software programmers and developers

As a creator of an idea that will become a software application you will spend a lot of time talking with developers, programmers and coders. It is not unusual to listen to a conversation or read something they have written and be confused about the terms they use and what they mean. This glossary has been compiled to assist with understanding the landscape.


3-tier application A program that is organized into three major parts: the workstation or presentation interface; the business logic; and the database and related programming. Each of these is distributed to one or more separate places on a network.
agile software development Calls for keeping code simple, testing often, and delivering small, functional bits of the application as soon as they’re ready. The focus is to build a succession of parts, rather than delivering one large application at the end of the project.
Amdahl’s law Stipulates that, in a program with parallel processing, a relatively few instructions that have to be performed in sequence will have a limiting factor on program speedup such that adding more processors may not make the program run faster.
amelioration pattern A design pattern that describes how to go from a bad solution to a better one.
antipattern A frequently used, but largely ineffective solution to a problem. The term was originally used to refer to a design pattern gone wrong

(application programming interface)

A specific method prescribed by a computer operating system or by an application program by which a programmer writing an application program can make requests of the operating system or another application
application integration The process of bringing data or a function from one application program together with that of another application program. Where these programs already exist, the process is sometimes realized by using middleware
application program A program designed to perform a specific function directly for the user or, in some cases, for another application program.
aspect-oriented programming


An approach to programming that allows global properties of a program to determine how it is compiled into an executable program.
back end


Part of a website or web service that makes it work and includes applications, web servers, and databases.
best practice A technique or methodology that, through experience and research, has proven to reliably lead to a desired result.
bug A coding error in a computer program.
build A version of a program, usually pre-release, and identified by a build number, rather than by a release number. As a verb, to build can mean either to write code or to put individual coded components of a program together
build tool A programming utility that is used when building a new version of a program

(C- Sharp)


C-sharp is a powerful, object-oriented programming language developed by Microsoft in 2000. C-sharp is utilized in developing desktop applications and more recently, Windows 8/10 applications and requires a .NET framework to function. C# has a variety of features which makes it easier to learn for the beginners. The code is consistent, and logical as compared to C++. it is perfect to develop web applications, desktop application and also proved itself in VR, 2D, and 3D gaming. Cross-platform tools like Xamarin have written in C# makes it all devices compatible.
C/CPP C++ is seeing as more performing than dynamically typed languages because the code is type-checked before it is executed on real grounds. Core areas of developments are Virtual Reality, gaming, computer graphics.
Capability Maturity Model A methodology used to develop and refine an organization’s software development process. The model describes a five-level evolutionary path of increasingly organized and systematically more mature processes.
cloud computing Storing and accessing information and services via the internet instead of on your computer.


A simplified form of language with very strict rules and syntax used by humans to tell computers what to do.
coding language


A specific set of rules and syntax for writing the code that tells computers what to do. This includes programming, assembly and markup languages such as Ruby, PHP, and HTML.
color theory Characteristics of colors and the relationships between them.
computer programming The process of writing and implementing various instructions for a computer to do a particular task (or set of tasks), using code.

(Cascading Style Sheets)

Code that tells browsers how to format and style HTML for a web page and controls things such as font type and colors.
CSS3 The most current version of CSS.
data modelling The analysis of data objects that are used in a business or other context and the identification of the relationships among these data objects.
database Collection of electronic information (data) stored on a web server.
debugging The process of locating and fixing or bypassing bugs (errors) in computer program code or the engineering of a hardware device
design pattern A written document that describes a general solution to a design problem that recurs repeatedly in many projects
development environment The set of processes and programming tools used to create the program or software product
development process A set of tasks performed for a given purpose in a software development project
driver A program that interacts with a particular device or special kind of software. The driver contains special knowledge of the device or special software interface that programs using the driver do not
driver development kit


A set of programs and related files that are used to develop a new software or hardware driver or to update an existing legacy application driver for an operating system
elegant solution A solution in which the maximum desired effect is achieved with the smallest, or simplest effort
embedded systems programming The programming of an embedded system in some device using the permitted programming interfaces provided by that system
enterprise application integration The plans, methods, and tools aimed at modernizing, consolidating, and coordinating the computer applications in an enterprise
entity-relationship diagram A data modelling technique that creates a graphical representation of the entities, and the relationships between entities, within an information system
ergonomics The science of refining the design of products to optimize them for human use. Human characteristics, such as height, weight, and proportions are considered, as well as information about human hearing, sight, temperature preferences, and so on
exploratory model A systems development method that consists of planning and trying different designs until one of them seems to be the right one to develop
Extreme Programming A pragmatic approach to program development that emphasizes business results first, and takes an incremental, get-something-started approach to building the product, using continual testing and revision
feature creep A tendency for product or project requirements to increase during development beyond those originally foreseen, leading to features that weren’t originally planned and resulting risk to product quality or schedule
front end The part of a website that can be seen by users and is made up of HTML, CSS, and JavaScript code
functional programming A style of programming that emphasizes the evaluation of expressions rather than the execution of commands
functional specification A formal document used to describe in detail for software developers a product’s intended capabilities, appearance, and interactions with users
Gantt chart A horizontal bar chart frequently used in project management that provides a graphical illustration of a schedule that helps to plan, coordinate, and track specific tasks in a project
gap analysis The study of the differences between two different information systems or applications, often for the purpose of determining how to get from one state to a new state. Sometimes spoken of as “the space between where we are and where we want to be.
genetic programming A model of programming which uses the ideas of biological evolution to handle a complex problem, most appropriate with problems in which there are a large number of fluctuating variables, such as those related to artificial intelligence.
gold code The final, ready-to-manufacture (that is, replicate onto media) version of the software.
grid system Set of columns and rows that can be used as guidelines to arrange content on a web page.
help system A documentation component of a software program that explains the features of the program and helps the user understand its capabilities.
hotfix Code (sometimes called a patch) that fixes a bug in a product

(Hypertext Markup Language)

A coding language used to put content on a web page and give it structure. Since HTML doesn’t tell computers to do anything, it’s not considered a programming language (this is a distinction that only matters in job interviews when an interviewer asks if you can “program”).
HTML element HTML code made up of an opening tag, a closing tag, and information between them.
HTML5 APP A web application designed specifically for use on mobile phones using the latest HTML5 and JavaScript technologies.
human factors The study of how humans behave physically and psychologically in relation to particular environments, products, or services
information architecture The set of ideas about how all information in a given context should be treated philosophically and, in a general way, how it should be organized; this is expressed in an information architecture document
information design The detailed planning of specific information that is to be provided to a particular audience to meet specific objectives. In one hierarchical model, the information design follows the information architecture and information planning stages
integrated development environment A programming environment that has been packaged as an application program, typically consisting of a code editor, a compiler, a debugger, and a GUI builder

(independent software vendor)

A company that makes and sells software products that run on one or more computer hardware or operating system platforms
iterative Describes a heuristic planning and development process where an application is developed in small sections called iterations
Java Java forms the base for the Android operating system and used for making a variety of back-end applications. Java is object-oriented and is robust, it is simpler than C++ because Java uses automatic memory allocation and garbage collection. Java is highly cross-platform compatible or platform independent. Since you can code anywhere (I mean on all devices), compile into low-level machine code, and finally, execute on any platform using JVM – Java Virtual Machine (which is platform dependent).
JavaScript JavaScript is light weighed, interpreted and plays a major role in front-end development. JavaScript provides an easy way to create interactive web pages smoothly.
joint application development A methodology that involves the client or end user in the design and development of an application, through a succession of collaborative workshops called JAD sessions
KISS Principle

(Keep It Simple, Stupid)

The principle that people want products that are easy to learn and use, and that companies realize time and cost benefits by producing such products

(thousands of lines of code)

A traditional measure of how large a computer program is or how long or how many people it will take to write it, sometimes used as a rough measure of programmer productivity
Lean or Lean Startup A popular process for launching products and quickly iterating on them to better meet customer needs, based on continuous customer feedback. Think of it like agile but for companies. This term was popularized by the book The Lean Startup.
lean programming A concept that emphasizes optimizing efficiency and minimizing waste in the development of a computer program; the concept is also applicable to all enterprise practices
legacy application An enterprise application that is based on languages, platforms, and/or techniques that predate current technology
metric The measurement of a particular characteristic of a program’s performance or efficiency
Minimum Viable Product


A product with the minimally adequate features to meet the needs of early adopters, often used to test a concept or idea without a huge outlay of resources.

Popular among lean startups.

mood board An inspirational collection of content showing the visual style for a website including color palette, images, icons, fonts, etc.
native APP A mobile app built using the software development kit (SDK) native to a specific mobile device.

Example: any app coded for the ios (Apple) operating system

Objective – C An object-oriented programming language. It is used by Apple for the OS X and iOS operating systems and their application programming interfaces (APIs).
object-oriented programming A programming model organized around objects rather than actions and data rather than logic, based on the idea that what we really care about are the objects we want to manipulate, rather than the logic required to manipulate them.
Object-Oriented Programming


A popular way to design software programs (commonly known as a design pattern) where code is organized into objects that have specific and unique attributes and abilities.

Example: A blog might include a blog post object that has a title, date, and content attribute

Examples of OOP language: Ruby, PHP, Python

open source Describes a program whose source code is made available for use or modification as users or other developers see fit.
outsourcing An arrangement in which one company provides services for another company that could also be or usually have been provided in-house
Pasta Theory of Programming The idea that various programming structures can be likened to the structures of well-known pasta dishes: unstructured procedural programming is called spaghetti code , structured programming is called lasagne code , and object-oriented programming is called ravioli code
patch A quick-repair job for the problems in a piece of programming, often available for download through the software maker’s Web site
pattern See design pattern
peer review A process used for checking the work performed by one’s equals (peers) to ensure it meets specific criteria.
PERT chart

(Program Evaluation Review Technique)

A project management tool used to schedule, organize, and coordinate tasks within a project developed by the U.S. Navy in the 1950s.
PHP PHP stands for Hypertext Pre-processor, is a general-purpose programming language. Clearly, PHP is a scripting language, which runs on a server, and it is used to create web pages written in HTML. It is popular because it is free, cheap, easy to set up and simple to use for new programmers. PHP is a very strong option for web developers around the globe. It is widely used to create dynamic web page content, and images used on websites. Also, PHP is well dressed for WordPress CMS (Content Management System).
polymorphism From the Greek meaning “having multiple forms,” the characteristic of being able to assign a different meaning or usage to something in different contexts – specifically, to allow an entity such as a variable, a function, or an object to have more than one form.
portability A characteristic attributed to a computer program if it can be used in an operating system other than the one in which it was created without requiring major rework.
PRINCE2 A project management methodology developed by the government of the United Kingdom that makes use of the best proven practices from a variety of industries and backgrounds.
program layer A separate functional component that interacts with others in some sequential and hierarchical way, with each layer usually having an interface only to the layer above it and the layer below it.
programming language Technically a subset of coding languages that specifically tell computers what to do vs. How to display something. For example, HTML and CSS are not considered programming languages but instead are markup languages.
project planning A discipline for stating how to complete a project within a certain timeframe, usually with defined stages, and with designated resources.
prototyping A systems development method (SDM) in which a prototype (an early approximation of a final system or product) is built, tested, and then reworked as necessary until an acceptable prototype is finally achieved from which the complete system or product can now be developed.
pseudocode A detailed yet readable description of what a computer program or algorithm must do, expressed in a formally styled natural language rather than in a programming language.
Python A general purpose, user-friendly programming language that is clear, intuitive and almost similar to the English language.  It is popular in areas like scientific computing, and machine learning and engineering, Python supports a programming style that uses simple functions and variables.
rapid application development


An approach based on the concept that products can be developed faster and of higher quality through gathering requirements using workshops or focus groups; prototyping and early, reiterative user testing of designs; reusing software components; and using less formality in communication documents, such as reviews.
Rational Unified Process


An object-oriented and Web-enabled program development methodology that is said to be like an online mentor that provides guidelines, templates, and examples for all aspects and stages of program development.
refactoring A process that improves the internal structure of a software system without changing its external behaviour.
regression testing The process of testing changes to computer programs to make sure that the older programming still works with the new changes.
responsive design & development A way to design and code websites such that they can adapt to different-sized devices like phones, tablets, wearable devices, etc.
risk management The process of planning, organizing, leading, and controlling the activities of an organization in order to minimize the effects of risk on an organization’s capital and earnings.

(return on investment)

For a given use of money in an enterprise, the amount of profit or cost saving realized.
Ruby Ruby has dynamically typed language, it does not have hard rules and it is a high-level language which resembles with the English language to a great extent. Ruby can build an application with less line of code.
runtime When a program is running.

(software development kit)

A set of programs used by a computer programmer to write application programs.
SDK (software development kit) Set of tools for creating a specific kind of software.
semantic element


HTML element that gives the browser more information about the content in it.

Examples: aside (for sidebars), header, footer.

service pack An orderable or downloadable update to a customer’s software that fixes existing problems and, in some cases, delivers product enhancements.
shotgun debugging The debugging of a program, hardware, or system problem using the approach of trying several possible solutions at the same time in the hope that one of them will work.
sitemap An outline or map of the pages needed for a website. Usually drawn using lines and boxes to visualize the hierarchy of pages.
smoke testing Non-exhaustive software testing, ascertaining that the most crucial functions of a program work, but not bothering with finer details.
software development The process of programming, documenting, testing, and bug fixing involved in creating and maintaining all manner of software applications and frameworks.
spaghetti code Computer programming that is unnecessarily convoluted, and particularly programming code that uses frequent branching from one section of code to another.
spiral model A systems development method (SDM) that combines the features of the prototyping model and the waterfall model.
SQL SQL (es-que-el) stands for Structured Query Language, is a programming language to operate databases. It includes storing, manipulating and retrieving data stored in a relational database. SQL keeps data precise and secure, and it also helps in maintaining the integrity of databases, irrespective of its size. SQL is used today across web frameworks and database applications. If you are well versed in SQL, you can have better command over data exploration, and effective decision making.

(Structured Systems Analysis & Design Method)

A widely used computer application development method in the UK that divides an application development project into modules, stages, steps, and tasks, and provides a framework for describing projects in a fashion suited to managing the project.
structured programming A subset of procedural programming that enforces a logical structure on the program being written to make it more efficient and easier to understand and modify.
Swift Swift is a general-purpose, open-source, compiled programming language developed by Apple Inc.  Swift was designed to be beginner-friendly and fun to use. Swift is considered to be a faster, more secure, and easier to read and debug than its predecessor Objective-C.
synchronize-and-stabilize A systems development life cycle model in which teams work in parallel on individual application modules, frequently synchronizing their code with that of other teams, and debugging (stabilizing) code regularly throughout the development process.
systems development life cycle model


One of a number of structured approaches to information system development, created to guide all the processes involved, from an initial feasibility study through maintenance of the completed application. Models include the waterfall model; rapid application development (rad); joint application development (jad); the fountain model; the spiral model; build and fix; and synchronize-and-stabilize.
systems development method


A work discipline that is chosen by the developers of a computer system or product as a way to ensure successful results.
systems thinking A holistic approach to analysis that focuses on the way that a system’s constituent parts interrelate and how systems work over time and within the context of larger systems.

(total cost of ownership)

A type of calculation designed to help consumers and enterprise managers assess both direct and indirect costs and benefits related to the purchase of any IT component.
text editor Software used to write plain text (text with no formatting) that’s used for coding and programming. Examples: sublimetext, textedit, textwrangler, Notepad++
Tool Kit


A companion program to Tool Command Language (Tcl) for creating graphical user interfaces. Together with Tcl, Tk is a rapid program development tool.
UI (user interface) How a website is laid out and how users interact with it.
user acceptance testing A phase of software development in which the software is tested in the “real world” by the intended audience.
user flow Map of the path users take from getting to a website to taking an action on the site.
user interface Everything designed into an information device with which a human being may interact — including display screen, keyboard, mouse, light pen, the appearance of a desktop, illuminated characters, help messages, and how an application program or a Web site invites interaction and responds to it.
user persona Profile of an imaginary person who would use a website; used to define who a site is for and what their needs are.
user research Investigating how users act and what they need and want in order to better design a website for them.
utility  A small program that provides an addition to the capabilities provided by the operating system.
UX (USER EXPERIENCE) What a user experiences when they browse a website. This can range from straightforward usability (can they accomplish a given task?) To the less tangible (what do they feel when they’re on the website?).
version control Software used to keep track of changes to code files, similar to the Track Changes feature of Word. Used by software teams so that they can work on the same code files at the same time without overwriting one another’s work.

Example: Git, Subversion

virtual reality or VR A computer-generated simulation of a three- dimensional environment that users can interact with in a somewhat realistic way, often using equipment like a helmet with a screen or interactive gloves.
waterfall model


Popular version of the systems development life cycle model that describes a linear and sequential development method.
web app or web application A website with complex functionality and heavy interactivity.

Example: Twitter, Facebook, Bank of America

web application framework A series of pre-written code that is used by developers as a starting point to build their web applications.

Examples: Ruby on Rails, Bootstrap, angularjs

web designer A designer who specializes in designing websites and web applications.
web developer A software developer who specializes in coding websites and web applications.
web services Services made available from a business’s Web server for Web users or other Web-connected programs.
wireframe A simple sketch of the key information that goes on each web page, usually done in black and white with boxes, line, and placeholder text.
write-only code Programming code that is hard to read.
If you would like to learn more about this topic you can find all of the information you need including comprehensive descriptions about every aspect of starting and building a company here.