Category Archives: Musings

What is SQL Server?

When asked what I do for a living my answer befuddles many. Outside of the information technology realms most people have not heard of SQL Server. If they have they don’t know what it is or what it does. “I’m a SQL Server developer” causes many to cock their head sideways like dog presented with a new noise. I used to give a vague answer that I work in computers or information technology but I decided I wanted to be more specific. You never know when the next guy you talk to is going to introduce you to a great opportunity. And I admit that I sometimes enjoy the befuddled looks. I don’t have a dog right now.

An amusing exercise is to try to get the answer to this from Microsoft’s web site. You might think that if you Google or Bing the question, “What is SQL Server” the top result would be a link to Microsoft with a fantastic explanation of what it is. You might be wrong. It is the fourth result on Google and the third result on Bing.

If a prize existed for the most obfuscated way to describe your products Microsoft would be a top contender. By visiting the SQL Server site at Microsoft I learn that SQL Server will “unlock breakthrough insights across the organization” and that it will provide me with “data warehousing and analytical solutions backed by IT management and insights.” That’s two uses of insight in two paragraphs. Word offers this nifty feature for suggesting synonyms. That would have been a great feature to have for just about every paper I wrote in college. I suppose there is a remote possibility the people who wrote the marketing literature for this have ever heard of Word. At any rate, at least the word data does appear on the page…once. The product page is filled with a lot of “why” and not a lot of “what”.

The following is a compilation of many of the conversations I’ve had with people when the topic comes up.
What is SQL Server?

It is used to store data.

You mean my grocery list or phone numbers?

Well it can be used for that but…not exactly.

Does it store Sea Quills?

You know that when you fill out a form online that includes your name, address and other information the company you send that to has to put that information somewhere.

I never really thought about it.

Yeah, I used to tell people that the Submit button was actually a Print button in disguise that caused the form to print at company headquarters but too many people believed me.

I would never have believed that (he says with a sideways glance and face askew).

You figure that there are thousand if not tens of thousands of people who are filling out that form. Not only does the company have to store that information they have to do so in a way that makes it easy to get back. If I wrote 10,000 names, addresses and other information about each customer into a Word document it would be very cumbersome to manage. SQL Server allows a company to store the information in a way that makes it easier to manage and easier to retrieve if they need to view it.

So it goes into SQL Server?

SQL Server is one of the many types of products that can be used to manage this data. It is made by Microsoft. There are other products by other companies.

So why SQL Server

I guess it has to be because of the insight.

No More MDI in SSMS?

After installing SQL Server 2012 I was disappointed to discover that the MDI option has been removed leaving me with having to use the tabbed interface. I hate the tabs. Technically the tabed interface is MDI ’cause you can undock a tab and separate it from the application. Once you do that though you can’t minimize it (unless you minimize the entire application) and if you have a lot of windows undocked you have a window management nightmare. The undock option is useful but doesn’t replace what I’ve been forced to give up.

My main problem with the tabs is that they interupt how I work. My screen is wide enough to only show 4 or 5 tabs at a time. The rest of the tabs have to be accessed via a pull down. When a tab is activited it becomes one of the shown tabs an a previously shown tab is relegated to the pull down menu. If you go find the tab and surface it again, it gets put back on the main header but in a different place than before. If I had become used to the order they were in I now find myself clicking a bunch of tabs looking for the right one. And if I have to look in the pulldown for the right tab then I end up doing a scrambled search which reorganizes all of my tabs and componds the problem when looking for future tabs (which were no longer where I left them).

In the 2008R2 version when a query windows is minimized it is put onto the main desktop of SSMS (assuming you have the MDI option set). I could then move the minimized windows anywhere on the screen I wanted. I could group these icons by the project I was working on. When I minimize the query window it always gets put back exactly where it was before. I could easily switch between projects without getting lost. If I had to do a mad scramble for the right window maximizing and minimizing them wouldn’t completely rearrange the working order I had set and since I had the icons grouped by project I usually only had two or three windows to search. I was very efficient with the window working like this.

After I installed SQL Server 2012 I found out the tabs were gone. Back to the mad scramble I suppose. I’m not digging the new SSMS interface at all.

Performance Based Management

Andy Leonard doesn’t care for Performance Based Management.  I tend to agree.  I find this approach to be passive aggressive.  If management has a problem with an employee they should confront the employee directly.  With PBM, management can slot people into categories and blame the results on the system.  “Sorry, I didn’t want to punish you but someone had to be in the bottom 20%. It’s out of my hands.”

And then there is the collateral damage which is what I think Andy is talking about.  Even if all employees are doing a fine job someone has to be in the bottom 20% and you can be sure it won’t be the head guys. When you build a house someone has to pick up the shovel and dig.  You can’t punish the guy with the shovel because he’s not the engineer.  If everyone who is building the house is doing a good job but someone has to be labeled as the bottom 20% you can bet it won’t be the engineer or the foreman.

The Value of Expertise (or Are You Sure About That?)

One of the things I love to do is sail.  The first time I was on a sailboat, other than a Sunfish, was a 30ft yacht pounding to weather into 25 knot winds and heeled about 20 degrees.  It hooked me. Having dreamed about owning a boat since then I heard many cautions from my friends and family.  “You know what boat stands for…Break Out Another Thousand.”  Or, “A boat is a hole in the water you throw money into.”  Not one to be deterred by sanity I decided it is time to fulfill that dream and have started the hunt for the right sailboat for me.

I’ve been reading about boats for 10 years now and thought I would be able to make a wise decision. What I discovered is that despite all those years of study I still don’t know enough.  I’ve heard most of the conventional wisdoms.  Full keel boats are safer.  Ketches are slow.  Flat bottom boats will pound you to death. Sailboats with long overhangs are tender.  There is probably a kernel of truth to most of these statements but I know from studying that they aren’t always true.  The problem is that I don’t know when they aren’t always true.

The realization was that I can speak the words of boats but I don’t know the language.  Tillers, shrouds, booms, boom vang, wind vane, gooseneck, bow pulpit, spars, topsides, shear, stanchions, cutter rigs, ketch rigs, Bermuda rigs, yawls, weather helm, sheets, head up, head down, soft chine, hard chine, full keel, skeg, prop, spade rudder, tack, gybe, lift, slip, windward, leeward…it goes on and on.  I understand the parts but I don’t understand the whole.  I understand that if you put a long fin keel on a sail boat it will generally point better than a boat full keel. But I don’t know what compromises are made when you do that.  What do I lose? Safety? Stability?  I have an idea but I don’t know for certain.

Because of this I have decided to seek the advice of an expert.  I contacted a renowned marine architect of small pleasure sailboats to help me navigate this maze.  He has literally (and I don’t literally mean figuratively, I literally mean literally) designed hundreds of boats. He’s had to decide what compromises to make.  When designing a boat he has to know the potential downsides of every design decision and when other parts of the design can exacerbate those downsides or counter them. When buying a used boat you have to make decisions about what features you want.  Deciding on one feature necessarily rules out others.  He can advise me of what I’m giving up with every decision I make and every feature I choose. That’s the kind of guy I need in my corner. I would hate to make a decision based on ignorance and it cost me tens of thousands of dollars or years of loss of enjoyment because I bought the wrong boat. By working with him I don’t guarantee that I’ll make the right decision but I increase my odds significantly.

I can’t help but think about how this translates to the technology field, specifically, SQL Server.  There are thousands of people out there whose knowledge of SQL Server is like my knowledge of sailing.  They know the words but they don’t know the language.   Because of the nature of their jobs they can’t spend hours every day studying and working with SQL Server. They can’t have developed hundreds of databases and have had to make the compromises that one must make. They are good developers and good project managers. They can talk very intelligently about SQL Server and can make good decisions if they have the information.  But they don’t. Just like my purchase of a boat they run the risk of making a decision born from ignorance  that can cost them tens of thousands (and in some cases, I’m sure, hundreds of thousand) of dollars.

This isn’t some sort of shill to promote myself.  I’m not a consultant. This message has personal impact too. Every day I work with SQL Server I run into something I don’t know. Some things can be solved with a Google search.  Others require me to seek the advice of those who know more than I do.  It is a humbling thing to admit that I don’t know something but the downsides of making a bad decision based on ignorance can be great.  I’ve had to learn how to swallow my ego. There is a long game involved too.  It’s much easier to swallow my ego now than it is when a decision I made seriously impacts delivery or production or costs my company lots of money. I know your company is different. They don’t care about wasted money.

When I learned how much it cost to hire the marine architect to help me I initially balked.  No one wants to spend money they don’t have to.  On the other hand the potential costs of not hiring him are huge.  In the grand scheme it isn’t that much money and in a month or two I won’t even miss it.  I’ve spent a lot more money on a lot stupider things.

Companies should make these same considerations.  Hiring a SQL Server expert to consult on a design doesn’t have to cost a fortune. The cost of some expert guidance can be tiny compared to the total development cost of a single project.  If you have good people who know the words, the expert can help them with the language. The consultant doesn’t have to do the work. The consult is there because he knows stuff you don’t know, and given your time constraints likely can’t know. A few days consult here and there can help guide the project and avoid the pitfalls that could cost tens of thousands of dollars in the long run.