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.