The Real World Development vs The Optimum Way

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.

The Real World Development vs The Optimum Way
Image credit: Marie Linder

CSS Implementation, Structure, and GASP – Not Validating!

CSS Implementation

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

HTML Coding
Image credit: bludgeoner86

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

Flash Abuse
Image credit: xJasonRogersx

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.

Try This Software Today
Image credit: dougbelshaw

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

Conclusion of This Craziness
Image credit: Jason Lupi

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.”

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.


    • Bryan,
    • July 30, 2010
    / Reply

    I couldn’t agree with this post more. In the environment you described, sometimes sacrificing good markup & quality CSS is almost a necessity. If it works, it works.

    Great read.

  1. / Reply

    Yeah I would have to agree with Bryan. There are so many times that I just need to get things done “yesterday” and I can’t take the time to worry about good quality markup or css. And I would have to disagree with what you said about the layout of CSS files, I find that when styles are in one big horizontal line that it is harder to go back and edit. Maybe that’s me, but I like to be able to glance at my div name, and then see the style right under it, aesthetically speaking it’s easier for me at least.

  2. / Reply

    You are right, but I wish you weren’t.

    Building it properly from the start, takes extra investment that’s impossible to make a business case for. So hack gets piled onto hack. Code is used well beyond it’s intended lifespan, and everybody suffers, just to get the damn thing out of the door.

    The only exception to this are the BBC. They can afford to write their own javascript library and employ people whose sole responsibility is to make sure everyone is coding in the same way. That’s because they don’t have the commercial imperative.

  3. / Reply

    Chris, I write block form, too. On my personal projects, I just use something like minify, to get it all tightened up. If you go to my home site (without the /blog at the end), and view the CSS that gets pushed out, you will see it all in a big line of css, but it was all written in block. I find it easier to read and find things in block form, too.

    My point wasn’t to show something is right or wrong. Only that what we read about being best practices in building a site, isn’t necessarily what goes on in a fast paced work environment.

    • Matt,
    • November 20, 2010
    / Reply

    I guess I’ll have to be the only one that disagrees with the post. I will coincide that this happens to everyone, but you don’t say anything about maintainability. This is important for 2 reasons. Firstly, this type of development makes it really hard to add new code and features in the future. The second being that the ‘make it work’ mentality introduces unnecessary complexity which injects more bugs than a well thought out design would. A whole page of if/else statements is easy to products but really hard to read a year after you write them. Bugs are 10 times more expensive to fix after your site/product goes to market then they are before you release it. There is indeed a balance that has to be struck because a site that non-one sees provides no value, but one that one that is buggy or less maintainable is going to cost a bunch in the long term.

    1. / Reply

      Hey Matt, thanks for the comment. Maintainability is incredibly hard because of the number of people working on a site and their varying level of skill. I have personally gone into the CSS of sites that I have written (and GOOD CSS at that) and can’t for the life of me figure out what the other people were trying to accomplish with an additional 20 lines or more of crap.

      Companies that hire production people (meaning the ones that make the daily changes) are paying extremely low salaries and this obviously gets you people who most of the time have very little development experience. It is a turn-around position in that they are only meant to stay a year or so and then leave. You end up with a ton of code that breaks sites (or just looks like garbage) because they don’t know what they are doing, and then that is compounded because there are a lot of those people doing it. By the time it gets back to you to ‘fix’, it would take time you don’t have to clean it up, hence the ‘down and dirty’ method.

      My point in this article isn’t that what happens is good or bad. It is that the ‘optimal’ way of doing things is not what is going on out there a lot of the time.

      There isn’t really anything to disagree with. This stuff happens, which was my point. We may read about how to do things perfectly, and that is great, but what is actually happening in what I called the “real world” development, is totally different.

      Really, to sum up, I agree with you. Maintainability is incredibly frustrating and hard. There is just nothing you can do about it at certain places do to skill level control, time management, and a ton of other things out of the developer’s control. If you sat and cleaned up all the crap, you would be fired because you would get hardly anything done. What you do is the best you can, and sometimes that is to just make it work.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.


Iconfinder Coupon Code and Review

Iconfinder offers over 1.5 million beautiful icons for creative professionals to use in websites, apps, and printed publications. Whatever your project, you’re sure to find an icon or icon…

WP Engine Coupon

Considered by many to be the best managed hosting for WordPress out there, WP Engine offers superior technology and customer support in order to keep your WordPress sites secure…

InMotion Hosting Coupon Code

InMotion Hosting has been a top rated CNET hosting company for over 14 years so you know you’ll be getting good service and won’t be risking your hosting company…

SiteGround Coupon: 60% OFF

SiteGround offers a number of hosting solutions and services for including shared hosting, cloud hosting, dedicated servers, reseller hosting, enterprise hosting, and WordPress and Joomla specific hosting.