Take the 2-minute tour ×
User Experience Stack Exchange is a question and answer site for user experience researchers and experts. It's 100% free, no registration required.

I'm currently managing a project to bring a medium-sized shop into the online world for the first time.

The very non-technical shop owner is failing to understand what "front-end" and "back-end" means, and I was wondering if anyone had any good ideas.

He currently understands front-end to mean the part of the website that normal users will see and use, and back-end as being the admin part of the website. But of course, the admin system is still front end — he just doesn't understand this.

He also thinks that the front-end can be created by anyone, in the same way anyone can put together a newsletter using MS publisher.

share|improve this question
1  
Front-end: The code that makes up the part of the visible website. Back-end: The code that runs the site/makes it have any practical function. At least that's what I tell everyone. –  Josiah Apr 30 '13 at 1:12
3  
Whomever downvoted: please explain why. –  3nafish Apr 30 '13 at 2:44
    
The title is funny; the shop owner is thinking in terms of front office and back office. As for his second illusion, you have to find examples that relate to his industry or interests - can everybody design a good-looking car? Building on the obligatory car analogy, guess you can also solve the front/back office/end mixup... –  Deer Hunter Apr 30 '13 at 3:04
    
A client we used to work with always called the backend "the brains of the thing" –  Justin Meiners May 1 '13 at 0:07
2  
I'd talk the customer's language: the back end is the storeroom behind the shop; the front end is the shop bit that the customers come into. –  PhillipW May 2 '13 at 19:29

11 Answers 11

up vote 8 down vote accepted

First off, it's not wrong of the client to refer to the admin side as back-end. It's actually fairly common terminology to call any aspects of a content management system that aren't publicly available the "back end." This confusion between the front and back end of a CMS and the front and back end of code may be a large part of the problem you're encountering.


If you need to explain the difference between front-end code and back-end code, try explaining that it's a difference in where the code exists.

To explain where the code exists, you'll need to explain the concept of a server. In explaining these concepts to ten-to-fourteen-year-old children (whom I assume have a technology skill level similar to your client), I've done this by saying something like:

You have a monitor [point to the monitor]. Usually it just displays the information on your computer here [point to the rest of the computer, or base of the laptop] but it can display information from any computer it's connected to [point to an ethernet cable if possible]. That's what the internet is; it's just a bunch of computers wired together where you can get information from any of them.

Some computers aren't used by individual people, and don't have monitors of their own connected. They spend all the time sending out information. We call them servers because they're like a servers in a restaurant. You ask the server for food and he gives you back whatever you ordered.
[I realize this analogy is inaccurate because the computer server is more akin to the restaurant chef, while the restaurant server is like whatever medium is bringing you the information, but I've found it's best not to overcomplicate things.]
Your computer asks the server for information, and it gets the right information from a database and sends it back to you. We call code on the server "back-end" code because it's like the back part of a restaurant. You don't see what's going on in the kitchen, but you know that they're pulling together the right food for you.

(At this point, you may find it helpful to explain the concept of a database. I've found it effective to say that it's basically just a large spreadsheet containing the information you need and to open up an Excel spreadsheet and fill in a couple of columns to demonstrate.)

So if you want to see a website, you type in the address of the website. That sends a request for information from that address out to a server, and it sends back the information you want, just like if you asked a server in a restaurant for a menu.

There's a big difference between a restaurant menu, and a webpage. On a webpage you have to be able to click on things to interact with them. You can do this because the server has sent your computer some code that tells the computer what to do when you click on various things. We call this code the "front-end" code.

On a website, when you want to know more about something, you click on it to request information. That's just like if you select something from a menu in a restaurant and ask the server to get it for you. The front end (menu/webpage) lets you request something (food/information) from the server.

share|improve this answer

reference: http://en.wikipedia.org/wiki/Front_and_back_ends

Front end is what the user sees and interacts with. Back end is what will process the data. The back end may leverage formatting and validation made by the front end or perform these tasks itself; e.g. when front end is limited to user input and validation is done server-side.

share|improve this answer

One way is to educate your customer. Let him read Wikipedia and ask him if he sees a difference between his current knowledge and the article:

The front end is responsible for collecting input in various forms from the user and processing it to conform to a specification the back end can use. The front end is an interface between the user and the back end.

In software architecture there may be many layers between the hardware and end user. Each can be spoken of as having a front end and a back end. The front is an abstraction, simplifying the underlying component by providing a user-friendly interface.

Reference: Wikipedia - Front ends and back ends

Another way would be to use a metaphor, as in the cars dashboard and all driver controls for Front End and the engine, steering mechanism and breaking functionality for Back End.

share|improve this answer

Normally, I prefer to start with a example which may not be the project core but explains the client the philosophy behind. And once the client understand the concept he starts believing in you and then you should bring in the core topic. Let me explain you with an example. First try to explain you Front-end and Back-end idea with reference to something he is using in day to day work like Car. So, you can tell him that car's

  • front-end would be the body, dashboard, steering controls, etc.
  • back-end would be the engine, transmission line, power system, etc

When he understand this part then you relate each of these mentioned examples with your project like:

  • car dashboard -> website admin page
  • car body -> project website
  • car engine -> html/js or whatever
  • car fuel from fuel tank -> data from database

So, I think you got my point. First make them comfortable and then relate your example with the real problem.

share|improve this answer

A customer probably doesn't need to know or care what a back end or a front end is. To the user it is simply a website and all they are worried about is the website to working to do what they need. The complexity of the details like this are things that we concern ourselves with, not them, so trying to explain to the customer is defeating the purpose of making software more usable.

share|improve this answer

Tell them the front end is the webpage on their browser usually written in HTML. The backend is the software on the server communicating with the HTML frontend page on their browser. Draw up a picture for them.

share|improve this answer
    
Though "brevity is the soul of wit", be sure to provide enough information to actually give an answer that is an Example. –  New Alexandria Oct 25 '13 at 18:13

The client is confounding the terms "back office" and "back end"... which is not bad, within their domain. Educate them on communicating to the right audience with the right language.

share|improve this answer

Go to Facebook and in Web Developer Tools, disable CSS and JS. And say "This is what a website would look like without front-end code"

share|improve this answer
2  
Technically, wouldn't the web site without front end code be blank? HTML is front-end code as well. –  Charles Wesley Oct 25 '13 at 19:19
    
That would be what the web site would look like without a web browser. –  DA01 Oct 25 '13 at 19:45

Have your client think of a luxury hotel.

The front-end consists of the interior design of all places they're allowed to set foot in the hotel, in addition to the manners and dress of the staff they'll deal with directly.

The back-end will consist of the kitchen, boiler-rooms, rooms where they do their tons of laundry, the endlessly winding and cavernous employee-only hallways and ducts in the basement, the loading docks, and the hundreds and hundreds of people required to keep all these behind the scene concerns operating smoothly.

To address your specific client's confusion, surely the kitchen - being that it's operated by some world class chef who knows his or her stuff - will look really nice and super high tech. Might even be the kind of thing some of the patrons of the hotel would love to actually have in their room, but the reason they don't is because cooking for the entire hotel is still an infrastructural concern.

Your client's admin panel is not the back-end at all, but a nice abstraction - or simple set of dials - with which to control the back-end, much the same way the hotel patron's room phone (or concierge if wealthy) would be the abstraction through which most of the hotel's infrastructural functions can be invoked.

share|improve this answer

In the long-run it's best to explain the interaction between web servers and client machines, ie explain how initial back-end code is performed before the client receives their web page and how additional back-end interaction require more requests from servers to update the page.

If you must use a metaphor though, then say that front-end code is the skeleton, skin, and reflex muscles of a web page. That is, HTML controls layout, CSS controls look, and JavaScript controls basic interaction. Back-end code is the brains, ie the code that processes form submissions and database interaction of any kind.

share|improve this answer

Front-end and back-end are terms used to characterize program interfaces and services relative to the initial user of these interfaces and services. (The "user" may be a human being or a program.)

  • A "front-end" application is one that application users interact with directly.

  • A "back-end" application or program serves indirectly in support of the front-end services, usually by being closer to the required resource or having the capability to communicate with the required resource.

The back-end application may interact directly with the front-end or, perhaps more typically, is a program called from an intermediate program that mediates front-end and back-end activities.

Front application is that but which we can see and edit or work like games, billing software etc and the backend application is database which has collection of data executes when the front end gives request. People who do coding comes in Front end design and remaining comes in backend.

  • Front end includes rtl description,synthesiser,verilog/vhdl entity,simulator...

  • Back end includes floorplanning,place & route,packaging,testing...

Visual basic is a front end Access is a back end

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.