Where does the Frontend end?

The young, and maybe immature industry that we still are in the business of web development, still has not figured out what we should call that geeky guy in the corner, in his casual outfit, focussed on the screen of his Mac and talking about strange things like “Web Standards”, “Progressive Enhancement” and “Microformats” (I only know “Letter” and A4). We haven’t yet figured out how to call him, whether it should be “Web Developer” or “Frontend Engineer”. But we know what he should do, right? He should build the damn weird thing so that it looks like the marvellous mocks from our hip designer, for chrissake. Yeah, exactly.

If we take that and say that there is “Frontend” and “Backend”, we certainly need to put our guy on the Frontend side. But where does the “Frontend” actually “end”?

I have been working at my current company for a bit over a year now and I have been on 3 different projects. On the first one, we worked in pairs on new features, where each pair consisted of a backend engineer and a frontend engineer/web developer. The backend person had to deal with all the stuff that one would relate to backend, such as:

  • Setting up Apache rewrite rules for SEO friendly URLs
  • Getting the appropriate data out of the framework/database and provide them to the templates in the frontend
  • Doing the data processing when it comes to form submits
  • (add more similar things here)

As a frontend guy, I had to take care of the following:

  • Implement the mock from the designer using HTML, CSS and JavaScript in one of the templates inside the framework
  • Using the data provided from the backend guy and displaying it in the template (usually not anything complex, so e.g. looping through an array)

I find this a nice separation and it gives the frontend person enough “room” to focus on the things he is good at: implementing the pages in nice, proper and semantic HTML, CSS and JavaScript, adhering to Web Standards.

But on another project, it worked completely different. I, as the frontend person, was responsible for, what I think, more stuff that I should actually be responsible for. Apart from the things mentioned above, my responsibilities were, amongst others:

  • Owning the entire framework tree, including the libraries that are responsible for MVC, which obviously included talking to the database layer (actually setting up the appropriate functions and classes), extracting the appropriate variables out of the response, feeding them into the template.
  • Validating and processing form responses
  • Messing around with setting up rewrite rules

I think there are 2 sides to this. On one side, it is a great challenge and experience to not only touch templates, CSS and JavaScript, but also dive deeper into the layers behind. There is nothing wrong with that and adding those skills to your skill set. But on the other hand, it adds another huge area of responsibilities to the ones that you already have, namely to make sure that the page adheres to Web Standards, renders correctly in different browsers, degrades gracefully when certain technologies (JavaScript, CSS) are not available, and so on and so forth.

Of course, if you have a guy at hand who is a whiz in the frontend AND the backend, lucky you. Of course you would put that person in charge of all these things cause you can be certain that he can handle that. But my question is rather: Should a frontend developer be made responsible for things that are, actually, more related to backend?