Every industry requires software and often those involved in a discussion with a software team or an outsourcing software company might not be technical people. For instance, if a medical practice in the USA is looking for an EHR software or an educational institution requires an ERP system – they are business leaders and knowledge experts in their field but it is not often that they be aware of software terminology. Here is a quick guide to technical terms that may inevitably crop up in a software discussion at the start as well as once the product goes into development life cycle.
Common technical terms and what they mean
There may be countless technical words used in the software industry and it may be impossible to cover them all. However below are some of the most commonly used phrases in the software world, that will give you a good head start.
Greenfield
Greenfield is a software development term that refers to the development of a brand new system from scratch. There are no source codes (or legacy code), no older versions of the software, and no dependencies or restrictions.
Technical debt
Technical debt usually refers to the cost involved in reworking code when short cuts or poorly rewritten code are taken during the development cycle to develop a quicker solution. Imagine a project where there are 2 potential options – one is quick and simpler but will require extensive modification in the future. The second has a better design but will take more time to implement. As obvious, there is a technical debt in terms of finance and resource outlay in the first option. However, it can be considered when developing a minimal viable product or MVP to go to market fast.
Microservices architecture
Also known as microservices architecture, this framework develops a separate container for every function. Each function will communicate with the different containers or functions using a communication standard called API (Application Programming Interface).
The advantage of a microservices architecture is that each function is an independent block of code, any updates to functionality in one block will not affect the others. Updates can be made faster without the need to extensively test other functions. This is the drawback of monolithic architecture where it is one giant block of code and any changes are a time-consuming process.
Proof of concept
A proof of concept is usually the evidence that a business idea or product idea can work. It is usually a pilot project of a product idea to test an assumption before going into full out development.
Technology Roadmap
A roadmap, as the name suggests, helps to understand current needs and therefore predict future needs. In software development, a software or technology roadmap is a planning technique that enables teams to obtain a high-level overview of all short-term and long-term development needs of the business. It answers the ‘Why’, ‘What’ and ‘When’ of IT investment
Story points
Story points are a unit of measure in Agile project management that provides an estimate of total time and effort required to complete a given story (a story usually included many tasks). A number is assigned to each story and this number is an estimate of total effort to complete. For instance a 1 story point means it will take half the time to complete it compared to a story that has 2 story points against it.
Sprint
A project can take months and even years to complete. The agile methodology of project management breaks the project down into bite-sized manageable chunks called ‘sprints’. A sprint is typically 1- 4 weeks long and the purpose is to complete a set of tasks within that period. The sprint length is usually set at the start of the project. JIRA is a popular project management system that uses sprints.
Responsive design
This is a web design approach that is used in all modern web interfaces. What it means is that the content on a web page is able to adjust its display to different screen sizes. For instance, a website can be viewed on a laptop, desktop, or a smaller mobile screen without any loss in functionality or readability.
Legacy systems
Legacy systems are outdated/obsolete hardware or software that no longer supports interactions with newer technologies but still are in use. This includes obsolete computer hardware as well as obsolete programming language and applications.
Re-engineering
Software re-engineering is upgrading a solution or migrating it to a more advanced platform. The features may remain the same or maybe enhanced based on the requirement.
This should not be confused with code refactoring, where the code of an existing program is restructured and cleaned up.
DevOps
DevOps is a combination of development and operations. What it means is that developers and stakeholders (IT operations that will use the end product) constantly interact about the project and work on incremental upgrades that will go live. In short, it aligns software to expectations.
Plugins and third party integrations
Both of them are existing or readily available computer programs that can be used when developing your own software product. There is a difference between the two, a plugin has to be installed in the host application while a third party integration is making two different solutions to communicate information between them. An example of a plug-in is the Yoast SEO tool that improves the SEO performance of your WordPress website. Payment gateways are an example of third party integrations.
Bug
A software bug is a fault, flaw or a simple error in the software’s communication, be it in coding, design, operation or development, that causes a faulty, incorrect or unexpected result. It can cause the software to crash, miss commands or exhibit control flow errors. Bugs once identified and fixed by the development team.
Code review
Commonly referred as CR, a code review is a process where an experienced developer or developers review the codes written by another developer, in order to check for bugs and other faults after implementation.
Release
The release refers to the distribution of a newer version of the software. Releases can be both public or private and usually involves the unveiling of an upgraded version of the software.
Common Acronyms used in Software Development
Here are some acronyms that will come up in any discussion about software.
PaaS – Platform as a Service: Cloud computing services like Amazon AWS provide cloud servers and related components to customers.
SaaS – Software as a Service: A software license and delivery model where applications are delivered by vendors who own the software but provide the software usually on a subscription model to customers.
API – Application Programming Interface: It acts as a bridge between two or more different software or applications and allows them to talk to each other.
UAT – User Acceptance Testing: Also known as end-user testing is where the software is tested in the real world with its intended audience.
NDA – Non-Disclosure Agreement: A contract between two or more parties that binds them with confidentiality and prevents important data from being leaked or shared.
CSS – Cascading Style Sheets: A style sheet language that describes how the markup language is supposed to be seen on screens.
SDKs – Software Development Kit: A set of programs and tools that developers use to develop softwares for various platforms.
MVP – Minimum Viable Product: A product or service with minimum or just enough features to be used by early customers to check for market viability and enable future product development.
MoSCoW – Must-have, Should-have, Could-require, Won’t-have: A prioritization method that helps reach a common understanding with stakeholders in terms of management.
SSL – Secure Socket Layer: A security technology that establishes a secure connection between a server and a client – through an encrypted link or a web server – that gives customers the confidence to share information. It is indicated by a lock icon and HTTPS in the site address.
We hope that our article has cleared some of your doubts about the technical jargon.