The most important part of a web development project is right at the very start, where you make the fundamental decisions about who you will use, and the tools they will build your website with. Right there you have determined your business destiny for the next few years.
As long standing software and web developers we treat this part of the process very seriously, and see many many examples of people who have got it wrong here.
The most important part of a web development project is right at the very start, where you make the decision about who you will use, and the tools they will build your website with. Right there you have determined your business destiny for the next few years.
As long standing software and web developers we treat this part of the process very seriously, and see many many examples of people who got this wrong.
Your biggest decision:
There is one really important decision at the start of most project, which takes precendence over everything, and that is, should we:
a. Custom develop a website?
b. Use an existing website product and modify it to suit ourselves?
With many many years of experience in developing complex, high value software and web applications we have the capacity to develop your site whichever way is best. And we always come from the standpoint of delivering what is in the best interests of our clients - what will give you the best results for your business for the next few years?
Let's have a look at the two routes to choose at this point.
Custom Web Development:
This allows us to build you anything you want - as long as it is technically possible and we have the skills to do so.
Custom development gives fantastic flexibility, as there are no constraints imposed by existing systems requiring us to do things a certain way.
However, every line of code in your website needs to be written one by one, which can make the development costs much higher than using something that already exists.
Some companies have written their own (often called "Proprietary") systems, so they can say "We don't have to write it all over again so you get better value for money".
So what could be the drawbacks of all this flexibility? Below is my own list of shockingly common problems with proprietary systems:
- Massive cost of development - everything has to be written from scratch.
- More difficult to change developers (sometimes impossible for technical or legal reasons), making you bound to the company that wrote and understands the system for its lifetime.
- If your website code is written using compiled code (like that used in Microsoft .NET and some other platforms) then you cannot actuallymodify the site without access to the original code - so it is essential you obtain a copy of all the code from the developer when you buy the site.
- If your site is developed in Open Source code such as PHP and MySQL, another developer could look after and maintain the site if required. However, they would still not know the idiosyncrasies of the way the site was designed, and picking those up could be difficult, and potentially expensive.
- Once a client is "tied in" by a proprietary system they are in a very weak position, and open to the possibility of profiteering from the developer. This is most likely if the developer quoted cheaply to get your work, but having locked you in, has the rest of the life of the website to re-coup their profits from you - possibly many times over.
- Because everything is custom written, when you want to add something to the system this is very likely to need custom coding as well. Even the simplest changes may cost hundreds or thousands, because the computer code for them has to be written from scratch.
That probably covers it - but to summarise, there ARE times when proprietary coding is required to build a web or eCommerce system. That is when there are no existing products which do what you want because your requirement is very specific. In that case you will have to become accustomed to depending on one developer for that aspect of your business for many years. And as a final word of advice - make sure you have a good understanding with the developer from the outset, with some very good references and an agreement covering the pricing for future development to the site.
Using Existing Systems for Web Development:
At Channel Digital, we have encountered the problems listed above many times, as have many developers and website owners. As a result, a variety of "out of the box" systems have been created which are readily available.
There are a wide variety of these ranging form the good to the bad and the really quite ugly.
On the lower end of the scale are the "Template" systems where an unskilled user can put together a website in a couple of hours. We are not big fans of these, because often they produce very poor quality sites, and still lock you to the company that provided the template system.
There are also existing website systems that control you in other ways - for example, a number of systems based on proprietary technologies can lead you into a restricted position not unlike that of a proprietary system.
Open Source websites:
A significant development in recent years has been the evolution of a number of Open Source website Content Management Systems (CMS). Open Source means that a community of developers has combined to build a product, which is then shared freely to anyone who wants it, under license models called the GNU GPL. (General Protection License)
Some of the most popular of these systems include:
But there are many others.
We have become big fans of these systems in particular for the following reasons:
- No need to re-invent the wheel. The code exists and can be made to do almost anything required.
- The code is free, keeping your costs down.
- The development community of each have between them created a massive library of add-ons or additions, so that almost anything you are likely to want to add to your site is also already written, and often freely available.
- The well designed systems are streets ahead of anything that a small web company could build themselves - even given 10 years, because so many skilled developers have contributed skills and time to the systems.
- You can easily change the look of these sites - just apply a different template or "skin", and your site is new and refreshed, without having to change the underlying struture.
- Very important - being fully content managed you can easily add or edit articles, pictures, menu links, or anything to the site yourself. This is really excellent for the marketing of your site, in which fresh content is of absolutely critical importance. It also helps to keep down your long term cost of ownership.
- Should you want to change developers (they very commonly go bust or move onto other things), it is easy to do so. As long as you have the settings,any other competent member of the developer community can take over the maintenance of your site.
- Want to change your website host? Easy. These systems work on most decent hosting systems, subject of course to the right hosting specifications.
- In a weak position? None of it. The developer knows you are free to use someone else should you choose to, and you only need stay with them because they are looking after you. This keeps your developer honest, and the relationship on a much more equal footing.
- Help and information - plenty. each community is supported by Forums and documentation, where the communities help other members with problems and share information. In our experience these communities are at least as good or better than the help information shared by big companies like Microsoft, so it is easy for you or your developer to find out what they need to know, and apply it to your website.
So What Could Be the Disadvantages of Open Source Systems?
Well, some developers hate them - can you work out why? Lets have a look at some of the criticisms:
- They are just a "site in a box". Well who really cares about this? The site looks unique and great, can do anything you want, and cost a fraction of the price of a proprietary system.
- Security isn't good. This is an interesting point. Because the code is Open Source it means that anyone can see how it works. It follows that you can work out any exploits for it and then hack into the websites. This is true. However, the Open Source communities are aware of this and the good ones have dedicated 'bug squads' who detect and instantly close any exploits discovered. This means that occasional security upgrades come out, and these have to be upgraded on the website. So there is a small on-going cost to keeping on top of security issues. However, frankly, you have that cost anyway. Recently a spate of viruses known as "Gumblar" corrupted a lot of websites of all kinds. These viruses were spread through FTP (the way a developer updates the website), and so affected all kinds of sites. Whether or not they were Open Source did not make any difference. Our experience of this was that all of our Open Source sites on good servers with good security systems were not affected, whilst many sites which were not Open Source were. So we would discount this objection.
- "You can't customise it do do that". An existing system always has some sort of limitations, because it has been designed in a particular way. However all the code behind these systems is accessible to the developers, so in fact the only limitation on their ability to customise the system, is their own skill set. So when a developer says "It can't be customised to do what you want", what they usually mean is "we don't have the skills customise this". Those skills, however, are readily available within the same Open Source community that evolved the product.
I would add a caveat to all of the above. No system is a Panacea. Everything has its limitations, and it is likely that with any system there could come a point where your web designer tells you "This is difficult", "It can't be done", or more likely "We can do this but it would take a lot of work - why don't you consider achieving the result this way instead?".
However the next time I hear a developer saying that we just do a "site in a box" I will treat it as high praise indeed, because what they mean is, "we are providing fantastic value to clients that they cannot match using their slow and clunky custom built systems, and they are resorting to denigrating some of the best designed and most widely used systems on the web." Every now and again you will still hear me say "this would be better if we did it as a custom development" - and I will always give a very specific reason if you ever hear me using that phrase!