Filter by category
Development teams use programming languages to code, but they also have a language of their own for day-to-day communication. Tech jargon saves developers a lot of time, but can often feel overwhelming for clients who want to build software products.
When embarking on a new tech project, it’s the duty of the software team to onboard clients not only on the work process but also on their jargon rollercoaster. However, it’s always good for stakeholders to be in-the-know even before approaching a development company for a new product. By understanding what the most common tech jargon means, you’ll be better rooted in your product’s development from the get-go. Whether you’re leading an enterprise, a medium business, or driving the efforts of a start-up, pour yourself an [e-spres-oh] and learn with us the tech words of the day.
A set of 12 principles that lay out an ideal software development approach. Agile Development recommends slicing functionalities into work phases (aka sprints) and focuses on iterations and adaptability, enabling teams to tackle long-term projects sustainably. It’s like running a mountain marathon: in the distance, you see the finish, but you break-down the course into manageable sprints and focus on one race at a time. After each sprint, you tweak your approach for the next portion and so on, until you reach the finish line.
The infrastructure of a software application that’s not visible to visitors, but is vital to the well-functioning of the software. Think about it as the kitchen of a restaurant: as a client, you can’t see it, but it’s where all the delicious magic happens. Without it, you’d be served…nothing. Examples of programming languages used for backend development: Ruby, Node.js, Python, Java, Perl, GoLang, PHP.
A collection of practices aimed at continuously improving a product through planning, delivering, gathering feedback, and acting on that feedback. Similar to the Agile principles, CD focuses on iterations and incremental delivery, while also leveraging the power of automation.
A UX/UI driven five-day process that helps solve big challenges sort out goals, validate ideas, and build a product prototype. Design Sprints are useful when looking to add new features or when trying to select the best course of action out of a large pool of possibilities. By bringing everybody in the same room (designers, developers, business owners, and stakeholders), a design sprint bypasses never-ending cycles of presuppositions and hints to a solution that can then be tested by real users for valuable feedback. It’s a hands-on approach that requires all people on deck for a smooth sailing experience.
The hidden software layer that acts like the glue between the frontend and the backend of an app, making new features possible. Used for various purposes (develop new apps, optimize older ones, integrate, help apps communicate with each other, automate), it increases efficiency and reduces costs, but adds complexity since it brings an extra layer. The middleware makes it possible for old systems to support new applications without rebuilding the system from scratch or modifying an extremely complicated one.
An Agile software development methodology based on sprints, transparency, communication, iteration, and accountability; Scrum encourages teams to adapt based on client feedback rather than predict and helps members focus on specific tasks before reassessing the next steps.
A collection of all programming languages, technology services, frameworks and tools meant to create and run a single software application. The tech stack of a software product is highly important, because it directly impacts its performance and influences its cost and scalability. You can compare the tech stack of a software product with the modular blocks from an IKEA storage furniture piece — even if they are from different materials, they work exceptionally well together, while also allowing other pieces to be added in the future.
An API is a set of actions and commands that enable users (i.e., developers) to send requests to suppliers (i.e.apps, servers, etc.) without hassle. Let’s say you’re at a bank with several counters. You need to perform a simple task, such as transferring money from one account to another. To do this, you simply go to the transfer counter and, without having to know all the intricacies of what it actually means to transfer money, you ask the teller to do it for you. Similarly, APIs help clients perform complex actions through simple commands. APIs are usually very specialized for particular tasks, in the same way, the counters in a bank can be reserved for specific operations (open a new account, exchange money, transfer money, etc.)
A copy of the existing codelines that enables developers to work in parallel on different tasks/features. Whenever developers need to work on a new feature, but don’t want to mix their existing code with the one they’re currently building, they create a new branch on which they branch out new code. Once the code is feature-perfect, they merge it with the main one. If an existing software product has several new features in plan, developers will need to lay out a coherent branching strategy.
A component within a software product that stores data to present it immediately the next time when it is needed. Let’s say you’re a realtor agent who’s always asked by clients what’s the surface area of certain houses. Now, you could go ahead and take measures every time the question comes up, or you could simply note the info down and check your agenda to answer.
The act of reviewing another’s code to spot errors, come up with fresh approaches and keep everybody on the team up to speed with the latest work. For a code review to be by the book, there must be at least one reviewer who hasn’t worked on writing the code. The work of a code reviewer can be compared to that of an editor, who reads a finished article to polish and refine it.
The commit action resembles saving changes in a document on Google Drive or Dropbox, making these available to everybody. Practically, to commit is to add a new piece of code to the central storage location (the repository that can be accessed by the entire team of developers who work on a product). To commit code, developers use version control software like Git, Mercurial, or Subversion, which enables them to keep all versions of code in case they want to revert to a previous state.
The action of making a piece of code or a software available for use, whether it’s for testing purposes or for the end-user specifically. Think about the software product as being a cake. Once the bakers have the perfect recipe and mix all the ingredients, they assemble aka ‘deploy’ the final product. Now, the cake can simply be part of a tasting session for a couple looking for the perfect wedding cake, or it can fulfill its final goal of being served as the sweet ending of a great party.
The process of testing the flow of an application from start to end, by simulating real user scenarios. You can think of E2E testing as a theatre play rehearsal that aims to get feedback from a few hand-picked, experienced spectators. In opposition, unit testing takes small units of code and verifies these step by step. Similar to an actor rehearsing their lines at home.
The collection of software and hardware tools needed to run an application. Environments can be of different types, according to their scope:
is the environment in which an individual developer works on and implements new code;
is the eco-system that can be accessed by all the developers working on a project;
is the environment in which the code is tested and replicates the final user-experience;
is the final setting that delivers the software product to the end-user.
Cloud-based service that helps developers store and manage code and keeps track of various code versions that are work-in-progress. You can compare it with an offline dossier where you save all drafts related to a single project.
The process of rewriting existing code with the purpose of improving its clarity, flexibility or scalability. It’s similar to reorganizing your books to find the titles you’re looking for faster. For example, maybe you had your books sorted by their publishing house, and now you decide that you’d benefit more from having them alphabetically ordered according to their author.
The end goal all development teams work towards. A release is the distribution of the software product. A release is usually a public distribution, but it can also be private. Each time a product gets an update that needs to reach a larger audience, a release is required. The release is comparable to the shipping of a physical product to an end-consumer.
An Agile software development technique that focuses on writing automated tests first and implementing code after. In TDD, developers first write the automated test and only after move on to writing enough code to pass that test. They can continue to perfect the code that passed the test until they are completely satisfied with its form. Since the tests are already written, there’s no risk of writing faulty code lines. TDD works as a cyclical process and focuses on iterations.
The above terms and expressions only scratch the surface of tech jargon, but consider them the essential tool kit to dive into your software project. If you’re curious about other terms, let us know in the comments below, and we’ll devise some fun way of explaining them. It’s what we do best, especially after a shot of [e-spres-oh].