The Real World Development vs The Optimum Way

There are so many articles out there for web developers to get a good grasp on how things should be done. We all know how CSS should be structured, and not to clutter up the HTML with useless DIVs, but how close does the average developer actually come? In truth, probably a lot less than most of us would think. Especially in what I call real world development, meaning working in an extremely fast paced corporate environment, not something like freelancing where you can have months to complete one website.

CSS Implementation, Structure, and GASP - Not Validating!

We all love CSS3 and what it can do. Some of the things that have already been done are beyond ludicrous and into plaid. Can we agree that the Pure CSS3 Twitter Fail Whale is ridiculously cool? Good. Maybe you learned something from it, but how many of you would actually do something like that for a client instead of creating an image in like, ten minutes?

Developers working for a company that is churning sites out just as fast as they can build them, are even more constricted by what they can do. Be it rules that companies make stating that it must look the same across all browsers for a consistent look, or by the clients who get mad that what they saw at home, isn't the same as what they saw at work, limits the amount of even the most simple things you can do.

Now add in other factors: content teams with varying levels of knowledge of CSS – and all of them adding their own styles to clutter it up, limited time to build a website, on top of anything else that has to be done, maybe using a JavaScript library whose own CSS files don't validate, and other clients asking for changes. With all of that going on, some things take a back seat. Validation? Out the window. Tightly organized, single line CSS? Nope! When you build sites quickly in an environment like this, it is more about getting it done and working, than having pretty code.

There are so many blog posts out there on how to make everything perfect in your CSS files. But is all this bad? Some things, maybe, others not so much. Sure it would be great to write flawless CSS, but do clients really care about validation? When you deal with the sheer quantity of sites these developers do, then no. If you use the underscore method to target IE6 to use a GIF instead of a PNG, and you don’t put it in a separate IE stylesheet, does it really matter? Not really.

For myself, I have learned more about the differences in browsers, how to incorporate subtle CSS3 effects that won’t piss off a client, and solve problems faster, because of doing it the down and dirty way. Short time turn around can make you into an adaptable web development machine, just don’t expect any awards for what’s under the hood.

HTML Coding and What Really Goes on When You Don’t Know What the Future Holds

New developers often get criticized for ‘divititis’ (divitis…whatever), and usually rightfully so. Now think of all times you have read an article about it, and how you should eliminate as much as you can. If you took a look at the HTML that is used to create template sites to be used with a custom management system, you might accuse the writers of that code of the same thing. But there is method behind that madness.

Let’s say for example, a new button has to be inserted into 200 websites. It becomes a simple matter of targeting these extra divs that have the same name across the board, and pop in goes the new button. The other divs might have different names do to a developer’s style, but these extra ones are always the same. When working in a fast paced environment that is constantly upgrading and changing, you can never know what has to be inserted into the HTML. Better to be prepared than not.

Flash Abuse – Not as Big of An Issue If It is Handled Properly

Moving on to the abuse/usage of Flash, refresh my memory, do we love it or hate it today? If you ask me, I don’t have any feelings toward it, because it is just another tool. It’s good for some things, and not for others. Keep in mind though if you are one of the anti-flash people, that what you think about it does not matters to clients. The average person getting a website neither knows about the flaws, nor cares. It worked on that other website they saw, and they want the shiny objects, too.

How about page headers done in flash because a special font wanted to be used? Oh no, The Horror! Think of all the iPhones and iPads! What do we do? Yes, this is done, and feel free to not believe it all you want. Who is thinking about @font-face right now? I love @font-face, but go to a site that uses that CSS, clear your cache, and refresh your browser. Notice that half to full second delay before the font actually grabs hold? Believe it or not, some places actually think that is unacceptable, so Flash is used, the iPhone gets a separate non-Flash layout, and the client is happy.

Let’s Try This Software Today

There are some things that rock when working in this "real world" type development. You usually have a lot of heads to bounce ideas off of for one, and two, what a developer uses to code is pretty open. Dreamweaver, Aptana, NetBeans, whatever – as long as it gets done, it doesn’t really matter. There is a lot of freedom of choice as long as you are not using something specific to a program that makes it required to use.

Other items, which would kick some serious ass because it could pick up the pace on development, are harder to get thrown into the works. Take something like Sass, which adds things like nested rules, variables and mixing. You would be hard pressed to get that into the flow because it is something additional people would have to learn. When you have a ton of other people that have to work on the same CSS (again with varying levels of knowledge), this type of awesome just becomes impractical. This author has not YET tried out the JavaScript version of LESS, so I can’t say if that would be more do-able.

Conclusion of This Craziness

Now, before you start calling blasphemy, let’s get a few things straight. It would be great to put all the things we have read to good use, like how we should structure our code, and what to implement. It would also be great if there was time available to do so. You can’t predict who will be working on your files, what they will do to them, and usually the time isn’t there to fix it. What you do on a personal project, and what you do in “real world” development are two totally different things.

Chris Coyier once wrote about The Abstraction Point, stating "Your abstraction point is the level of abstraction you feel most comfortable in getting stuff done from day to day." In "real world" development, working for corporate, the abstraction level is set to: whatever it takes. If you will forgive a movie reference, then I think you will understand when I say “there is no spoon.”

Opinions expressed in this article are those of the author and not necessarily those of Onextrapixel.

Jeremy Carlson is a developer/designer that started out in print design, but once he made the jump to the web, he never looked back. Having an insatiable appetite for learning anything he can about building better websites, led him to start a blog geared toward passing on that knowledge. That in turn, made him realize that he really enjoy helping people new to the field, or anyone pulling their hair out trying to solve a problem he has already been through.