Developers develop. Explainers explain. Sometimes there's not much overlap. Jargon naturally emerges from the shorthand that experts use to talk to each other, and that's just as true of web development.
The two most critical factors for successful projects are clear communications on specific goals and the freedom to work efficiently without explaining each step along the way, which can be hard if you’re not sure whether the client’s and developers’ sides fully understand each other. This glossary was created to improve collaboration between a development house and clients, or their representatives.
Here are five of the most commonly confused web development concepts, each with uniquely defined terms.
1. UX vs UI/GUI vs. interaction design
UX is user experience and UI is user interface, but what do those mean?
UX defines everything a user feels as they use the software. Personas, touchpoints, user journeys, task flow diagrams, decision point layouts and hierarchies are used during project development to simulate the user experience in totality.
UI is the portion of UX that covers the mechanics of how the user inputs data and receives responses. Although UI usually refers to visual and auditory elements, researchers in haptics (the science of touch) are working to add touch features like force resistance to mobile applications and devices.
Interaction design refers to higher level planning of the UI in terms of goals you want to accomplish, rather than the actual UI coding.
For visual learners, here's a helpful diagram of the relationships between UX/UI, interaction design and related concepts.
2. Local environment, beta, staging and production
Every artisan needs a workshop, and most aren't very pretty. The local environment is the forge where software is built. When it's ready for testing, the application is pushed to the staging environment for alpha and beta testing.
Alpha vs. beta testing are not always strictly separate processes. In alpha, the application should be mostly functional with some sections disabled, while beta is the final stage of bug reporting and performance enhancement. When the software enters the production environment, it's like raising the curtain on the live performance.
3. Front-end vs. back-end
Knowing which tools and systems are responsible for which functions is an education in itself. The important point to remember is that they require very different skills. Front-end requires a developer to have a better instinct for aesthetics and user preferences while back-end is more dependent on logic and data-oriented.
4. Features, bugs, chores and releases
There are many project management tools, like JIRA, that are ideal for web application projects. Among the best reasons to go this route is for prioritization of your tasks for the best possible outcomes within a tight schedule. JIRA divides tasks into four categories:
Features are changes that add value for the customer.
Chores are actions that must be taken for the project but don't impact the customer.
Bugs are errors that must be corrected. Releases are big project milestones like demos and presentations.
This classification should give you the basic idea of what happens with the code written by developers. As you can imagine, getting your priorities straight is often the biggest challenge of any project.
5. Framework vs. programming language
There is an overlap between what frameworks and programming languages actually do, so these terms can be difficult to define to someone who doesn't actually code. When InfoWorld announced that frameworks are the new programming languages, there was a massive collective shrug. This might be confusing enough already.
In a nutshell, a framework simplifies the process of working with a programming language for rapid development and deployment of code. For example, Rails makes it easier for web development teams to work with Ruby and its libraries.
We hope this short list will help you understand the programmer’s part better and help you communicate effectively when discussing the project with the team. Are there any other words commonly used in IT that you find confusing? Feel free to list them in the comments - we’re looking forward to your feedback!