Technospeak terms & glossary

Back
David
David
- Apr 24, 2024

This is a reference guide for some technical terms we may use when we’re explaining technical concepts, solutions or upgrade requirements.

Term

Explanation

Application Programming Interface (API)

APIs are what developers use to connect different backend systems to each other.

Modern cloud based software have developer APIs to allow information to be read from or written to the application.

Example: 

Back end development

Back end development is development undertaken on server-side elements of a website or software application.

For example - databases, content management system integration, API integrations, architecture etc.

Content Management System (CMS)

A part of a website or application that allows the owners/administrators of the application to add/edit the content (text, photos, media etc) that a website or application should display.

Front end development

Front end development is development on the elements of a website or software application that users see and interact with.

Headless CMS

A headless content management system, or headless CMS, is a back end-only web content management system that acts primarily as a content repository. A headless CMS makes content accessible via an API for display on any device, without a built-in front end or presentation layer. (source: Wikipedia)

The advantage of a headless CMS is that it is detached from the user interface, meaning the user interface can be swapped in a redesign or rebuilt in a different technology without having to change the CMS.

A disadvantage can be an overhead (in effort and complexity) of building and maintaining separate systems.

Search Engine Optimisation (SEO)

SEO is the practice of improving a website, both in terms of code and content to help increase its visibility via search engines.

Born Digital recommends engaging an SEO agency to assist with this process.

Software End of Life (EOL)

End of Life refers to the stage where a version of software no longer receives any support by its vendor. Critically, EOL versions no longer receive security support, which means that operating an EOL version of software/a framework has an increased security risk.

Generally speaking, it is best practice to avoid operating end of life software/frameworks.

Software Framework

A software framework provides a standard way to build and deploy applications and is a universal, reusable software environment that provides particular functionality as part of a larger software platform to facilitate the development of software applications, products and solutions. (source: Wikipedia)

Frameworks provide the foundation of functionality for an application. It is not feasible to avoid the use of software frameworks, as it would increase time, cost, and risk compared to using an established framework.

Many commonly used frameworks are built and maintained by large organisations, such as Microsoft and Google, who spend a huge amount of manpower on enhancing and maintaining these frameworks.

Example Frameworks include:

  • .NET (Microsoft)

  • Angular (Google)

  • React (Meta)

Software Product Lifecycle

The software product lifecycle refers to the lifecycle of a software product from initial to general releases, maintenance and eventual end of life.

Commonly, a software product lifecycle policy is split into several stages, such as:

  1. Active Support stage

    1. At this stage, the version is actively supported with security and bug fixes

  2. Security Support stage

    1. At this stage, the version is only supported with security fixes

  3. End of life

    1. At this stage, the version no longer receives security fixes

Software Long-Term Support (LTS)

Long-Term Support refers to a version of software or framework that the vendor has committed to providing a longer maintenance and security support stage for compared to standard support versions.

It is distinguished from short-term support or standard-term support (STS), which have a comparatively short lifecycle.

Software versioning

Software versioning is the practice of assigning names or numbers to different versions of the same software.

A very common software version scheme is Semantic versioning (aka SemVer), which is broken down into major, minor, and patch releases - e.g. 1.1.1 would be major version 1, minor version 1, patch version 1.

Major versions tend to contain breaking changes. Minor versions tend to contain functionality enhancements, and patches tend to contain bug fixes.

Moving between major versions of software tends to be more time consuming than moving between minor versions