When it comes to developing websites for clients, there are essentially three ways to go about it. Which method that a client chooses should be based on their needs and while each approach has their upside, there are downsides.
Before moving forward, we would like to explain a concept that can apply to all three approaches: Open Source.
Open Source Unfortunately a lot of people see the word open source and think the word “free” but it’s more than that. Open source is a philosophy that promotes the free distribution and access to software and not just the end product. The code and design are laid bare for everyone to see, use or contribute to. The result is that the software tends to get heavily reviewed by many people and people contribute additions to the code to enhance it thus making it a secure and well designed piece of software (at least for large projects where many people contribute).
Websites can be broken down in three different categories:
- Content Management System (like WordPress)
- Custom Web Application (like ASP.NET)
- Commerical Off The Shelf (like Intuit Websites)
All three approaches are valid and the approach is really dependent on your needs. Web technology has evolved to the point where an open source tool like WordPress can quickly and easily cover the needs of 80% of the people out there. The remaining 20% of the people are looking for something more out of their website. They want features that cannot be easily handled by a basic website and for that, a custom web application or commercial off the shelf (COTS) product is the way to go. Let us discuss the three types of approaches so as to better understand them.
#1 – Content Management System (WordPress)
A content management system (CMS) is software that allows users to create, edit and publish content for a website. There are many content management systems out on the market today but the most popular one by far is the open sourced one known as WordPress and it is used in over 60 million websites today. Why is it so popular? Read on.
Plugins, Plugins, Plugins!
Plugins are pieces of code that add a specific piece of functionality to an existing WordPress installation. They are easily installed and are rated by other users so you know what to expect. There are over 20,000 free plugins available to download as well as a very good selection of commercially available ones. They do everything from allowing users to upload files, rate content, integrate newsletter tools to turning a simple site into a full fledged multilingual eCommerce (online store) site.
WordPress has a very well developed user management system that allows people to create accounts, reset passwords, assign security rules. From a single user to an entire community, WordPress can manage it.
WordPress handles content extremely well. It has an easy to use content editor that allows a user to edit pages visually, without having to ever see the HTML (although, it still allow editing HTML directly). It creates pages and organizes them hierarchically but it stays true to its roots and it is still very good to use a blogging platform. Media management is no different. Users can upload images and videos and the system allows them to edit them very quickly and easily.
WordPress is the obvious choice for most websites as it allows a client to have a website up and running in a very short timeframe. The functionality that is included in WordPress considerably reduces the amount of time and effort Unless a client is trying recreate eBay. It If you are looking for some custom feature, chances are that there is already a plugin that does it.
- Quick to implement
- Huge developer plugin community
- WordPress updates can affect plugins
- Not a full fledged development framework
#2 – Custom Web Development
(.Net / MVC / C#)
One might be inclined to think that with versatile, easy to setup and inexpensive content management systems, thereâ€™s no need for custom made webs sites but that is not the case. For some websites, organizing content into a hierarchical structure is only a small piece of the pie. When one creates a custom web application, there is no limit to what one can do. Complex formulas, graphs, mapping tools, business workflows and anything else can be modeled and converted into a web application and it can be dressed up in any fashion.
Solid architecture to build upon
Development frameworks such as Microsofts .Net MVC allow developers to use heavily used languages like C# (pronounced C-Sharp) to create code that is easily maintainable (if written properly). The code can also be created in such a fashion so that future projects can quickly and easily be integrated into an existing solution. These technologies can integrate with existing solutions which other web development approaches cannot easily achieve.
A few drawbacks but…
Multilingual support, visual content editor and video/image management are not included out of box but thanks to the openness of the internet, there are solutions out there that people are willing to share as well as open source solutions. There is also a LOT of documentation on how to set up common features and people are more than happy to share this knowledge. So while you do have to create everything from scratch, a savvy developer will have a toolbox that he reuses and refines on every project he works on which can cut the development time (and cost) quite a bit.
Going with a custom solution may be more expensive and may take a bit longer but you know exactly what you are getting and if developed properly, it can grow as your business grows. Note that some clients opt for a custom web application for the complex parts of their site and they then integrate it into the static portion of their site which is managed by the CMS. The best of both worlds so to speak.
- Solutions can be properly designed from the start
- Ability to create without contstraints
- High performance framework that can connect to a myriad of other environments
- Longer development cycle
- More expensive than other approaches
#3 – Commerical Off The Shelf
Commercial-Off-The-Shelf Software (COTS) is pre-built software that a client licenses (monthly fee) or buys from a 3rd party vendor. The argument for going with a COTS product is that a lot of the work has already been done and that the client simply needs to configure the tool before using it.
An example of this would be Intuit Websites. The service/tool they offer allows a user to easily create an online store without having to worry about all the details like domain names, hosting and development. They have a tool that Better, faster and cheaper software applications are what organizations are currently looking for. While the number of layouts and designs that are offered are typically limited, the upside is that users can be online in very short order.
If you can think of it, there is a solution
For every type of need out there, there is typically a turn-key solution available to purchase or lease. Everything from project management, decision support systems, human resource management, resume building tools are available as stand alone tools or through an online component.
Over the years, experience has shown that if a COTS product models business processes differently than how you you do it within your organization, it might be best to find another solution or change how your business model. Out of the box, COTS are well designed and offer the promise of customizations but be wary of this. The customizations tend to be costly not only from a development perspective but from a maintenance perspective because when the application is upgrades, your customizations may no longer work.
The use of a COTS product is highly situational and while there are many successful implementations, they are not without their hefty ‘lessons learned’ documents. Each case should be looked at individually before making the decision to use or not use a COTS product as the requirements for each client varies.
- More often than not, easy to implement
- Software is vendor supported
- Limited ability to customize
- Can be expensive