Post | Decoding the Language of Great Software Products: A Tech Dictionary for Businesses

Jul 15, 2020

by The [e-spres-oh] Team

document icon

Link copied to clipboard

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.

Tech jargon worth knowing before starting a software project

Agile Development

A set of 12 principles that lay out an ideal software development approachAgile 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.

Backend

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.

Continuous development (CD)

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.

Design sprint

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.

Frontend

The part of a software product that is visible to users. If we previously compared the ‘backend’ to the kitchen of a restaurant, the ‘frontend’ is the dining area itself, alongside the food, of course. The frontend usually includes all the specific features a user interacts with, which is why it is defined as “client-facing.” Examples of programming languages used for frontend development are JavaScript, HTML, CSS.

Framework

A set of components/tools meant to ease development and increase product complexity by speeding up the work of developers through compressing detailed info into generic packages. A framework can be seen as the equivalent of a bread or coffee machine, meant to ease up an otherwise laborious baking/brewing process. Or think about frameworks as being a toolbox with commonly needed tools that can help one work faster (a nail gun can secure a nail more quickly than a hammer). Frameworks are created for each programming language. For example, the most popular frameworks are Angular, React, Vue.js and Express.js for JavaScript, Ruby on Rails for Ruby, Django for Python, Laravel for PHP and Spring for Java.

Middleware

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.

Scrum

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.

Tech stack

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.

Tech jargon good-to-know during product development

Application Programming Interface (API)

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

Branch

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.

Cache

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.

Code review

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.

Commit

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.

Deploy

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.

End-to-end testing (E2E)

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.

Environment

The collection of software and hardware tools needed to run an application. Environments can be of different types, according to their scope:

  • local environment

     is the environment in which an individual developer works on and implements new code;

  • development environment

     is the eco-system that can be accessed by all the developers working on a project;

  • staging environment

     is the environment in which the code is tested and replicates the final user-experience;

  • production environment

     is the final setting that delivers the software product to the end-user.

GitHub

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.

Refactoring

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.

Release

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.

Test-driven development (TDD)

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.

Curious about other tech jargon?

Ask away. We sure have an analogy!

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


logo ending

If you want to keep up with our mischievous ways of coding and doing fun things with great energy, subscribe to our newsletter stay up-to-date with our LinkedIn , like our Facebook page, talk to us on Twitter or follow us on Instagram (but not in a creepy manner).

Business

Tech

Software Development

Mobile App Development

Digital Products

document icon

Link copied to clipboard



Get in Touch

Need our help or want to help? Bring your ideas or your skills and we'll pour the coffee to talk more about how we can work together. But first, drop us a line.

sales@e-spres-oh.com

for business inquiries

info@e-spres-oh.com

for general inquiries

If you prefer a more laid back approach, there are a myriad of ways to contact us:

Headquarters:
1440 G St NW
Washington, DC 20005
Engineering Office:
3 Enrico Carusso St
Timisoara, Romania
Please provide a name.
Please enter a valid email.
Please enter your message.
Please agree FO' MO'
Mouse icon
SCROLL FO' MO'