Internships

Customer Service, Marketing No Comments »

Interns can be a very powerful tool for any business.  Most interns are highly motivated, driven, and up to date with the goings-on of whatever area they are applying for an internship in.  The fact that they are green when it comes to your specific business, and perhaps your area of business in general should not deter you from taking on at least one intern a semester.

Right about now you might be asking yourself: ‘What do Internships have to do with developing my business on the Web?’.  Let’s tie that in real quick.  This entire article is working under the assumption that any intern you higher is either starting, in, or has recently finished college.  That means that your Intern likely has their finger on the pulse of the Internet in general.  This makes them a valuable resource when it comes time to put a fresh face on your website, add new functionality, or brainstorm.

Depending on the area of the internship there are several ways to make use of an Interns time that will be productive for your company’s web presence while giving the Intern some valuable business experience.   Marketing Interns should be prompted to post ads on Craigslist advertising your product or services.  IT Interns should be adding Google Analytics to your website.  The list goes on.

An ever growing amount of business is being conducted over the Internet and it pays to have someone around who understands it well.

Storm Code takes on between two and five interns every semester (including the summer).  We have learned that a properly trained and motivated intern can produce an amazing amount of work and also gain a great deal of knowledge.  If you are interested in an Internship with Storm Code please refer to our internship page for more information.

Portfolio

Customer Service, Marketing, Web Design No Comments »

Our portfolio is very important.  It helps our clients and potential clients to get an idea of what we are all about at Storm Code.  We try to keep our portfolio fresh, with our most recent projects and our crowning achievements.  We have just updated our portfolio with four fresh websites.

How did we decide on which websites out of many we should showcase?  It’s very simple.  We wanted to pick the most diverse websites we could.  If our portfolio was full of Real Estate sites, that wouldn’t tell our clients much at all about the other areas we have developed sites.  So we decided on four websites from different areas.

Real Estate, Construction, Automotive, and Social Networking.  This gives anyone viewing it a very broad view of the type of website development projects we take on at Storm Code.   If you haven’t already taken a look at our portfolio, check it out now!

PHP Code Optimization

Customer Service, PHP, Web Design No Comments »

In the past ten years computers have become so powerful that small performance tweaks and good coding standards and practices are overlooked. The reason for this is because coders have very little reason to care about coding standards and practices these days. It used to be that if you wrote sloppy code or didn’t take the time to optimize your code, you saw a drastic decrease in the performance of your program or script. Now that computers are as powerful as they are, even sloppy unoptimized code performs at such a high speed the loss of performance is barely noticeable.

At least that is what someone who writes code like that will tell you. At Storm Code we follow a best practices formula for writing optimized, performance driven code. If you run a small website with just a few scripts that are not often used, then you would notice very little difference (if any) between optimized code and unoptimized code. However, as your website grows in users and complexity the performance gap between unoptimized and optimized code grows larger quickly.

Several performance enhancing techniques can be used while coding. One of these examples is the use of single quotes instead of double quotes. An Example String using single quotes and double quotes in PHP:

echo ‘Hello World!’; // Single Quotes

echo “Hello World!”; // Double Quotes

In PHP, when using double quotes the parser looks for variables and formating information inside the String while using single quotes tells the parser not to look for variables and formatting information. Many coders use double quotes all the time for simplicity however this can cause a decrease in performance especially in large scripts that output a lot of information. Double quotes should only be used when formatting or variable matching is needed. This is one of many performance increasing best practices for PHP that Storm Code employs.

The main thing to remember is that doing something right the first time will save you having to redo it again down the road. Just because a website does not have a large user base or complex functionality right now, does not mean that it will not in the future and keeping performance and optimization in mind when coding, or hiring coders will not only save you money, but also headaches.

Content: Be prepared.

Customer Service, Marketing, Web Design No Comments »

Content is the most important part of any website.  It can be the text, audio, video and images that appear on each page.  At a very basic level Web Design can be broken into two different parts.  On one side you have the development of the actual pages, be it HTML, JavaScript, PHP, ASP, AJAX, Ruby on Rails, etc.  On the other side you have the creation of the Content.  Most Web Design companies handle only the first part which is the development of the actual pages.  It’s usually up to the Client to develop the content that will appear on the pages.

Content can be a HUGE bottleneck.   At different times during the development of the actual code for the pages, Content needs to be taken into account.  That is why creating the Content for a website before hiring a developer is a great idea.  It allows the developer to take into account the Content when designing the web site or web application.  The Content that is provided to the web developer should not be considered the final copy.  It’s just a guideline that the developer can use to better create the site.

It also means that the Project Managers on both side (client and developer) do not have to go back and forth as much with regards to the content that will be appearing on each page.  The client will not need to scramble to create content that the developer needs in order to continue or finish development of the site.  When the project leaves the design phase and the web site or web application has been tested, the client won’t need to begin creating the content at that time.  This means the web site or web application can be released sooner.

Many times, the Client does not take into account that actual Content that will be appearing on the web site or web application until the entire development of the site has been finished.  As stated above, this means that the release date of the project has to be pushed back while that Content is created.  This can lead to poorly thought out Content.  The Web Design company should be offering the Client suggestions about the Content.  It should be optimized for Search Engines, and it should be as jargon free as possible.

Jargon Free.  That’s a very important part of content.  When writing Content for a website you want to make it as simple as possible.  The Client knows and understand the business they are promoting but that does not mean that the users that come to the website will understand.  Web sites exist whose Content is full of Jargon and overly complex text that can confuse the user.  In some cases a dictionary of terms is provided somewhere on the web site or web application to help new users under the Jargon.  If you find yourself needing or thinking about a dictionary of terms, then you are using Jargon.  A dictionary of terms is almost an afterthought to make up for badly thought out Content.   As with any rule there are always exceptions.  If Content is being designed for a specific audience, then using Jargon may be the necessary, as it would be if you were writing a technical document.

Writing good, thought out, jargon free content is just as important as having a well designed web site or web application.  It’s just as important and as having a site that is optimized for search engines.  It’s as important as any other part of designing a good web site or web application.  It should get the same time, planning and effort that the other aspects of web design and development do.

Creeping Functionality

Customer Service, Marketing, Web Design No Comments »

Creeping Functionality, also known as Scope Creep is often described as “Death by a thousand cuts.”. It occurs when new functionality and features are constantly being added to a project that is already in progress. It can increase cost, push back the completion date, and severely damage development strategy for a project.

How does Creeping Functionality occur? After the Information Gathering phase of a project is completed with the Project Specifications and/or Proposal having been drafted and a contract is signed to develop and complete the project. During the Development Phase the client asks the Developer to make a negligible change. The change is so small compared to the entire scope of the project that it doesn’t seem to warrant a Change Order. These changes pile up during the Development Phase and after awhile the full scope of the negligible changes becomes apparent. The idea of writing twenty or thirty or a hundred change orders to account for the total time spent on changes outside the scope of the project becomes in and of itself a daunting and time consuming task.

Why does Creeping Functionality occur? One of the reasons that Creeping Functionality occurs is improper scoping of the project during the Information Gathering phase. Features and Functionality that are considered important were forgotten or not conceived during the Information Gathering phase and are now trying to find their way into the project after a contract has been signed.

Another reason that Creeping Functionality can occur is perceived value. Everyone wants the most bang for their buck and will try to slip in added functionality or cool features that will raise the perceived value of the finished product. At times individuals that were not involved in the Information Gathering phase of the project will begin to take an interest in the project and attempt to interject their own opinions and ideas into the project scope. Developers want to keep the Client happy and making small changes that allow them to look flexible can be a persuasive path to take. However, it comes at a cost.

Creeping Functionality can go unnoticed by Project Managers on both sides of the ball until budget and scheduling problems arise and bring the problem into the light. The budget can increase exponentially as hours worked on features and functionality outside the project scope pile up. Those hours that should have been spent on building the features and functionality inside the project scope push back the completion date of the project.

This is where perceived value and actual value come into play. It’s great to get the most out of your money, but at what other costs? Is the actual value of adding a negligible feature to a project more then having the project completed on time and within budget? The answer is a resounding no.

Creeping Functionality also taints any Development Plan that was put into place in order to keep the project on schedule and within budget. It divides developer/client attention between completing the project as defined by the contract and making the website as cool and feature packed as possible. It can be overwhelming and also cause tension. It can be very hard for a developer to say no to making a small change, and hard for a client to understand why when the developer does say no.

Managing Creeping Functionality is a very important part of Project Management. Getting the Project Scope right the first time and regular reviews of the Project Scope can keep it under control as to prevent problems.

It is important for both the Client and the Developer to be aware of Creeping Functionality and how to prevent it. At Storm Code we use a phased approach to development that can not only help prevent Creeping Functionality but also increases Actual Value, as opposed to Perceived Value.

Consider the original features and functionality of the project to be List A. Any features and functionality that were discussed during the Information Gathering phase that were seen as unnecessary or outside the current project scope, budget or time line are added to List B. List A has a deadline and a budget. After the deadline the website, or web application is released and the client makes it known that they have a new website or web application and people begin going to the site to check it out. This results in exposure, sales, leads, and much more. If Creeping Functionality had been allowed into the project then the release date would be pushed back and that exposure and everything that goes along with it would not exist.

List B consists of everything discussed during the Information Gathering phase that was not inside the original project scope, as discussed above. List B also consists of all the features and functionality that were thought up during the Development phase. In other words, all of the Creeping Functionality that could have effected the budget and time line. List B is considered to be Phase 2 of the project. After the website or web application is released, work on Phase 2 can begin. A new project proposal is drafted and contract signed. A new deadline and budget is created and work begins again anew. When the Phase 2 project is completed the Client can then spread the word that their website or web application (that is now no longer considered new) has some cool new features and functionality that everyone should come check out. If everything had been piled onto List A, it’s possible that the original project may not even have been completed by this time, and if it had, that would be it. No opportunity to invite users and potential clients back to the website or web application because no new features would be coming along.

A website or application is a marketing tool and nothing speaks better about a company or individual then if they keep their website or application up to date and constantly evolving with new, thought out, features.

For more information on Creeping Functionality please read this article by Steve Holder How to Keep Scope Creep from Sapping Project Profit

Why CSS?

CSS, Marketing, Web Design No Comments »

CSS (Cascading Style Sheets) has been a buzz word in the web design and development market since it’s inception in 1997. Since it’s creation it has been adopted and standardized by all the major web browsers. It’s nothing magical or hard to understand so lets break down exactly what CSS is and how it can save you on time, money, and headaches.

HTML (Hyper Text Markup Language) was designed to display information in a structured manner. It wasn’t designed with fancy images and layouts in mind. It also wasn’t designed to be used as an advertisement tool. What most web developers do when designing a purely HTML website would be considered ‘hacking’ the language. They use workarounds and techniques that are not standardized to create dynamic and great looking sites using a language that was not meant for that purpose. It’s akin to using lipstick to leave a message on a mirror for lack of the proper pen and paper. Web Developers took what they were given and used it to the best of their ability. However, the Web Community understood that the lipstick and mirror of HTML could only be used for so long.

CSS was designed to take the strain of styling a page off of HTML in order to let HTML do the job it was intended and developed for, which is organizing the content on the page. A simple example would be the HTML font tag. The font tag was used in order to change the size, color, or font face of text included inside the tag. So it may have looked something like this: <font size=”10px”>This is font size of 10px!</font>. To this day, browsers still support the font tag and many sites that have not made the change to CSS still use it to help style the page. If you wished to use CSS to change the font size of a specific piece of text you would include it in span tags like this: <span id=”myFontSize”>This is font size of 10px!</span> then in your style sheet you would define the myFontSize id as: .myFontSize { font-size: 10px; }.

Now, you might be thinking that the CSS example took more code, and hence more time. In this specific case you would be correct. However, once a style is defined in a style sheet, it can be reused. You could create another span tag <span id=”myFontSize”>This is another font Size example!</span> and that would also be given the font size of 10px that was defined in the style sheet. To better explain what this benefit can actually mean, let’s imagine a 25 page website was created for a company. The comapny President is very fond of the courier font and tells the developer to use it everywhere on the site. If the site was developed in HTML without CSS, a font tag would be used to surround every different piece of text that needed to be in the courier font, and the font name would be hard coded into every page, most likely multiple times. Now lets say the President retires and a new President takes over that prefers Times New Roman. In order to change something as simple as the font used on the site the developer would have to go through each page and change multiple font tags from courier to Times New Roman. That’s a headache and a time waster. If the site had been done in CSS, all relevant text would have been included in span or div tags that referred to a single entry in the style sheet. That means changing the font for the entire site would be as easy as changing Courier to Times New Roman in one place.

CSS not only allows you to easily style a website in a way that separates content and style, but it also allows you to easily re-style the website quickly, without having to dig through any of the actual pages. It also allows you much more control over the style of the website then simple HTML does. CSS is the future of web design. Most companies with a major web presence have already made the transition. Have you?

What can a database driven website do for you?

AJAX, Marketing, MySQL, PHP No Comments »

Some people hear the word Database and cringe at the complexity and cost of setting one up. There would have been cause for such a reaction ten, maybe even five years ago. Now however, in the age of MySQL, having Database support for a website is much less complex and time consuming.

MySQL was first released in 1995 and has since become one of the dominant web based database management systems (DMBS). PHP, Ruby on Rails, and ASP all support MySQL. Wikipedia runs on the MediaWiki software which is written in PHP and uses a MySQL database. MySQL is used for running many of the popular content management systems such as Joomla!, WordPress, and Drupal. For more information on MySQL history and documentation please visit Wikipedia

A database is integral for creating a dynamic website. Having a database supporting your website allows you to have features and functionality like user registration, blogs, statistics, content management, photo galleries, video galleries, searchable content, product tracking, e-commerce, and much more.

These days most web hosting providers (including Storm Code) offer MySQL as a standard feature of your web hosting package. Some providers offer unlimited MySQL databases, while others limit the number or size of the databases.

Creating a database is as simple as clicking a few buttons. The simplicity ends at that point though and the real work begins. Modeling out the Information Architecture of the Database takes both time and knowledge. A database must be normalized to prevent logical or structural problems, and normalization must be taken into account during the modeling phase of the database design. Normalization can be very tricky for an inexperienced designer and can cause severe problems and limitations in the future if not done correctly. For more information on Database Normalization read up at Wikipedia.

At Storm Code we have a team of experienced designers that understand the pitfalls and production delays caused by bad database design and we know how to avoid them. We have experience designing databases in many areas including but not limited to Real Esate and Automotive sales. If you are interested in speaking with one of our Project Managers about your existing database or a new project please refer to our Contact page.

Why AJAX is right for You

AJAX, Marketing, PHP, Web Design No Comments »

AJAX stands for Asynchronous JavaScript and XML. It’s not a new technology, but a new way of using existing technology. When AJAX is properly used it allows normal web applications to function in a way more consistent with desktop applications. It allows the web application to pass or request information from the web server without reloading the entire page. This makes web applications faster and more dynamic.

Two examples of websites that rely heavily on AJAX are Google’s Gmail (www.gmail.com) and Facebook (www.facebook.com). Without AJAX, it wouldn’t be possible for Gmail to update your inbox at the rate it does and Facebook wouldn’t be able to list completions to your friend search before you hit search.

Not only does AJAX allow you to create more dynamic pages, but it saves on load time. Instead of sending a request to the web server and then displaying the page the server returns, AJAX allows you to make small requests from the web server and then use Javascript to display that information on the page without having to reload it.

Load time isn’t the only thing you save by not having to reload the entire page every time a users wants to interact, it also saves you bandwidth. If your website was created with AJAX in mind the reduction in bandwidth usage compared to the same site without AJAX support would be significant. There are no figures to offer on actual bandwidth saved as every website is different. However, if a web page that is five kilobytes is reloading itself every time a user has to send one kilobyte of information, and the page that is reloaded is the same with the addition of just a success or failure message based on the users input, you would be saving four kilobytes of bandwidth every single time a user enters said information. If you have a thousand users that all use that page a single time using AJAX would save you roughly four megabytes of bandwidth and save your users precious time.

Upgrading to PHP 5

Customer Service, Marketing, PHP No Comments »

The biggest reason for upgrading from PHP4 to PHP5 is the end of life announcement made. As of December 2007 only critical security fixes will be made to PHP4. No support is being offered for PHP4 after August 2008.

Now is the time to migrate from PHP4 to PHP5. You do not want to wait until the last minute. As of right now you can migrate on your own terms, and take your time. The amount of difficulty in migrating from PHP4 to PHP5 will depend on your current code base. Some features enabled in PHP4 do not come enabled in PHP5 by default. Register Globals is one such feature.

PHP5 has the core functionality to support many of the new web technologies such as AJAX. Upgrading to PHP5 before August 2008 is a must. If you have a website that is still running PHP4, or you are not sure what version of PHP your website is running you need to find out. If you have access to your web server via FTP or a file manager do the following:

Open notepad (or equivalent text editor)

Enter the following code:

<?php

phpinfo();

?>

Save the file as phpinfo.php

Upload the file to your web server and execute it.

Displayed will be detailed information about your PHP build. You will see your current PHP version included with that information. If you are not using PHP5 and you wish to make the transition, please feel free to contact Storm Code and arrange for one of our project managers to take a look at your code base and give you an estimate on cost and time.

Price Versus Quality

Customer Service, Marketing, Web Design No Comments »

Getting the best possible service for your money if very important. However, thinking that the lowest price means the best deal will land you nothing but headaches. One thing you should ask yourself before taking the lowest price service or product is why is it so cheap? Let me use Linux as an example. You can download many different versions of the operating system for free, and you wouldn’t be doing anything illegal! It is offered for free by the various companies that develop the builds. However, when you encounter a problem you have no support system to turn to for answers.

If you plan on paying $10 a month for web hosting, you have to ask yourself, when I have a problem, who is going to help me? Is it going to be someone that is knowledgeable and invested in my company? Or is it more likely going to be someone in a call center over-seas who may or may not be interested in actually helping you. In this business, like most others, you get what you pay for. So while the cheapest product or service may benefit you in the short term, that all goes out the window when you have to spend hours of your time trying to get someone who does not understand your business to help you fix a problem.

Another real world example would be car insurance. If you buy a brand new car do you purchase an insurance policy that only covers the bare minimum, or do you purchase comprehensive insurance so that if something were to happen you have the peace of mind of knowing that you are totally covered. Do you go with a company that’s cheaper, or a company that you know is going to make filing a claim as easy as possible if an accident does happen?

No one wants to be in a position where the company they have been paying is doing everything in their power to get out of helping. That’s why at Storm Code no matter what product or service you purchase from us, you get a Project Manager that you can call or e-mail personally. Someone that knows your business and your name. Someone who wants to help you. Someone invested.