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 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 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.
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.
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 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.
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.
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 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.