Have you been involved in meeting where technical terms are thrown around without enough context for you to understand?
In this article you will find the answers you have been looking for, a more personal touch in the description of some common tech terms used in software development.
API
API or Application Programming Interface can be thought of as the waiter at your favorite restaurant. You give your order to the waiter, they pass your instructions to the chef who cooks your meal for you (prepares your data) and then the waiter brings back your food. It serves as the connection between your backend and frontend.
The video below makes showcase this analogy nicely.
The most commonly used API is known as a REST or RESTful API, which stands for representational state transfer.
A RESTful API is a server side solution/service/app. It is a stateless backend that doesn’t care about which client is connected to it. All it does is expose different URL’s (endpoints) to which you can send requests and depending on which URL (endpoint) you send a request, something different will happen (this depends on what the endpoint has been designed to do).
Native/Hybrid
Imagine you have a great idea for an app. You feel that it would do well in the market so you decide to launch it on both iOS and Android app stores. To build the apps, you have two approaches to choose from:
The first one is using Native development. In this format, the app will be created using both iOS and Android software. However, each time you want to make a change, e.g. add a new feature, your software development team will need to update two separate codebases, one for the app built-in iOS and another one for the Android version.
The second choice is to use Hybrid software such as Flutter. With this option, you will decrease the amount of development work to be completed: with only one language and one code base your team will create the apps for both Android and iOS. Moreover, future changes or updates can be done at one single place and both platforms will receive the changes.
The hybrid approach works on all operating systems whilst Native development works only in specific ones.
Integration
Systems or IT integration stands for the connection of applications, information, devices, and API’s across your organization. The different parts of your software will be combined into one single system.
Implementing systems’ integrations will allow a single system to perform better than the sum of independent ones. This will result in an increase in your company’s productivity, efficiency, and agility.
The 4 main methods of software integration are:
- Star integration
- Horizontal integration
- Vertical integration
- Implementation of the common data format
Database
A database is where your information is stored (an organized collection of data).
There are two ways in which you can store your data, known as SQL and NoSQL databases. The following infographic provides some context:
SQL databases are relational, which means that they use a pre-defined schema to structure the data and are table-based. If an entry in a row of a SQL database is missing, the database won’t accept the row.
On the other hand, NoSQL databases are non-relational databases. Instead of using pre-defined schemas, they use dynamic schemas to store unstructured data. In this option, you may store data in different formats: as a document, a graph, key-value pairs, or even wide-column stores.
SDK
An SDK or Software Development Kit is a collection of ‘tools’ that comes in one package that can be installed. An SDK simplifies the creation of applications for the developer.
They can include a range of things like (not limited to) libraries, code samples, guides, processes, and documentation. A developer can download, install, and use an SDK during the development process.
Agile
In a software development team, Agile development is a system as well as a mindset used by software engineers during the development phase. It enables them to be readily adaptable to a fast-paced and rapidly changing environments.
Full Stack Developer
A full-stack developer is a professional who works with both the frontend and backend of software development.
They have the ability to create entire applications by building both the client-side and the server-side of the software if necessary.
A full-stack developer typically chooses a tech-stack, for example, the MEAN stack pictured below to build out entire applications.
Other popular tech-stacks include MERN, MEVN, LAMP, the Serverless Stack, and Flutter for the web.
UI vs UX
There is a lot of confusion between the terms of UI and UX. They are commonly used during the design phase of software development but they don’t mean the same. In very simple terms:
UI or user interface is the series of screens, pages, and visual elements that allow users to interact with an app, a webpage, or a product. This is what shows up on the screen to users.
UX or user experience is how someone feels when they’re using an app, website, or product.
Good user experience incites certain positive emotions like joy, happiness, and satisfaction when interacting with your product.
UX plays a huge role in your product’s competitiveness. From your perspective, you may have built something extremely valuable for your target audience But if they don’t like to use it or if it incites negative emotions, your product loses commercial value and the adoption of new customers.
Check the video below for a detailed explanation using analogies that makes clear the distinction between the two concepts.
Data Architecture
When designing and creating an application, the developer needs to consider what data is collected, how that data is stored and used, and if there are restrictions or rules that regulate such data. The definition as given by Wikipedia is as follows:
“In information technology, data architecture is composed of models, policies, rules or standards that govern which data is collected, and how it is stored, arranged, integrated, and put to use in data systems and in organizations.”
Tech Stack
A tech stack is the chosen combination of programming languages and technologies the developer or company chooses to build the application. The combination may include UI/UX solutions, servers, patterns, frameworks, languages tools and libraries.
The most common tech stacks were mentioned in section 7 – the full stack developer.
Conclusion
Now that you know the top 10 common tech terminologies, you are well-equipped for your next technical meetings with your development team.