API “Application Programme Interface” A standardised set of endpoints which act as a programmatic interface to an application.
Acceptance test A test conducted to determine if the requirements of a specification or contract are met.
Agile A time boxed, iterative approach to software delivery that builds software incrementally from the start of the project, instead of trying to deliver it all at once near the end.
Backlog A priority ordered list of tickets (or stories) to be worked through in each project.
Branch “Git Branch” A branch represents an independent line of development within Git.
Build The process by which source code is converted into a stand-alone form.
Cloud Cloud computing enables companies to consume compute resources as a utility - like electricity. Rather than having to build and maintain computing infrastructures in-house.
Code Review The systematic examination (sometimes referred to as peer review) of computer source code. It is intended to find mistakes overlooked in the initial development phase, improving the overall quality of software.
Customer Centric Selling A model of sales that involves spending time to understand the needs of a prospective customer and thinking of yourself as a consultant as opposed to a salesperson. Once you understand the company, solutions can be positioned that align perfectly with the needs of the prospective customer.
Design pattern A general reusable solution to a commonly occurring problem within a given context in software design.
Domain Model A conceptual model of all the topics related to a specific problem. It describes the various entities, their attributes, roles, and relationships, plus the constraints that govern the problem domain. It does not describe solutions to the problem.
Feature A specific piece of functionality with a solution. Should be able to be delivered as a standalone piece. Ties into the idea of Agile deliverables.
Feature creep The ongoing expansion or addition of new features in a product. An anti-pattern. Ends up in bloated software that is over-complicated and a worse experience to use and harder to maintain.
Functional specification A formal document that details all features and specifications of a project. During the requirements phase a functional specification is one of the key documents created.
Gap analysis Involves the comparison of actual performance with potential or desired performance. Can be thought of as ‘the gap between where we are now and where we want to be’.
Hotfix Code (sometimes called a patch) that fixes a bug in a product. Often deployed in an ad-hoc fashion outside of the typical release cycle.
Integration The process of linking together different computing systems and software applications physically or functionally, to act as a coordinated whole.
LOC “Lines of Code” A number that represents how many lines of code a given application is. Generally, a meaningless measurement as the same programme could be broken into lines in many different ways.
Lean Creating more value for customers with fewer resources. Understanding customer value and focusing key processes.
MVP “Minimum Viable Product” A product which has just enough features to gather validated learning about the product and its continued development. The opposite of an upfront large feature set with no validation of how useful these features will be.
Open Source Software whose source code is available for modification or enhancement by anyone, as defined in their licence.
PaaS “Platform as a Service” A platform allowing customers to develop, run, and manage applications without the complexity of building and maintaining the infrastructure themselves.
Pair programming An Agile software development technique in which two programmers work together at one workstation. One programmer ‘drives’ the development while the other acts as a ‘navigator’.
Pull Request A method of submitting contributions to a project. This is done using a version control system (Git), and forms part of the process of doing code reviews.
ROI “Return on Investment” A calculation that defines the profitability of a project or a feature, based upon the cost of development and maintenance against the expected value generation.
Readme A file containing information about the given software project, forming part of its documentation.
Refactoring The process of restructuring existing computer code (changing the factoring), without changing its external behaviour. Part of decreasing technical debt, and improving maintainability.
Release The distribution of the final version of an application. A software release may be either public or private and generally constitutes the initial generation of a new or upgraded application. With continuous delivery releases should happen often.
SCRUM An Agile software development model based on multiple small teams working in an intensive and interdependent manner. Outlines a set of best practices and processes for working in an Agile manner.
SaaS “Software as a Service” A software distribution model in which applications are hosted by a vendor or service provider and made available to customers over the internet. Often billed as like an ongoing utility.
Smoke Testing Non-exhaustive software testing, ascertaining that the most crucial functions of a program work, but not bothering with finer details.
SPA “Single page application” A type of web application that uses logic on the customer-side to manipulate and display data, often used in conjunction with an API.
Spike A time-boxed research activity. Usually used to explore different options of implementing ideas and systems and their pros and cons.
Sprint A regular, repeatable work cycle in Agile methodology during which work is completed and made ready for review. Purepoint typically uses two week sprints.
TCO “Total Cost of Ownership” The total direct and indirect costs of a system, including build, maintenance, training and operations.
TDD “Test Driven Development” A method of software development in which unit testing is repeatedly done on source code. Simply put specifications are converted into tests and code built to pass those tests.
Technical Debt A concept in programming that reflects the extra development work that arises when code that solved problems in the short run is used, which may not be best for the overall solution. Often goes hand in hand with feature creep, or changing specifications.
Timebox Allocating a fixed time period to a planned activity.
Unit Testing A software development process in which the smallest testable parts of an application, called units, are individually and independently scrutinized for proper operation. Unit testing is often automated but it can also be done manually.
UX “User Experience” Encompasses all aspects of the end-user’s interaction with the company, its services, and its products.
Vanity Metric A metric that inflates a company’s ego but doesn’t measure anything useful. Things like registered users, downloads, and raw page views. They are easily manipulated and do not necessarily correlate to the numbers that truly matter: active users, engagement, cost per customer acquisition, and ultimately revenues and profits.