Back-End vs Front-End Programming
You shouldn’t judge a book by its cover, but you have to judge an app by its user interface. Bad UI can ruin an application. Poorly designed back-end code will also ruin an application. Even great UI can’t save an application that doesn’t function properly. The user interface is normally the only way users will interact with your web application.
The back-end, while invisible to users, contains the bulk of the code and performs most of the heavy lifting. Enterprise applications read and write to one or more databases and connect multiple systems within your organization. It is not uncommon to have APIs that leverage remote web-based services.
A well-designed UI hides the back-end complexity from the user and just gets the job done. This is a double-edged sword for software developers.
The double-edged sword of great UI
In the iceberg graphic, you will notice that the tip of the iceberg represents the front-end. A good front-end hides all the complexity (the giant bottom part of the iceberg that represents the back-end) from the user.
A great enterprise architect will be able to make the portion that breaks the surface (the UI) as small and simple as possible.
This is great for the end-user but can make it difficult for the stakeholder to comprehend the amount of work required.
The better the development team, the smaller and more efficient the interface (eg. the smaller the iceberg appears). Unfortunately, this also makes the surface area of the project seem much smaller.
A good project manager will help communicate these concepts to the stakeholders.
The difference between a web designer and a web developer (programmer)
You can be a web designer and not be a programmer. HTML and CSS are not true programming languages, they are markup languages that allow you to graphically design a webpage. Many web designers are also programmers. Many programmers are also web designers. Normally a very good developer (eg programmer) is not as talented as a dedicated designer – the same goes for web designers who dabble in a little Javascript or some basic PHP.
For the most part, the two disciplines require a slightly different temperament. The archetypical programmer is more analytical and left-brained, where the designer is more creative and right-brained. This being the case, there are plenty of people who can do both. You can read more about it here.
If your source code looks like this you might have a problem! A well-designed user interface creates a great user experience (UI/UX). The application layer does all the heavy lifting to make this interaction smooth and seamless.
Conclusion
While both front-end and back-end programming is required for a dynamic application, users only see the front-end. This can make it challenging for back-end developers to demonstrate their contribution to a project. Good communication and well-documented project plans can help avoid confusion.
About the author: Wes Warren has been a full stack developer and architect for over 15 years. He is currently the Technical Director of Entexture Enterprise Application Development.
*No lions were harmed in the making of the front-end back-end meme.