The internet and its residents are quickly and vastly moving into an age where there is much more user interaction between sites and their visitors. Along with this migration, a lot of pre-built scripts are being developed and offered as both open source and commercial products. Everything from simple text counters to E-commerce solutions can be found and implemented into your site's environment in a matter of "minutes". Granted, these applications can be considered rather acceptable or even more than acceptable solutions to the needs and/or desires of certain website owners.
What about custom developed applications? "Are you kidding? That would cost me an arm and a leg!"
That is not completely true. If you think about it, in many ways, even though it may seem that way at first, a custom developed solution wouldn't be more expensive than an open source application.
Even if you find an application somewhere on the web that pretty much fits your needs, you will want to customize its looks so that it matches your site. How many people have tried that? If you haven't but a basic knowledge of HTML there is only so much you can possibly do. You would probably start with the style sheet, if it has one. Maybe you can see about replacing some images?.
So, now you have spent at least the better part of a day creating images, getting hexadecimal codes for the colors of fonts and links. How does it look? Does it look like it is a part of your site? It really doesn't, does it? It looks the same but with different colors. Oh well, at least you didn't pay for the application. It'll do the job.
Did you get a better look at it and are you still not satisfied? Well, in order to get into customizing it more so it will fit your site's design better, you are going to need at least a basic understanding of the development language in which it was developed. Why? Online applications are built in pieces. These pieces are used for certain purposes, actions, tasks that need to be performed in order to complete a fully functioning "dynamic" online application. It is made in pieces to basically cut down on repetitious outputs. For example, instead of creating 23 pages in which over half of each of those pages are repeating the same header tables, footer tables, navigation, database connection information, etc., you would create the repetitious material once and write a simple piece of code to include those "pieces" in each page. So it cuts their work down tremendously. Are you thinking to yourself that "It sounds simple enough; I will just find those tags and edit those "pieces"."?
Well, think again! There are things most developers take advantage of, again, to simplify things for themselves. These things are known as "functions" these are additional and even smaller pieces. They use these functions to do other "smaller" repetitive tasks like creating tables, form fields and buttons, and different things like that. So, each time a table is built to display some information it sends values to a function telling it how many rows and columns the table will have and what information will go in it.
If you haven't figured out where this is all leading yet, let me explain. By the time you would actually be able to really customize an open source or a pre-built online application you will have such a level of a basic understanding of the development language you could probably almost create the application yourself with a little help from some online forums, or advanced tutorials, BUT getting to that level would have already cost you at least one to three months of head aches, sleepless nights, and stomach ulcers.
Maybe your thinking "I'll just find an open source application and hire someone else to customize it for me!"? Well, all in all it sounds like a winning solution, but there is one thing that just about any developer hates is to have to go through someone else's code. This is for many reasons, and for most cases, they actually dislike going through their own code and making changes. To start off with telling you why they don't like going through other developer's code is because each developer has their own style and way of constructing an application. Their way is what makes sense to them and their way of thinking. You have heard the saying "There is more than one way to skin a cat..."? Well the same is applicable to development. There are many ways to get the same result, and depending on the knowledge and experience of a developer, they will do things completely different. I know for myself looking back into applications I was very proud of a year ago, I laugh at now and can't believe I did some things the way I did. If I needed to make changes to such an application to use for another client, I would rather just rebuild it. Another reason would be because, some developers will actually create an application so it is a major pain to alter because they want to keep people from changing their source code and claiming it as their own.
Those reasons are why if you ever try or have tried having a pre-built application customized you will probably be a little surprised at the estimate you receive. In most cases with a little extra you can have one created especially for your site with the features you really want.
There is also the possibility that you want to have a forum and e-commerce sections on your site but you might not like, and the visitor might not like it either, that a visitor will need to register for both sections separately. Would it be nice to create an account once and have access to all the "members only" sections?
It also happens a lot that someone finally finds some open source application that has almost all the features they want but it has so many more that they would rather not deal with or even provide to their visitors. You can't simply delete pages, or "pieces", because you will have tons of errors through out the entire application.
From the aesthetic and user friendliness aspect of web "design", even if you are fine that your site is composed of multiple design styles all in the same color scheme, how do you think your visitors might feel when the click to go somewhere on your site, they are suddenly overwhelmed with the feeling that they just made a mistake by clicking on a wrong link and have left your site? For some internet users, the internet is an intimidating and confusing "world". Any and all site owners should keep this in mind when they are creating an environment for those people, or those like them.
The pros and cons are pretty obvious, what will you do when the time comes for you to have your site upgraded to this new and exciting "dynamic" era?