Front-end / back-end isn’t a useful distinction

Home » Blog » Business » Front-end / back-end isn’t a useful distinction

Answering a Hacker News Ask HN titled “Why companies look for “full stack” developers instead of specialists?” I wrote this:

Front-end / back-end isn’t a particularly useful distinction in my opinion. Differentiating between those 2 is just another way of creating information silos.

I’m old enough to have experienced at least 2 full thin-client-fat-client cycles and I’m certain the current one won’t be the last (at least it seems to have been a recurring pattern since the beginning of modern computer science). While the front-end / back-end paradigm might make some sense right now because the technologies used for each of those layers conceptually seem to be quite different from each other I doubt it’s really that much of a benefit. On the contrary, it might even be detrimental to effective software development:

I’m not in the business of creating either front-end or back-end code. Neither is useful without the other. I’m in the business of creating value and solving problems with software. Depending on the problem at hand this can involve different tools at varying degrees.

Focusing on just one tool or layer can lead to a potentially harmful mindset. A mindset in which you just throw your part of the work over the wall thinking that it’s not your problem anymore.

The arguable benefit of having specialists churn out stuff in their respective layer more quickly than a generalist would quite likely is offset by communication and interface overhead: The difficult problems in business applications nowadays mostly arise at their boundaries. Software development for the most part means communication.

I wanted to share this here as well because I think it’s essential to think about software engineering not in terms of specific technologies and technological silos but rather in a more wholistic way:

  • What’s the problem we’re trying to solve?
  • How do we reliably find out about the requirements of a particular solution?
  • Who’ll be involved in the creation of this solution and how do I interact with those stakeholders effectively?
  • How do we communicate the intent of the code we create in as clear a manner as possible?
  • How does the solution fit into the bigger picture? How will it be connected to other components? How will it communicate with the outside world?

Leave a Comment

* Checkbox GDPR is required

*

I agree

By continuing to browse the site you agree to our use of cookies. Privacy Policy

Privacy Preference Center

Strictly necessary

These cookies are necessary for the site to function.

PHPSESSID: Preserves user session state across page requests.

__cfduid: Used by the content network, Cloudflare, to identify trusted web traffic.

PHPSESSID
__cfduid

Preferences

Remembers the user's submitted data when a comment is submitted in a blog post. The purpose is to aut o-populate form fields for subsequent comments, in order to save time for the user.

wfvt_#

Statistics

Statistic cookies help us to understand how visitors interact with our websites by collecting and reporting information anonymously.

_ga: Registers a unique ID that is used to generate statistical data on how the visitor uses the website.

_gat: Used by Google Analytics to throttle request rate.

_gid: Registers a unique ID that is used to generate statistical data on how the visitor uses the website.

collect: Used to send data to Google Analytics about the visitor's device and behaviour. Tracks the visitor across d evices and marketing channels.

_ga,_gat,_gid
collect

Security

We use Wordfence to secure our website against hacking attempts: https://www.wordfence.com/

wordfence_verifiedHuman

Close your account?

Your account will be closed and all data will be permanently deleted and cannot be recovered. Are you sure?