One issue that often comes up when considering the construction of a new website is the choice between using a content management system and programming the site from scratch. In many cases, the developer has a preconceived idea about which method is better and forces it on the web project. The best solution, however, is to look at the requirements of the website and then build it using the proper tools, whether that is custom programming, a pre-made CMS or a hybrid solution. When starting a web project, the first thing to do is to write down all of the variables:
- Who is going to build the site (in-house or outsourced)?
- Where is it going to be hosted (can be determined after development)?
- How many people are going to use it?
- What features does the site need now?
- Which features will it need in the future?
- Who is going to maintain the site?
By determining and understanding the variables, it can be very easy to see whether or not a CMS is the correct choice for a web project. If the project is going to be maintained by mostly non-programmers, it should definitely be built in a CMS or a hybrid. If the project is going to have a lot of new features added on a regular basis, it should be built using a robust, open source CMS like Drupal that has thousands of modules (features that can be added in minutes). If the project is going to solve a very specific problem with no readily available solution, it should be built from scratch.
The argument for building a web project from scratch is that everything can be customized to the exact specifications and need of the company. It allows for every feature imaginable to be added and can often lead to software that runs faster because only the absolutely necessary pieces of code have been assembled. Also, the company owns the underlying code completely and thus can sell the project at any time for a profit, if it gets enough users and proves the value. Programming from scratch is perfect for web applications that have very defined and specific needs that aren’t related to serving content. Projects like creating an online radio station (Pandora) or building an iPhone application or developing a new game don’t fit well inside of a CMS (though Drupal can be used to create Facebook applications).
The major problem with building a project from scratch is that the developer is forced to write every single line of code. That leads to significantly longer development times and generally costs a company more to develop the website. Additionally, unless the custom project includes CMS like administration features, only the programmers can change the site. That affects who can make changes and limits how often the site can be updated. Often programmers won’t make little changes because it simply is too big of a hassle to get deep into the code to fix a small typo or change a date. Finally, custom projects can have major security holes because there is only one person or group doing security testing. If there is something wrong, no one knows until it breaks and messes up the web site. Downtime kills companies.
By using a CMS like Drupal, the project can utilize code that has been developed by thousands of users over a number of years. The underlying code has been, and continues to be, security tested by people all around the world. If one of their sites goes down, they immediately let the community know and everyone’s How to construct great arguments websites are updated as quickly as possible so that no one else is affected. This process has created incredibly stable software. The contribution and sharing process has also created hundreds of additional features that can be installed and configured quickly, limiting the amount of time necessary to develop the website in the first place. The modules allow new features to be added at any point with little hassle or worry. Features like blogs and forums, which traditionally take a long time to develop, can be turned on in seconds. Other features from search engine optimization to eCommerce solutions to rolling out an entire social network are available for free. The final piece of the puzzle is scalability.