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.
Answer
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.
No comments:
Post a Comment