Cedar City Group: October 2007

Saturday, October 27, 2007

The key to success...

For some time now, I've been thinking about my next blog post here. I had the idea of what I wanted to write, but it took me a while to put it all together. The idea that I had was:

What is the key to success for a developer? What is the one skill or attribute that a developer could have that would increase the likelihood of a long and successful career?

It's not a language
In my view its not a technology skill at all. In my career I've developed software in Pascal, FORTRAN, C (before it had pluses), C++, Java, VB (not proud of that one) and now C#. At one time any of those were the next big thing yet most have faded.

What is it?
I believe that the most important skill that a developer can possess is humility. It's alway fun to watch a developer start a new job. There are several different approaches that I've seen. Many times developers seem to be worried about making their place at a new job. Where do I fit in the pecking order? The natural tendency seems to be to shoot for the top and then fall until you find your spot. In my view, humility is what tells you to start a new job by first doing a lot of listening, and learning when you start. It's much easier to fit in that way.

One of my first jobs was with a small company. The President of the company is one of my personal heroes. One of the things that amazed me was that if the floor needed sweeping, he didn't tell someone to do it, he grabbed the broom. It has taken me a lot of years to realize the wisdom in that. It hard to tell the boss that sweeps the floor that you are 'above' doing something that he asks you to do.

Humility can also assist directly in coding. Like a good math test, programming will reveal a lot of stupid mistakes. Humility will have you checking and rechecking yourself rather than assuming that you got it right the first time.

One habit that I developed several years ago was suggested by Steve McConnell in his book 'Code Complete'. He suggested that you add code to a system in small increments and that you always 'watch your code work' in the debugger first. It takes a little humility (and some time) to do that, but I have found that advice to be invaluable. I've not run into a company yet that has said "I just need the code, I don't care if it works or not"

So there it is....my take on the key to success.

Wednesday, October 3, 2007

Google Analytics

Having been involved with web sites for some time now, the most common question that I ask is,
"Why are we building it?"
and then, after its complete
"Does it do the job that we set out to do?"
The one way to know the answer to the second question is to use some form of web statistics tool. Most statistics tools use the venerable server log to track visits. Though this has been useful for many years Google Analytics uses a javascript file inserted into your pages to perform this tracking. This approach provides the capability to learn information about your site that the server log just can't provide.

Installation
First, you must create an account. Once you have created an account, you must create a web site profile. The web site profile is an individual site that you wish to track. For instance, I create a separate profile for each of my clients sites, as well as profiles for each blog that I am involved with. When you create the profile, Google Analytics will provide you with a snippet of javascript code that needs to be inserted into your pages. Here's a lesson from the school of hard knocks: If the site that you are creating a profile for has ANY secure pages (https://) then use https:// as the protocol when you create the profile. When you do this, Google analytics will give you a version of the javascript code that can be used on both secure and non-secure pages.

<ForNonGeeksOnly>
Javascript is language that allows code to be run within the browser on your computer. It is what allows a page to be 'active' to a certain extent. There are limits on what can be done with Javascript to protect your computer, but it is very useful for web page designers.
</ForNonGeeksOnly>

<ForBloggersOnly>
If you use Wordpress, then I don't know of any way that you can utilize Google Analytics, Wordpress doesn't appear to allow you to modify the template in any way.
If you use blogger, then inserting the code is simple.
When you see the javascript snippet that Google Analytics provides, highlight it and copy it to your clipboard. Once you have done that, login to your blogger account and follow these instructions:

  1. Go to the template tab.

  2. Click on 'add page element' (it doesn't matter where, this won't change how your page looks)

  3. Select HTML/Javascript as the element type

  4. Don't type anything into the title box, Paste the tracking code into the content blox

  5. Press save..you are done

You can go back to your Google Analytics profile and verify that the tracking code was installed properly by clicking the verify link next to the profile.

As a general rule for other blogging engines, you must be able to modify the template in one way or another to be able track your blog with google analytics.
</ForBloggersOnly>


<ForSiteDesignersOnly>
If you design web sites for a living, inserting javascript code should be a straight forward task. If you do traditional web sites, I would highly recommend putting the tracking code into a separate javascript file and 'including' it into each page. If you use a technology like ASP.NET, then put the tracking code into each master page.
</ForSiteDesignersOnly>

It's installed, Now What?
Once the tracking code has been installed, Google Analytics will start receiving data from your site. Reports are generated on a daily basis. The reports include the traditional visits, pageviews, bounce rate style reporting, but it also provides a lot of capabilities that I've not seen from traditional reporting tools.
Here are a few features that caught my attention:
  • It provides a world map where countries appear darker based on the number of visits you've received from that country. You can drill down to the state and city level to see where your visits are coming from.

  • You can see what version of Flash your visitors have.

  • You can define campaigns, which allow you to track the effectiveness of advertising and email campaigns that you implement. You can see how many visitors came to your site as the result of the campaign.
  • You can define 'goal pages' (for e-commerce sites a goal page would be a sale confirmation page) you can then track how effective your site and campaigns are at converting visits into dollars

  • If you manage multiple sites or blogs, you can provide access to reports to each client that you have. You can limits the sites that each client can view.


The features are too many to provide complete details, however, they do provide some helpful videos to address of the more advanced features.

If you have any questions, post them in the comments. I'll provide answers if I can.