Understanding Web Programming

There seems to be a large misconception about what programming is and what things can be done on a website.  Technically, anything that can be thought of can be made to “appear” to be done.  However, it is not always so simple, or so quickly completed.

Visual Effects
Javascript/jQuery, along with HTML5, has replaced flash animations and have become more and more commonplace.  From simple drop down menu navigation to full-screen interactive masterpieces such as http://beta.theexpressiveweb.com, programmers and designers are coming up with more ways to attract and interact with visitors of their websites.

Unfortunately, making these effects is not always a quick and simple process.  They can take hours or even days to create a good animation sequence or interactive design, especially when working on a site made by someone else.  This makes it hard when working within a budget and needing to split costs between design and actual functionality programming.

Functionality and Post Processing
Post Processing, in this sense, is the act of performing some sort of action with information submitted in an online form.  This could be a contact form, registration form, or anything that would require data to be submitted.  Post processing can take a range of different times to perform on the same form submission depending on what the client desires the form to do.  For instance, a “Contact Us” form where the user submits their name, email, subject, and message.  If the client just wishes for the form to send them an email, this is fairly straightforward and easy to do.  The whole thing may take 20 minutes, if that.  However, when you add on field verification, email structure validation, a “thank you for contacting us” email sent to the user, and database entry for record keeping of the contact message, the time it takes to process the form is substantially longer.

On a “Contact Us” form, this still isn’t so bad, taking maybe an hour to an hour to do.  But what about a registration form for a website that has a multitude of products that could be registered for? Processing large forms can take a few hours to program and may require bug fixes as they are tested.

Programming other site functionality has it’s own ranges of times it takes to perform different tasks as well.  Anymore, most websites are database-driven, meaning they pull a majority of their content from a database.  That alone usually means that there is a management system for the website to allow the site owner to change content on their website as needed or desired.  A lot of the times that clients request manageable content, they do not understand that a mini-site to manage that content is then created on top of the pages that they are requesting to be made for their website.  A management section can add many hours, and possibly take longer to create than the website itself.

Can you make a “Quick Change”?
Most clients do not understand how much is involved in a “quick change” when requesting a site update.  I often get requests to make these “quick updates” that will take hours to complete due to the fact that the change being requested technically changes the base structure of the entire website.  By contrast,  I also get requests where the client thinks the change will take hours to complete, but really it only takes 20-or-so minutes.  Understanding what all is affected by the change can help you better understand how long a change could take.

For instance, let’s say you have a website with users and member-only content, and you have different reports that can be pulled for your users.  A year goes by where you’ve had to delete a user from the database completely and you decide that you no longer want to delete them but just mark them as inactive.  Simple?  Not in the least, I’m afraid.  You would first need to update any login script to check to see if they are active or not and give them the appropriate feedback if they are not active.  Then, you would need to update the user management pages to add the new active/inactive option.  Next, update all of the content areas where it checks if the user is logged in to also make sure it is an active user (because what if they are in fact logged in when you make them inactive?).  Next we would update all of the reports to make it show only active members, or inactive if needed.  Lastly is creating a new report to show all inactive members if requested.

Depending on your website, there could be many more changes needing to be made, all over a “quick change”.

Things to keep in mind
There are many things you can do to try to save yourself some money when having programming work done for you.  Here are some of those things:

  • When requesting work, try to think ahead to future changes or options you may want to make and have the programmer develop the site with those things in mind.  This will cut down on work needing to be done later so that they do not need to completely change the way the website works.
  • Can the programming be phased out?  If you can, come up with a list of everything you want done, then discuss with your programmer to find the things that would absolutely need to be completed first due to functionality and what you would like completed first for aesthetics.  After coming up with a list of tasks to be completed prior to the site launch, you can then discuss additional phases to be completed at a later point in time.  This will help get your site up and running at minimal costs and is great for sites on a budget.
  • How much data do we really need to keep?  Although it is nice to keep all of the data flowing into your website, it is not always necessary.  If on a budget, try to find ways to cut down on programming time by cutting out additional database calls.  For instance, if you do not really need to insert “Contact Us” messages into the database, leave that functionality for another point in time.
  • Do you know exactly what you want?  If you only know in general what you want out of your website and leave it up to the developers to determine what all you need to accomplish your goals, you are adding more time to the project.  Now the developers need to spend time on thinking about what you need.  Then, if they come up with ideas and implement those ideas and it turns out that you do not like them, time has been wasted on something that isn’t even going to be on the website.  So take your time, come up with all of the data you want to capture and track, what all pages you want for your site, and what each page should display or do.  Give your developers as much information as possible.
  • Do we need that intro animation?  Special effects are nice, but if you are on a budget, you may want to consider holding off on them until a later point in time.  Slideshows are easy enough to do if you still want “something”, but full screen animations, interactive imagery, etc. should be pushed back to a later phase in the project.

So remember, its true that pretty much anything can be done, but make sure you fully understand the time and costs involved in any requests being make to ensure you’re not overestimating the ease of a project.