Monday, October 03, 2011

SQL Saturday - 3 Years Later

Last week I attended the SQL Saturday event in Orlando, the site of the original event in November 2007. I'll not forget that one because Andy scheduled me to be the last speaker of the day and in the back of my truck was all my hunting gear ready for a departure to north Florida after the event for a good couple days of deer hunting. My two sessions that day were two of the best I've done, which makes up for the very poor showing on the next day's deer hunting.

The idea for SQL Saturday originally grew out of the code camps. Florida was one of the first states to implement code camps as early as 2005 statewide. The code camps were great and us SQL guys had to settle for having a SQL leaning track at the code camps. I thoroughly enjoyed spending 2006 and 2007 traveling around the state to speak at these events, and I occasionally still do. Brian Knight, Joe Healy, and myself had discussions about putting on a 'data camp' as early as summer 2006 and I even called around to a few hotels to inquire about a meeting room to run the event in October 2006. Well, alas, talk is all it was and in the meantime Andy W. and crew came up the wonderful idea of SQL Saturday and the rest is history. I quickly gathered a group together in Tampa by teaming up with the wonderful and community oriented Pam Shaw and we ran SQL Saturday #2 in Tampa in February 2008. It was a fun event, tiring, and a little stressful, but the first few events led us to where the event is today. Matter of fact, I just signed up to speak at SQL Saturday #100.

There has been some discussion from event organizers wondering if this "code camp" thing is just a fad, and I can thoroughly say that it's not. It's really taken on a life of it's own and now there are code camps, SQL Saturday, Bar camps, Azure Camp, and soon to be Windows Phone camps. As camps split into more specialized areas there are some attendance drops but it also brings out new people who are interested in that particular technology. Techies always enjoy the free or low cost events to network and learn or relearn something, and the post parties certainly don't hurt either.

If you haven't been to one of these events yet, I encourage you to find out when the next one is coming to a city near you, or even better, get a group together and host one yourself. Information on SQL Saturday can be obtained by clicking here.

Friday, September 30, 2011

Data Models and Their Importance

Just this week I had a discussion with a client who is looking to hire a data modeler. We spoke about his project, the number of facts and dimensions, and what he was looking for in a data modeler. I felt compelled to add the following analogy:

"A data model is like the foundation of a house. Without a strong foundation, no amount of work or rework on the remainder will be correct, and it will frustrate you to failure, so get the foundation right the first time."

Unfortunately I know this all too well. I have been part of a few projects on the ETL side that had poor data models, either models that weren't completely thought through or models that weren't designed for the end solution. A data modeler needs to work very closely with the business/functional analysts to understand the data that will be stored in the model, and develop an enterprise model that can be easily maintained and expanded.

First, let's look at a typical data model. For this example, I'll use the star methodology. This is a simple fact table that contains surrogate keys that point to attributes in the dimensions. If you need to, review the difference between facts and dimensions here.

Our simple model is a grocery store. It has a date, customer, employee, and product dimension. It has a Sales fact table that lists each transaction.

This is a simple model but it carries a lot of information. The data modeler should be thinking ahead as to which dimensions should be added in the future for a sales fact table. There should also be thought as to which fact measures could be added in the future.

I've worked with clients who would design the exact model above and attempt to capture every possible fact and dimensional attribute the first release. DON'T try this! Just capture the majority of the dimensions which are needed to create a usable report, design the metrics (facts), and implement. Dimensions and facts can be easily added later if the tables are designed right, and this allows the IT department to deliver something quickly and get the business vested in the success of the project.

The synopsis, if you have made it this far, is to focus on building a solid data model from the start, containing relevant dimensions and needed facts to get the dimensional model up and running. Never, never, and I'll repeat never shortchange on your data model to get something out the door quicker.

Thursday, September 29, 2011

Windows Phone 7.5 - A Year in the Making

Readers will recall that last year I was excited about getting the Windows Phone 7.5. I even recall Nov 8, 2010 when the phone first went on sale - I awoke in a Marriott in downtown Durham, NC, and after a hectic day made a trip to the AT&T store, only to find that they were sold out of the Samsung Focus which I had decided on. Patience was painful but worthwhile, as a black Friday sale at the local Microsoft store yielded a free-after-contract LG Quantum. It's been a full 10 months since that fateful day and I'm no less pleased with Windows Phone.

Yesterday I was able to upgrade to Windows Phone 7.5. This is the first phone I've owned in almost 10 years that I am completely happy with. The hardware is great (LG), and the camera is excellent. Matter of fact, I don't carry a camera anymore as this one takes excellent pictures. The ability to sync with Zune keeps my podcasts up to date and the phone functions as a de-facto iPod. Except that its' better. I haven't really noticed much with Mango yet except that the colors are more vibrant and texts/emails have a different style to them.

For those who are contemplating a business device but want to stay in the Windows ecosystem, I highly encourage you to check out a WP7 device. I have been asked about it multiple times in my travels and try to spend a few seconds showing the device in a positive light. I am also asked quite a bit about my Amazon Kindle. Did I mention the WP7 apps, there are plenty of apps for many items but I still prefer to use a mobile browser when possible.

Suffice it to say that I'm incredibly excited about Windows Phone 8, Windows 8, and Windows Server 8. The combination O/S, phone, server, and tablet should be the perfect quad of devices. I'm not a Windows fanboy but it's hard to argue that any ecosystem is better in the dual, and often shared realms of business and pleasure.

I'd enjoy hearing any comments about the Windows Phone experiences you have.

Wednesday, September 28, 2011

Is it 2011 or 2006?

It's been five years since I originally started this blog, so I decided it was time for a redesign. One of the plans is to move this over within the corporate webpage so the first task was to get the colors matched up. A second tasks was to "modify" the name. I elected to remove the quasi-curse word from the title, and while I believe "damn" is catchy and not overly offensive, the clientele is professional and it's important to retain the professional image.

One of my disappointments has been in the blog postings, mainly the quantity or lack thereof. It's just plain difficult to find the time to do a comprehensive writing, one that actually delivers value to the constituents. Well, here's my mea cupla. I'll try harder to write more often and also more quality postings. Business intelligence is such an interesting and dynamic field and there are many topics that I could write about which would deliver value to you, the readers.

If you have any comments about the new layout, please let me know.

Tuesday, June 28, 2011

Picking the right laptop

Another topic back on the laptops, and I hope this will be my last for a while. Earlier this year I decided to pick up a MacBook Air to use when traveling. It's the lightest full laptop on the market and the size is a dream. The problems began quickly - first, I had to spend sometime installing BootCamp and setting up Windows 7 on it with all my software, as most macOS programs are useless for what I do. The problem I had with the laptop was the glossy screen - after just 30 minutes of use, I couldn't see well the rest of the day with severe eye strain. After a couple weeks I put it in the closet and a quick Bing search revealed that the exact same problems had been noted by others as well. I let a friend borrow it a few weeks who didn't have any issues, so just guessing my eyes are a little sensitive and the Apple store said it's perfect, so I resold it and decided to move back to my second choice, a Lenovo ThinkPad.

I finally decided on a ThinkPad T420s. It's a full machine with a 14" screen, which is only 1 lb more than the MBA, with all the features of a laptop (DVD rom, removable battery, anti-glare screen, great screen resolution). Crucial provided me an additional 4GB of ram, so now I'm running a 8 GB ram machine that's a dream to carry and can natively run all the programs that I need. The Lenovo cost the same amount as the MBA so that's a double win. So to anyone who is contemplating a thin, light 14" laptop, I highly recommend checking out the Lenovo lineup.

Monday, June 27, 2011

Types of Data

This is a question I get asked quite a bit: "What are the different types of data that I can collect in my data warehouse?" Always an interesting topic, so I'll start by saying there are three basic types of data: empirical, anecdotal, and derived.

The basic case for data warehousing starts with empirical data. This is data that is collected - Eg. "I sold 10 widgets this week". Most data warehouses are built off this type of data, because it's really a "fact", meaning that it's true. Not to be confused with dimensional modeling, as an address is also "empirical" in nature.

A second type of data is derived. This is data that is created from another type of data. An example of derived data is "I sold 10 widgets this week for $1 each, therefore my total sales are $10 for the week". Derivation is the only way to perform a computation to get a picture. Think of aggregations as derived data.

The third type of data, and one that is less common, is anecdotal. This is data that is oberserved or believed but without any scientific basis. Anecdotal data often has applications in business. Think of the example that a salesman is selling widgets to a retailer, which we shall call Mega-lo-mart, and the salesman knows through discussion with the Mega-lo-mart manager that they don't intend to buy widgets this year, anecdotal data would be the salesman's oberservation that "mega-lo-mart doesn't indend to buy widgets this year because they aren't selling well". There is no scientific evidence this is true, but think of the business case, where a salesman is wasting time trying to sell to someone who will not buy the widget. Thus, there is a case that anecdotal evidence could be used in a data warehouse application, as long as it's documented as such, to help drive decisions.

I find these data types fascinating, especially the anecdotal nature. Sometimes it's difficult to determine which data type is particular type of data is, based on the way it was collected. That's our jobs as architects (typically a data modeler) who would analyze the data, work with business users to determine the applicability of the data, and build a dimensional model that contains all three types of data to present as a business intelligence applicaiton.

Sunday, January 09, 2011

Using Windows Tools to Maximize Productivity

One of the most important things for consultants to do is to maximize their time. Fortunately, there are a number of tools available to assist in this endeavor. I'm specifically focusing on Microsoft tools, namely Windows Phone and associated services to get more done in less time.

Smart phones have really taken off. Of course, some of us have been using "smart" phones long before Apple came along and took credit for inventing it.

Here's a list of three Windows tools that can be used to maximize productivity:

Windows Phone - Syncs with Hotmail, Hotmail calendar, and can use Outlook connector to sync with Outlook on a desktop. Use Zune software to sync up podcasts and music.

Windows SkyDrive - Upload your documents and photos to this secure online storage area, where they can be accessed from your WP or any internet-connected computer. This is a lifesaver when needing to access business documents on a client site or to edit using the WP.

Office Online - Last but not least, the ability to create, edit, and save Office documents on computers without the client software is huge. Office online doesn't have the full functionality of the client tools but it's enough for basic documents and has saved me more than once.

I hope you consider using these tools to become more productive. They are all available for low or no cost and provide high return on time.

Monday, January 03, 2011

The Importance of Goals

Welcome to the first post of 2011. Ironically, or maybe not, I'm writing about goals today for software techies, and my first goal is to publish posts more frequently.

It is very easy to get into patters of life that just happen and people, like energy, tend to follow the past of least resistance. This is especially apparent in corporate America, where people get hired as employees, suffer through yearly reviews, get raises every now and then, but (often) fail to build a comprehensive goal list. In corporate speak, this is called a "career path". I prefer the term "Career plan", because the employee is the responsible party for developing and executing his/her own career plan. Especially in the era of corporate downsizing, one should not and cannot let their career path be dictated by a single company.

A career plan can be simple or detailed. It must be actionable. One plan might state "Advance to become Software Architect". This seems slightly lofty and possibly unreasonable, but with the right planning becomes a distinct possibility. Compare with the goal of "Advance to become Software Architect by presenting at a major conference, spending 5 hours a week networking with fellow architects, and publishing an article in a journal during the current year". The best case in this scenario is that you now have a plan and become a software architect and the worst case is that if you achieve all the goals you've set yourself up in a strong position to move into the role down the road.

I would imagine that if you are reading this blog you've probably been doing some networking or attended a tech event. These two facts alone will put you in the "creme de la creme" as they both show initiative in expanding your boundaries. But never rest on your laurels, continue moving forward and setting new goals as you retire achieved ones.

The best goals are SMART:
S - Specific (Get a MBA, Publish an article)
M - Measurable (Degree is conferred, article was published)
A - Actionable (Something that can actually be done)
R - Realistic (Something that you really can achieve in the time allotted)
T - Time driven (There is a time limitation in which to achieve the goal)

The fact is that the software development lifecycle is alive and well, and this relates to techies as well. It's a "grow, learn, and achieve" industry versus a "stagnate and die" one. In which group do you consider yourself? What is your SMART career plan for this year?