Software developers have their fair share of development buzzwords, lingo, slang, and jargon. Walking into a developer’s office can sometimes feel like stepping off the plane in a new country. You think you know which direction you are going but can’t read the signs because your phrasebook is still packed in your suitcase. We hope this post helps to decode some of those development buzzwords and provides you with a basic understanding of common software development terms.
Terms that Describe Development Methodologies
There are a number of ways to approach the management of a development project. Depending on your company’s goals and the scope of the project, some development models may be more useful than others. Here are the top four commonly used software development methodologies:
Waterfall: This model is simple to understand and use. Also referred to as the linear-sequential life cycle model, the Waterfall Model is a step-by-step illustration of the development process. Any phase in the development process begins only after the preceding phase has been completed, no two phases overlap. These phases include: requirement gathering and analysis, system design, implementation, integration and testing, deployment of system, and maintenance. Each phase cascades into the next, creating a series of downward flows through each step in the process.
Agile: This model is designed around a combination of iterative and incremental processes that focus on adaptability and rapid delivery. The Agile Model breaks down the development project into small, incremental builds tasked to deliver specific features for a release. Detailed planning ahead of time is not necessary in this method as each project’s unique requirements are tackled in every iteration of the build. Central to this design model is customer interaction as feedback informs the next iteration of the build. Terms like Scrum, XP, and Crystal all reference types of agile methodologies.
Rapid Application Development (RAD): Under the Agile parent umbrella, this model is designed around the ability to quickly adjust to changing requirements. The method is divided into four phases, requirement planning, user design, construction, and cutover. The middle two (user design and construction) are repeated until the features are approved by users. This method is especially effective for budget and time-sensitive projects.
DevOps: This development model is designed to bring the development and operations teams together to optimize development productivity and operations reliability. In many organizations, these two teams operate in silos. DevOps development aims to remove the barriers that separate development and operations to create one team that manages the entire lifecycle of the project more efficiently. More details can be found in this detailed guide to DevOps from Amazon.
Other Common Development Buzzwords
Regardless of the methodology employed by your development team, there are a number of development terms commonly heard when building out the platform:
Front-End: The simplest definition of front-end is everything the user sees. It is the presentation layer of the project that the end-user interacts with. If the app being developed were a car, the front-end would be the body, paint-job, and dashboard; the parts of the car the driver sees every day. A seamless, well-designed front-end is crucial for a successful development project. The more accessible and easy-to-use the application is, the easier it will be for users to adopt.
UX vs UI: When discussing the functionality and appearance of the front-end, the acronyms UX and UI are often referenced. UX stands for User Experience while UI refers to User Interface. These may seem interchangeable but there are important distinctions between the two terms. We provide a brief overview below, but if you desire more, CareerFoundry’s blog offers a deep dive.
User Experience Design is the process central to enhancing customer satisfaction by understanding user needs, task flow, and objectives. This process includes research, testing, and evaluation of content and features. UXD is essentially charged with optimizing a product for effective and enjoyable use. It is the frame of a sculpture.
User Interface Design, on the other hand, is like the plaster on the sculpture. It is focused on the look and feel, creating the interactive elements that guide the user. It takes into account things like brand guidelines, and is the point in the process where everything from button design to color selection is determined. UI complements UX by providing the visual guidance the user needs to successfully navigate the app.
Back-End: If the front-end is the body of the car, the back-end is the frame underneath and the design of the engine. Also known as the “server-side”, the back-end controls how the site works, updates, and changes. While the user is the one driving the car, the back-end determines how fast or how far the car can go. This article goes into further detail about the difference between front-end and back-end design.
Cross-Platform: is the development practice that allows the application to function in more than one digital habitat (think Android phone vs iOS phone) without having to create separate code for each. This is the alternative to Native development, where the application code is written specifically for a particular platform. Native works within the requirements of a specific environment by using its SDK, as well as hardware memory, peripherals and other applications.
A Few Software Development Acronyms
Every developer loves their code but no need to pull out the enigma machine, we will quickly decode these development acronyms for you:
API: stands for Application Programming Interface, and is basically a common, standardized way to access specific features or data sets. It is defined by a set of protocols and tools that allow different systems and components to communicate with each other regardless of their architecture.
SDK: a Software Development Kit is a set of tools used to create applications. An SDK would include any tools, documentation, or sample code a programmer would need to develop an app. For example, the Java Development Kit is used to create android apps, and the iOS SDK is used to create iPhone apps.
MVP: is the Minimal Viable Product, or a product with the least number of features sufficient to satisfy early adopters. It is a pared down version of the final project meant to collect user feedback that will be considered in development of later versions.
While there are many more terms relevant to software development, we hope this overview has helped to cover some of the basics. Feel free to contact us with any questions.