Web development truths

Anyone can be a web developer, right? Wrong. During the dot.com boom of the late 90s, any old jack-the-lad was claiming that he was a web developer, ranging from 14 year old nephews (known in the industry as Nephew Technology – used by company directors to produce their website in acts of blind faith in untrained schoolboys) to pensioners with way too much spare time on their hands. The dot.com crash of 2000 sorted the men from the boys as those who really didn’t have any genuine skills at all lost their jobs or customers, whilst those who did know what they were doing were more likely to retain theirs.

“Red Herring” websites that cost an incredible amount of money but at the end of the day proved to be little use to anyone became a thing of the past. The Emperor had finally seen the true nature of his new clothes and was no longer willing to pay over the odds for poor results.

I survived the dot.com crash by not getting involved with any of the silly companies that sprang up at the time, instead choosing to make reasonable money and consistently getting better at what I do. People can now easily see the value in my skillset and experience when they brief me for projects. But along the way I’ve learnt a few home truths, which I am not afraid to tell customer both new and existing when I need to:

“How much is a website?”

Never EVER ask a web developer this question. Imagine yourself walking in to a car showroom and asking the dealer – “How much is a car?”. Ludicrous isn’t it? The dealer can’t possibly tell you how much a car is because the price of cars ranges from £5,000 to £500,000 depending on what sort of specification you require and how much you’re willing to spend.

It’s exactly the same with a website. Before a web developer can even give you a ballpark price for developing a new website project, he/she needs to have a reasonably detailed description of what you want it to do.

If you don’t know what a website can be capable of, then they will be more than happy to present options to you, in much the same way as a car salesman will explain the meaning of the obscure acronyms you read on a car’s option list. You may not know what a car can be capable of, so ask the salesman, he’ll tell you. The same applies to web developers, although obviously not on the subject of cars.

You have to tell them what you want, only then can they tell you what it’s going to cost. Not all websites are alike. They don’t come in a set range of flavours. Almost every single website in the world is unique. You’re basically specifying a customised product, with a customised cost.

Fast, Good, Cheap – Pick Any Two

This is golden rule number 1 when constructing a brief for a new project or an extension to an existing project, and it’s by no means specific to website software. Think about it carefully: If you want a good quality product in a hurry, it’s not going to be cheap. Alternatively, if you’re still in a hurry but don’t want to spend a lot of money, the product isn’t going to be particularly good. Lastly, if quality and low costs really are paramount, then you’re not going to have it finished in a hurry. Personally I recommend option 1 followed by option 3 as I’m a perfectionist and actually find it quite difficult to produce something that’s not “good”.

Few companies, at least of the size that most web development agencies operate at, can offer all three, and those companies who claim to be able to do so often just try to sell you a pre-packaged website solution that probably won’t be directly suitable for your purposes, which then of course brings the “quality” factor back into question – are they really offering all three after all?

“I want to be able to update it myself”

This is, has always been, and always will be the biggest double edged sword in the whole website arena. It sounds like a marvellous idea doesn’t it – a website that the owner can control and update themselves with no programming knowledge or dependence on the web developer required. Cynics may well claim that web developers don’t like to produce such products because it subtracts from maintenance contracts, and to be honest there is an element of that, but it is by no means as extensive as you might think.

Principally, the simpler something becomes, the less flexible it also becomes. Again, this is not specific to web development projects, it applies to pretty much all software and hardware products that require some sort of human interaction, from Microsoft Word to your washing machine.

Let’s change the brief here to “I want it to just wash my clothes by pressing a button”, when you’re buying a washing machine. Imagine a washing machine with just one button – “Wash”. Sure, it would wash your clothes, at a fixed temperature and with a fixed programme, and for a lot of people this would be fine. It’s simple to use and virtually foolproof. But woe betide it ruins your Club Monaco wool-knit t-shirt because the programme was unsuitable, because then you would need to change how the machine operates when washing such garments. You need another button. Suddenly the machine has become twice as complicated as it was before.

The same applies to “update yourself” websites (the proper name for which is Content Management System, or CMS). I can provide you with a form with one single text box that allows you to change the content of a paragraph on your website. No problem, you just type the text and the paragraph is updated. But now you want to change another paragraph, and not only that, the paragraph is on another page, and furthermore you want to add an image and change the text colour and add a few links. But at the same time, you don’t want to have to know anything about HTML. Herein lies the problem.

Now you have two options. If you want your content management system to become more complex to satisfy your growing needs, you either need to start learning HTML (the markup language that’s used to define the layout and content of web pages), or you need to invest more money into the CMS in order that you don’t have to. One route is obviously more expensive than the other, and each have their disadvantages.

With the first option, many people fall into a common trap known as Microsoft Word, but the trap also applies to other HTML-producing software. Microsoft Word, a popular item of software on most peoples’ computers, claims to be able to export normal Word documents as HTML files. This, for the most part, is untrue. It may well be able to product HTML files, but the HTML it produces is the most god-awful excuse for markup code that’s ever been seen, and this is not just a personal opinion, this is one of those Internet-wide truths that everyone (bar perhaps Microsoft) accepts. Yet it’s all too tempting for website owners just to simply cut and paste Word HTML into the CMS and expect it not to completely screw up their website.

The point here is that allowing people to include their own HTML on their website empowers them to do a wide range of very powerful things. It also allows them to do some very bad things. If you want to manage a complicated website yourself, then you’re going to have to learn how to do some complicated things, including learning at least basic HTML that’s sympathetic to the site’s design and style, rather than how Microsoft Word thinks it should look.

The second option is also not without disadvantage. There is no end to how complicated your CMS can get in order that you don’t have to learn any HTML, and therefore there is no end to how much money you can sink into it just because you don’t want to have to “know about programming and stuff”. This is good for the likes of me, but bad for you. In some cases people spend more money on the CMS so they can then spend their own time updating the site themselves than they would have done paying their web developer to make the changes for them under their maintenance contract. There’s a point at which updating the site yourself simply ceased to be cost-effective.

It is necessary to strike a balance between allowing the CMS to automate and you to provide your own creative input by using HTML. The web, despite its apparently simplicity to the average user, is getting more and more complicated by the month underneath. If you want to be involved with controlling the back end then you too will need to become more complicated and technically literate. If you don’t have the skills for this, are not willing to learn the skills for this, or if it otherwise scares you, then leave it to someone else who does have the skills and isn’t scared to take advantage of it.

Rhydio customers should note that this quasi-rant is not aimed at anyone in particular – I just sometimes get this feeling of tremendous dread whenever I hear the immortal words “I want to be able to update it myself” :)