Make the right platform choice
How to choose the right development framework for your project.
Choosing the right platform to develop your website or web application can mean the difference between creating a flexible application that reduces long term costs or feeling like you are in a jail cell and serving 20 years to life. Alright, that's an exaggeration but you've heard the nightmares from Entrepreneurs and Small Business website owners who have tried to build a something online only to be told of numerous issues they had in developing the platform.
Many of these issues could have been handled from the start by choosing the right web development team as well as choosing the right platform to build your application or website on.
In today's market there are many tools and platforms available for building web sites and web applications. The most widely used platforms can be classified as one of three types:
Content Management System (CMS)
Content Management Framework (CMF)
Web Application Framework
Content Management System
A Content Management System provides a work flow for deploying and managing specific types of web sites such as blogs or forums. A CMS is designed to leverage the skills of a site's administrator at the cost of flexibility and code control. The goal is to allow you to manage your website content through a user friendly interface without requiring a web developer. A CMS will usually provide some tools for a developer to create a custom theme or template. Beyond that, adding additional functionality is typically cumbersome for developers and costly for site owners.
Examples: Most of these have gone away. WordPress 2 was a CMS but WordPress 3 is a CMF. This comes in when a developer wrote something custom that allows you to edit your content and that's it.
Content Management Framework
A content management framework or CMF is much like a CMS. It is designed to be more flexible than a CMS and provides some mechanisms for developers to extend its functionality. While it is more flexible than a CMS, it is much less flexible than a web application framework and typically does not perform as well.
Examples: WordPress 3+ and Drupal
Web Application Framework
A web application framework provides code based utilities and workflows for developing custom web applications. A web application framework is designed to leverage development skills and enable the rapid development of custom applications. It allows you to build much more complex and performant applications than a CMS or CMF but also requires much more expertise to utilize.
Examples: Rails is a Ruby framework. Cake, Starbug, Zend, and CodeIgniter are PHP frameworks
When choosing a platform it comes down to the complexity of the project, amount of control you want, and the skills at your disposal. If you are an expert web developer or have one at your disposal, then unless you are trying to build a very standard type of web site, a CMS will only slow you down and end up costing the client more in the long run because you may be fighting against the CMS to do what the client wants as far as functionality and therefore even a small feature request could require bypassing what the CMS is allowing and then building the feature.
Here are a couple of ways to think about it:
1. As a client you just want to be able to add new content to your website. Maybe upload some photos and embed youtube videos. Then a CMS would be fine or even a CMF.
2. As a client, you want to add on features like event systems or social media sharing of content you've added. Then a CMF would be fine because you can integrate plugins or modules. As long as those plugins and modules work how you want, then you are good to go.
3. As a client, you want to be able to add special types of content, you want event systems that work a specific way or you want to sell products on your website and a standard off the shelf shopping cart won't do the trick. Then a Web Application Framework is in order.
4. As a client, you want to use a CMF but you also want a few things created custom that aren't doable with a plugin or module. Then you pay for a custom piece to be built and the developer has to make sure it works with the CMF and you may pay a little more than you would with a Web Application Framework or a lot more depending on the feature itself and how much of the CMF has to be hacked to make it work.
The rub comes when a CMF will do 95% of what you need. Is it better to step it up to a Web Application Framework or is it better to stick with the CMF and then understand that you'll get pretty close to what you want but may not be able to get to exactly what you want?
This is where the relationship and processes of your web development firm play a huge role. They should be able to help you choose what's best and explain why they are making their suggestion. It comes down to knowing your development team is experienced and looking out for your best interest.