Are you currently preparing yourself for a call with your software provider? Or do some phrases show up as a big question mark in your head but you’re too embarrassed to admit it?
This article serves as a guide for non-technical people who don’t understand some of the technical terms, frequently mentioned by software developers, business analysts, project managers, and product owners. This guide will help you successfully communicate with them, understand their views, and feel comfortable in the software development world.
Important terms in software development
Let’s take a look at the most commonly mentioned (also by our clients) terms when it comes to software development.
In software development, greenfield refers to creating a system from scratch, for a new environment, from a clean slate with no legacy code around it. It’s an approach of starting fresh with no dependencies or restrictions.
- Staff Augmentation
An outsourcing strategy used to staff a project or as a response to business objectives. It’s a technique where an external company provides their engineers for you to hire temporarily or permanently.
- Technical Debt
A phrase used to describe a debt a business has to eventually pay with time, money and resources typically because of choosing speed over quality.
- 3rd party Integration
Addition of necessary external data, tools, plugins, etc to an existing project using different APIs instead of building it from scratch.
- Discovery Phase
Discovery or scoping phase is a process of collecting and analyzing crucial information about a project. It helps to get an in-depth understanding of the requirements, goals, scope and potential limitations.
Technology roadmap can refer to a flexible planning technique that matches short-term and long-term goals with specific technology solutions. It’s a strategic plan that defines a goal and outcome, including milestones and steps necessary to reach them.
In Scrum, sprint is a repeatable fixed time-box during which a product of the highest possible value is created. It’s a core of agile methodology and can be viewed as an event that wraps around all other scrum events.
- Legacy Code
Refers to a source code that is no longer supported. It can also refer to an operating system, hardware of file formats. In most cases, legacy code needs to be converted to a modern software language or platform.
In short, DevOps is a set of practices that combine software development and IT operations. They aim to shorten the system development process and ensure the continuous delivery of high-quality software.
Code refactoring is a process of restructuring existing computer code without changing its external behaviour. Refactoring is done to improve the design, structure or implementation of the software.
- Regression Test
A re-run of functional and non-functional tests to ensure the previously tested software still performs as intended after a change.
A software component that adds functionality to an existing computer program. Plug-ins enable customization of software.
- Responsive Design
An approach to web design that makes websites render well on a variety of devices or screen sizes.
- Spaghetti Code
A phrase used to describe an unstructured and difficult-to-maintain source code. It can be caused by a lack of programming style rules or frequently changing project requirements.
Asynchronous programming allows users to use an application while processes run in the background. This enhances the user experience. Asynchronous means that a process operates independently from other processes.
A branch in a computer program is an instruction that tells the computer to start executing different instruction sequence.
A provider of Internet hosting for software development and version control using Git. It encourages teamwork and real-time collaboration.
- Code Audit
A comprehensive analysis of source code in order to discover bugs or security breaches.
- Code Review
A software quality assurance activity during which one or several people check a program after implementation.
Generally speaking, modularity is the degree to which a system’s components may be recombined or separated.
- Proof of Concept
Evidence that a business idea works, usually a document that presents the feasibility of an idea.
- System Life Cycle
A series of stages that are worked through during the development of a new system. An organizational process of developing and maintaining systems that helps to establish a project plan.
Common acronyms you should know when outsourcing
Now, we can move on to decoding the acronyms you may come across while working with a software development house.
- DoD - Definition of Done - a list of criteria that must be met before a product increment is considered done.
- NDA - Non-Disclosure Agreement - a legally binding contract that establishes a confidential relationship.
- SaaS - Software as a Service - a software solution working on a pay-as-you-go basis
- PaaS - Platform as a Service - cloud platform services providing cloud components to certain software.
- API - Application Programming Interface - a connection between computers or computer programs.
- BA - Business Analyst - a person who analyzes and documents the market environment, processes or systems of businesses, helping to improve products and services.
- PM - Project Manager - a person who oversees the operations of individual projects.
- PO - Product Owner - a member of the Agile Team responsible for defining stories and prioritizing the team backlog.
- SM - Scrum Master - helps to facilitate scrum to the team by ensuring the scrum framework is followed.
- NFR - Non-functional Requirements - a requirement that specified criteria that can be used to judge the operation system.
- UAT - User Acceptance Testing - the final stage of the software development life cycle when the actual users test the software.
- MVP - Minimum Viable Product - a version of a product with enough features to be usable by early customers.
- MoSCoW - Must-have, Should-have, Could-require, Won’t-have - a prioritization technique used in management and software development to reach a common understanding with stakeholders.
- SDKs - Software Development Kit - a set of software tools and programs used by developers to create applications.
- CSS - Cascading Style Sheets - a style sheet language for describing the presentation of a document written in a markup language like HTML.
- SDH - Software Development House - a company focused on designing and building custom software solutions for a specific client.
- OOP - Object-Oriented Programming - a computer programming model that organizes software design around data or objects instead of functions and logic.
- IDE - Integrated Development Environment - software for building applications that combines common developers' tools into a single graphical user interface (GUI).
- SSL - Secure Socket Layer - a protocol for establishing secure links between networked computers.
- DOM - Document Object Model - a programming interface for web documents that treats XML or HTML documents as a tree structure.
- E2E tests - End-to-end Tests - testing from the end user’s experience by simulating the real user scenario.
- SPA - Single-Page App - a web application or website that interacts with the user by dynamically rewriting the current web page with new data, instead of loading entire new pages.
Software delivery people you’ll probably meet
During the outsourcing process, you will also meet a lot of people. Some of their roles are pretty straightforward, but some may be completely new to you. Let’s do a quick recap:
- Backend Developer - writes code that works at the server or database level.
- Business Analyst (BA) - helps with investigating business problems and serves as a bridge between the business and development people. BAs work closely with development teams, document product requirements and write user stories.
- Designer - creates the visual side of the software product following various design principles. There is also a position of a front-end designer that works not only with the desing itself but also creates UX/UI interfaces.
- Frontend Developer - implements the designer’s vision through elements of the product visible to end-users.
- Product Owner (PO) - comes up with product vision and is responsible for executing it, writing user stories, maintaining and prioritizing the product backlog.
- Project Manager (PM) - in charge of the project planning and execution.
- Scrum Master - serves and leads the team by organizing their work and supporting them.
- Tester - writes test scripts to verify the product functionalities and behaviours.
As you can see, there’s a lot to process in the technical terminology field. Do not get discouraged though, it all gets easier with time. We hope this guide helped you find your way in the complicated software world.
We at Selleo always ensure our partners feel comfortable and stay informed about the software development process. We eagerly explain all the intricacies of building powerful solutions, remaining flexible and open. Fill out the contact form to discuss your project in greater detail now!