Category: Editorial

  • Greed Is Good (for IT)

    I think that the lottery mentality that so many executives of companies have these days is bad for business. The idea that someone can be promoted from a director or vice president to CEO and then earn enough money in bonuses, benefits and stock options to retire is silly. People that lead a company should make more, but their jobs should be no more secure than anyone else’s in the company, and they shouldn’t be paid multiples more than their direct reports. If they lose their jobs, they should have to get a new one, just like the rest of us.

    Last week LInkedIn had an initial public offering (IPO), which was very successful. The company raised money, which hopefully will help it grow, and many stockholders and investors became rich. That might not be important to data professionals, but the news may have caught the attention of your management, and that could be good for IT.

    The CEO of TheLadders.com wrote a blog about the event, and he brought up an interesting point. Executives and management in many companies probably are thinking that social networking, or just online engagement with customers,  has an impact on their business. How do they get better engagement? Better Information Technology.

    While I’m not sure this will be pervasive throughout all companies and industries, there will be executives that want to build new systems and move faster. They will want new applications, which means new databases, and for some of us, this will be the chance to get a better job, build a strategic application, or just get a little more budget for our group.

    It’s also potentially an opportunity for you to be pro-active. Maybe you can suggest a few new ideas for projects or enhancements that you might want to tackle which would improve customer engagement. Maybe you’ll even get the chance to have some fun at work.

    Steve Jones


    The Voice of the DBA Podcasts

  • Treat People Like People

    The Millenials have different priorities

    Millennials, the next generation of college graduates are coming out of school and looking for work. These are people who have grown up with technology all of their lives, and probably can’t imagine living without a computer, much less Internet access. The world is a much different place to these people that it was to the Gen X or Baby Boomers before them.

    And hiring them takes a new tactic. Reading this article about the way to hire new graduates makes me think of one simple thing: treat people like people, not resources. This is a generation of people that have seen many alternatives to corporate cubicles, and have a different approach towards work. The flexibility and soft perks of a job are often more important than money, which is interesting to me given all the stories about Internet millionaires in the time of The Social Network.

    I’ve never liked being referred to as a resource, as some interchangeable chess piece whose performance is easily replaceable by another employer. As much as HR departments have tried to incorporate more tolerance and sensitivity into our workplace, the very way people are described tends to dehumanize them.

    I’m not a Millennial, but perhaps I was born a couple decades too soon because many of the things they find important in a job, the autonomy and purpose (talked about in Drive) being more important than compensations, are values I have. We should work, and we should try to give our employer’s a fair day’s work for a fair day’s pay. We should also be treated fairly, as fellow human beings and neighbors, not resources.

    Steve Jones


    The Voice of the DBA Podcasts

  • From Great Idea to End Result

    Great ideas come from anywhere

    What’s the time for you IT department to get from great idea to a resulting application? This is a very good piece from CIO magazinethat finds many IT departments are seen as too slow. However there are a number of companies that are trying to innovate and find ways to increase the speed at which IT departments can deploy an application and respond to a business need.

    One great quote in there is “velocity is more important than perfection”,  which is a tenet that I have found to be very true over the years. It’s not that you throw junk out that isn’t well built or tested, but that you don’t try to meet every possible requirement or handle every little issue. The system has to be secure, handle errors, and meet the basic requirements, but it’s more important to get something done and in production than to have it perform and scale perfectly.

    Is that heresy to the developers and DBAs out there? Perhaps, but I think this methodology has to go hand in hand with another mantra I heard fromJason Fried: do more of what works and less of what doesn’t. In this case if a system shows promise and starts to get heavy use, it receives more resources and perhaps gets refactoring in real time, even as it gets enhanced with new ideas.

    “You want IT to be in constant test-and-learn mode”, another quote showing that IT needs to be working closely with the business to try ideas, learn from them, and move forward. The Agile style of development applies, and in some sense I think this is the future for the strategic IT department of the future.

    For the data professional this means that you must learn to model quickly, and with an eye towards a flexible design that might need to change regularly. We need to understand the businesses we work in better so that we can anticipate how requirements might change.

    Management has to buy into the idea that applications will not be perfect, they won’t be polished, and most importantly, they are essentially prototypes that either need to have addition resources spent on enhancements or they should be abandoned quickly. However I think this is a great way to develop internal applications that can provide a nice ROI, and be a more enjoyable way for developers to work.

    Steve Jones


    The Voice of the DBA Podcasts

  • Hints Are Not Always Better

    Is this better than an index scan?

    I have always thought that an index seen was preferable to an index scan. It seems like the general rule that so many DBAs and developers follow, looking to convert every scan in an execution plan to a seek. Often that results in better performance, and I’ve seen many people resort to using hints to enforce this behavior in SQL Server when the query optimizer (QO) or Query Processor (QP) fails to choose their indexes.

    This past week Rob Farley wrote a great blog post that taught me something about seeks, scans, and the fact that one is not always better than the other. It has a great title and is worth a few minutes of your time to read: Covering, schmuvvering – when a covering index is actually rubbish. In the post Rob shows that a seek can be worse than a scan in some cases, in his example due to a Residual Predicate.

    I have seen so many people mistrust the query processor in SQL Server over the years, often resorting to hints when it seemed that the best index wasn’t being chosen. I’ve felt like doing that before as well, spending afternoons cursing the developers at Microsoft that their product wouldn’t choose an index that I knew was a better choice.

    Over the years I’ve talked with the people that build the code behind the query optimizer and often it seems someone is submitting a bug in the way the QO/QP works. Most of the time, however, I find my respect growing for that team, and often find that the individual is falling victim to the “it works on my machine” syndrome. Too often someone is observing a single case, a single data set, and limited concurrency, all of which can drastically change the performance of a query on your system when they grow.

    SQL Server doesn’t have a perfect QP/QO system, but it has a very, very good one. Using too many hints almost feels like hard-coding a value in the system. There are times that it makes sense, but they are very rare.

    This post also reminds me that there are so many things to learn about SQL Server, and gaining a deeper understanding of how the internals of SQL Server work can pay off with much more efficient, and scalable code that handles your load as it grows.

    Steve Jones

    PS – This post makes me want to see Rob’s pre-conference session this October at the PASS Summit. Hopefully he will get picked and many of us will get the chance to learn more nuggets like this one.