There are [too] many acronyms and practices that you might not know, especially when you are a beginner in this IT/software/dev business.
IMHO (in my humble opinion ^^), it’s not necessarily a good thing to use acronyms for anything and everything as anyone new to this business would be lost in translation in a typical business meeting.
It often involves mnemonic techniques to simplify essential concepts, but, at the same time, it might add some noise, which can make it more difficult to understand.
Anyway, you’d better know these terms, so here are some.
There are various meanings:
- Read The Fancy Manual
- Read The Full Manual
- Read The Fabulous Manual
- Read The Full Manual
The idea is to read the documentation before using any framework, programming language or tool.
Keep it simple stupid: designs and systems should be as simple as possible to get excellent user acceptance and interaction levels.
It’s pretty popular in software development, but U.S. Navy and the United States Air Force also use this term.
Like RTFM, it has many variants, for example:
- Keep it simple, silly
- Keep it short and simple
- keep it simple and straightforward
- keep it simple, soldier
Literally “You Ain’t Gonna Need It”. It means that you should not add features unless it’s vital.
In other words, don’t try to add too many functionalities just because you assume it could be helpful. You’d better start with a very light base and only add features that bring value.
It means “Create, read, update, and delete”. These are essential operations in programming. CMS (content management systems) such as WordPress are a great example of a CRUD system.
Single-responsibility Principle, Open-closed Principle, Liskov substitution principle, Interface segregation principle, Dependency Inversion principle.
It’s a mnemonic acronym that highlight five critical software principles :
The Single-responsibility principle: “There should never be more than one reason for a class to change.” In other words, every class should have only one responsibility.
The Open–closed principle: “Software entities … should be open for extension, but closed for modification.”
The Liskov substitution principle: “Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it.” See also design by contract.
The Interface segregation principle: “Many client-specific interfaces are better than one general-purpose interface.”
The Dependency inversion principle: “Depend upon abstractions, [not] concretions.
Don’t Repeat Yourself! It’s a major principle that aims to minimize repetition in the software. Repeating code is considered a bad practice, especially for maintainers.
When you apply DRY correctly:
a modification of any single element of a system does not require a change in other logically unrelated elements
It stands for “Application Programming Interface”, and it’s like a menu in a restaurant but for a particular kind of customer: programs.
Unlike a user interface (~ a regular menu), it’s not intended to be used directly by the end-user. It’s meant for a program.
The idea is to only expose the valuable data for other programs, not the internal logic and details. It’s a widespread way computers communicate with each other over the internet.
CRM stands for Customer Relationship Management. It’s usually software that contains all customer interactions for the business.
The company uses it to improve its service and increase sales by aggregating qualified information and automating tasks through sales pipelines.
It’s a Software Development Kit, which is a toolbox for developers. You may have heard about iOS, Android, or Facebook SDK. They provide helpful methods and subroutines for developers who want to interact with their platform.
Representational state transfer (REST) is a software architectural style that deeply relies on HTTP.
It’s not uncommon to read about RESTful API or RESTful systems. With this model, the server provides URLs where the client can fetch specific resources. It’s a prevalent architecture as the server and the client can have different implementations, which means the server-side can be modified without affecting the client-side.
In other words, RESTful systems are stateless. The client and the server do not have to know each other.
The Minimum Viable Product is a critical concept in software development. It’s like the most basic working prototype of your product. The goal is to assess the chances of success before investing more time and money.
Continuous Integration and Continuous Delivery are the most widely used terms for DevOps. These concepts are meant to improve delivery and lower the risks of software production.
“Pipeline” is a related term. CI/CD pipelines are specific steps to improve and automate the application’s development, delivering and deployment.
Specific, Measurable, Achievable, Relevant, and Time-bound: the idea is to define intelligent and achievable goals.
A SWOT matrix is a valuable model for the business. It has four dimensions:
It’s a way to assess critical aspects of the business to reduce the chances of failure.
It stands for distributed denial of service, and it’s a powerful form of cyber attack. It works by flooding a server with fake traffic that is usually generated with botnets (~ infected computers).
There’s so much traffic that the server crashes, and the service stops.
The Security Operations Center is usually a particular unit that monitors, assesses, and defends security issues.
Security Information and Event Management collects and aggregates data from multiple sources (e.g., firewalls, antivirus, end-user devices, server logs) to identify common scenarios and other potential security threats to reduce the chances of success for future attacks.
Data Loss Prevention is a process that keeps track of sensitive data and ensures that it’s neither lost nor corrupted.
For example, accidental sharing of data is a common mistake. One way to prevent it is to block the extraction of sensitive data.
Endpoint Detection and Response detect endpoint anomalies. An endpoint is a point of access to a network that hackers can exploit. For example, desktops, laptops, and mobile devices are critical endpoints.
EDR can consist of collecting data from those endpoints and identifies threat patterns. The idea is to respond to identified threats automatically.
Advanced Persistent Threats are particularly sophisticated actors (such as criminal organizations) who manage to gain and maintain unauthorized access to their targets. They may remain undetected for a significant period.
A Managed Detection and Response system is a suite of cybersecurity tools for organizations with limited resources or expertise. It may include an EDR, a SIEM, and other useful analytics.
I hope you learned some acronyms.