Business often places most, if not all, of their development efforts on the server side. As companies start a development project, focus is usually given to the data that supports their idea, its security, and the business logic. The problem is, this strategy misses the holistic approach that a front end developer offers. The front end guy is often considered the guy who “makes things pretty”. While this description is based on a kernel of truth, it’s more of a stereotype. It’s about as accurate as describing the server-dev as the guy who just “serves data”.
Myth of the End to End Developer
Jack of all trades, master of none? Let’s consider all the factors our “end to end” developer must accommodate. He is going to maintain the business logic, security, and performance – and then make it scale – and simultaneously execute a perfect user experience on the client? Even if he writes the client side code by hand and does it well, something will need to be sacrificed somewhere. Yes, there are a few super heroes out there, but very few. If you have one, congratulations, but the chances are you have a mere mortal. Server devs often use tools that generate markup for them. There’s a danger in thinking that this generic markup is good enough. Will this generic solution move your business forward? Does the off-the-shelf styling exude professionalism to your clients or users? Does it provide an exceptional user experience?
Let’s put it another way. If you buy an Aston Martin, do you buy it because it has high horse power? Or is it the throaty rumble of the engine through the finely tuned dual mufflers when you downshift the semi-automatic transmission while slightly twisting the padded steering wheel takes you smoothly into a sharp corner while being gripped by the heated leather seats with lumbar support, as you listen to your favorite music through sixteen speakers? That’s the user experience. That four hundred horse power motor is designed by an expert engineer. If that expert was to design your heated seat… he might actually have a knack for seats, or he may just spec something “good enough” from Wal-mart.
What is a Front End Developer?
- Web usability and heuristics
- Web 2.0 trends, APIs, mashups, and other emerging and disruptive technologies
- Graphical design, architectural design, database design, and programming design
- Browser compatibility and web standards
- Optimization and design for mobile devices
- High performance websites
- Multimedia production and delivery
- SEO or even SOA
- Copy writer or proof reader
Not every developer you hire will have all of these traits, but we are describing a highly skilled individual as an example, just as we are comparing him to a highly skilled server developer. Arguably, any subset of this list is still complimentary to the abilities of the server developer, even if there is overlap.
The front end guy engages not only in literal or concrete concepts, but also abstract thought. They are often that rare breed who are able to bridge the gap between math and art, and are in fact the ones who understand that math is art. Because of the thought process of someone who is able to take these various disciplines and connect the user experience to logical transaction processing, they are extremely valuable to a business’ bottom line.
The Monetary Value
We can look at the previous list superficially, and it’s still quite obvious that a company is going to get a good return on their dollar for hiring this individual. But it’s more than getting a multitasker with a lot of hats for the buck, or padding a resume with buzz words. Essentially, a company can’t afford to not have someone with these abilities. Let’s examine three simple business categories to show the economic value.
1 – User Experience
Besides content, users want a site that looks nice, performs well, and is intuitive to use. There’s numerous reasons users may be leaving your site, and the front end developer is the one who is equipped to recognize them. The site may be poorly designed and displeasing to the eye, literally repelling viewers. A polished design instills confidence that the site is professional. The interface may be difficult to use and they may be frustrated, looking elsewhere. Expensive usability tests are no longer necessary for most interfaces as they have been replaced by repeatable patterns and best practices thanks to books like Don’t Make Me Think, and Jakob Nielsen’s excellent site. Tests. Even focus groups can be recreated by the resourceful developer by simply having people around the office use the interface while he watches.
2 – Code Quality
A seemingly innocuous act such as using tables for layout is costly. This is mixing presentational data in with your content, which creates excess markup – and bandwidth is not free. They also create a maintenance nightmare, which is labor intensive – and expensive. Tables are less accessible and murder on cell phones and PDAs – which turns off your users. And Google likes accessibility too: following certain rules results in better SEO.
3 – Development Time
The key to a productive team is that you have at least two developers working together and answering to each other. The team mentality will promote the use of prioritized tasks, and keep a sole developer from becoming too lost in his own justifications. A proper project plan will have a much greater chance of success, and this plan should be broken up into key features that can be incrementally released. These partial releases are critical for either showing the client progress or having a public facing while other features are completed. This is not just project planning 101. The front end developer knows to use Network Effects to the advantage of the company. Features should not be created and released all at once, but slowly, one at a time, and then monitored for success.
Server devs and client devs have different end goals: delivering data versus the user experience, respectively. You want to keep these goals seperate and concurrent, and ideally the way to do it is through the use of an API. The back end exposes the data through an API and the front end consumes it. A properly designed API frees the server developer not only from the duties of the UI, but from the potential insecurity of integrating the UI with the server logic. This keeps the front and back distinctly separate, which also not only reduces security risks, but lessens the use of generated markup which is more rigid. API-driven development is not only more efficient and secure, it prepares the company for the near future when applications move to the cloud and the availability of the data becomes valuable and paramount. This API can be tapped again and save even more money when different versions of the website is created for mobile phones.
And in case you are considering outsourcing, that’s not the answer. An entire article could be devoted to that subject of course, but start with none other than the former CEO of Intel, Andy Grove who argues that in order to recognize new avenues for growth, you need to have a close working relationship with your developers. You won’t get the same feedback from hired guns who are just trading code for a paycheck, and simply don’t have the same stake in a company’s success as an employee with stock options.
Typically, a business starts out on a shoe string budget and hires one server side developer, and builds the idea around him. The problem lies where the business starts to grow and a sales team is added, and financial officer is added, and finally, because the server guy is so overwhelmed taking on so much of the coding duties and falling behind in server code… another server guy is added. You can’t blame the server developer for taking on these end-to-end chores. He’s most likely willing to do it or considers it a challenge. Tools like Visual Studio, and frameworks like JSP or JQuery gives him the false security that he can do it all.
In the not-so-distant past, the front end guy was a designer who handed off a bunch of GIF images to the server guy who inserted them into myriad tables within server-generated markup that had no line breaks, much less semantics. But the front end is more important now due to Ajax, HTML5, CSS3, web applications, social networking, mashups, mobile delivery, and SEO. There is too much technology for one person to be the master it all. Businesses need to keep up with the growing trends and expanding technology and hire the correct type of developer that gives them the best chance of success.