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?
Content Management System
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 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.
If a site gets popular, can it handle the traffic? This is one of the great arguments for custom coding as it promises that only the most necessary pieces are added to the code so the servers have the lightest load possible. That's great, but at some point, no matter how light the code, the servers will be overrun by memory issues, CPU problems or bandwidth issues (example: Digg Effect). Drupal, a great CMS, has been used by sites like the New York Observer and Fast Company to serve millions of pages a day. Many of the additional features they use to properly serve that many pages and deal with memory, CPU and bandwidth problems are freely available to ordinary users by simply downloading and installing the modules. If the website does need to scale quickly, the features necessary can be added instantly rather than being developed by hand over a number of weeks.
In the end, most applications can be developed in a CMS and should be done in a CMS as it makes life much easier for both web developer and website owner. It cuts down on costs, reduces security issues, allows the site owner to switch developers at any time with little consequence or lost time, and allows for new features to be added very quickly. Custom solutions should be reserved for web projects that are completely custom
No comments:
Post a Comment