Organizations that create web and web-related applications will commonly, but not always, divide project tasks between front-end and back-end developers. Front-end developers are primarily responsible for user-facing aspects of an application which can include display, interaction design, cross-browser compatibility, client-side logic, accessibility, and usability. Back-end developers are responsible for the machinations of the application behind the front-end. A back-end developer’s domain often includes maintaining business rules, abstracting problems to objects and procedures, data transactions, integration with other systems, security, and performance. A lot is left out of this description, but I hope you get the picture. Still with me?
Server-side/back-end web developers, if you work with talented front-end developers you may have become spoiled and are missing out on current efficiencies and future opportunities. I’m a back-end web developer, and I believe there are compelling reasons to invest time into obtaining fluency of front-end technologies and concepts.
Back-end developers, consider for a moment what you actually enjoy about development. Programmers, as a collective, tend to share many traits, but none so much as the pleasure of solving problems! Programming languages, frameworks, and design patterns just provide syntax, scaffolding, and structure to how you address those problems. Eliminating the front-end from what you perceive as the problem domain you operate within is myopic at best, and at worst, a huge lost opportunity to encounter new challenges and tackle interesting problems. I’m not saying you have to dive in heads first as a full-on front-end developer necessarily (not yet at least), but do yourself a favor and get your feet wet.
Back-end developers don’t need to be responsible for the same depth of front-end competencies that the front-end developer role necessitates. But a good understanding of what they do, and what they need, and what they consider important allows you to act as an advocate for better-informed design decisions and better collaboration. Appropriate delegation between the client-side and server-side removes future roadblocks. Projects complete more smoothly when the back-end developer can adapt themselves to be both an integrator and ambassador. There is tremendous value in bridging the gap between camps that can occasionally generate friction. The common goal is to deliver an elegantly executed application.
Okay, so not everyone responds positively to FUD. I get that, and that’s not how I want this to come across. But don’t get blind-sided! Let’s boil this down into some takeaways:
- Learn some front-end concepts and techniques to get ahead of the curve.
- Take advantage of incredible new client-side features.
- Encourage usability, accessibility, and interaction where possible.
- Improve project execution and augment your own personal technique toolkit.
The web will change with or without you. I have little doubt that those stubbornly observing the artificial jurisdictions carved up to accomodate today’s web project team will, tomorrow, become the expensive, out-of-touch grey-beards that are the first to go for every generational wave of technically ambidextrous programmers entering the market. Knowledge workers, particularly in Information Technology, must struggle to stay relevant; it’s what you implicitly sign up for in this industry. Progressing web standards are defining new landscapes, and familiarity with the current lay of the land can inform how you approach those new frontiers and make you a more effective web developer.