Making good websites is an art

Functionality, Useability, Graphic / Interface Design, Cost Effectiveness, Code Readibility, Futureproofing, Browser Compatibility, Search Engine Optimisation, Security and Disaster Recovery – These are some of the things website developers have to weigh up on each and every project we take on.

When I started programming and developing websites I guess I was a bit of an optimist in terms of the amount of time a company or boss would give me to develop a site. I nievely thought that they would care about things like Code Readibility or Futureproofing (i.e. commenting, writing functions that could be reused) as much as I did. After making a few sites this way, and taking months to perfect them (and charging thousands of dollars as a result) I discovered that most people would rather a site that has all the same features and looks the same visually but is developed in a fraction of the time and for a fraction of the cost.

Shocking, isn’t it? And who am I to tell them they should spend $10,000 when they could spend $1500 for no visible reason? I’ll tell you a secret too, something most developers don’t really like being spread around because it deals them out of that $10,000 website contract. Content Management Systems, or CMS’s, like Joomla are much more advanced than anything you could make on your own. Sure sometimes a custom job is still required, but for most purposes there is a CMS out there that will do the job nicely, giving you (the developer) more time to get more clients, and make your clients much much happier.

The upsides of running CMS’s instead of your own custom build PHP or ASP based sites far outweigh the down sides. One good thing is modulisation – you can find all sorts of free stuff for CMS’s (or build your own modules), which extend the CMS and make it do things closer to what you want. Another is security, since the CMS is run on thousands of sites worldwide, security flaws get picked up quickly and patched. Easy updating is always good too, as it means you spend less time mucking around making a page look the way you want – most CMS’s have javascript based WYSIWYG page editors and automatic menu linking.

The downsides? Server footprints are usually larger, but bandwidth is cheap these days and broadband modems plentiful. SEO sometimes suffers, but not if you choose and configure the CMS carefully. In most cases a CMS makes it even easier to do things like google friendly sitemaps or SEO compatible links, so it’s mostly a plus.

A friend made a comment about the display code on one of my sites a while back; it went something like “I know a bit of HTML and some CSS, and I think I could do better than that”. This friend didn’t know anything about CMS’s or PHP, by the way, but yes it is an unfortunate fact that code readibility suffers a lot with a CMS, and given that every module you use will be made by a different person and will spit out its display code differently there isn’t much you can do to make it any better. For example, at the time of writing, most of the Joomla components I use on that site spit out data in HTML Tables which seriously messes with my beautifully designed CSS / DIV based template. But as I explained to her, I can live with that for now because I’m busy managing or creating another 15 websites without breaking a sweat.

Every website I make involves carefully considering things that most people don’t even notice, or think about. It’s basically finding the most cost effective way to not only give the client what they want in their website, but what they need. If I can cut the cost down by about $8000, then they’re more likely to hire me, they’re more likely to be happy, and if it saves me an extra 200 hours of coding and debugging then that’s 200 hours I can spend on other clients and other interesting sites.